Просмотр исходного кода

* avoid warnings in the avr code generator

git-svn-id: trunk@20015 -
florian 13 лет назад
Родитель
Сommit
0e7e45d423
3 измененных файлов с 41 добавлено и 1 удалено
  1. 2 1
      compiler/avr/aasmcpu.pas
  2. 38 0
      compiler/avr/cgcpu.pas
  3. 1 0
      compiler/avr/cpupi.pas

+ 2 - 1
compiler/avr/aasmcpu.pas

@@ -294,7 +294,8 @@ implementation
 
     procedure taicpu.ResetPass2;
       begin
-{        { we are here in a second pass, check if the instruction can be optimized }
+        { we are here in a second pass, check if the instruction can be optimized }
+{
         if assigned(InsEntry) and
            ((InsEntry^.flags and IF_PASS2)<>0) then
          begin

+ 38 - 0
compiler/avr/cgcpu.pas

@@ -64,6 +64,11 @@ unit cgcpu;
         procedure a_load_ref_reg(list : TAsmList; fromsize, tosize : tcgsize;const Ref : treference;reg : tregister);override;
         procedure a_load_reg_reg(list : TAsmList; fromsize, tosize : tcgsize;reg1,reg2 : tregister);override;
 
+        { fpu move instructions }
+        procedure a_loadfpu_reg_reg(list: TAsmList; fromsize, tosize: tcgsize; reg1, reg2: tregister); override;
+        procedure a_loadfpu_ref_reg(list: TAsmList; fromsize, tosize: tcgsize; const ref: treference; reg: tregister); override;
+        procedure a_loadfpu_reg_ref(list: TAsmList; fromsize, tosize: tcgsize; reg: tregister; const ref: treference); override;
+
         {  comparison operations }
         procedure a_cmp_const_reg_label(list : TAsmList;size : tcgsize;cmp_op : topcmp;a : tcgint;reg : tregister;
           l : tasmlabel);override;
@@ -94,11 +99,14 @@ unit cgcpu;
           tmpreg : tregister) : treference;
 
         procedure g_intf_wrapper(list: TAsmList; procdef: tprocdef; const labelname: string; ioffset: longint);override;
+        procedure g_stackpointer_alloc(list : TAsmList;size : longint);override;
         procedure emit_mov(list: TAsmList;reg2: tregister; reg1: tregister);
 
         procedure a_adjust_sp(list: TAsmList; value: longint);
         function GetLoad(const ref : treference) : tasmop;
         function GetStore(const ref: treference): tasmop;
+
+        procedure a_bit_scan_reg_reg(list: TAsmList; reverse: boolean; size: TCGSize; src, dst: TRegister); override;
       end;
 
       tcg64favr = class(tcg64f32)
@@ -1076,6 +1084,24 @@ unit cgcpu;
        end;
 
 
+     procedure tcgavr.a_loadfpu_reg_reg(list: TAsmList; fromsize,tosize: tcgsize; reg1, reg2: tregister);
+       begin
+         internalerror(2012010702);
+       end;
+
+
+     procedure tcgavr.a_loadfpu_ref_reg(list: TAsmList; fromsize,tosize: tcgsize; const ref: treference; reg: tregister);
+       begin
+         internalerror(2012010703);
+       end;
+
+
+     procedure tcgavr.a_loadfpu_reg_ref(list: TAsmList; fromsize, tosize: tcgsize; reg: tregister; const ref: treference);
+       begin
+         internalerror(2012010704);
+       end;
+
+
     {  comparison operations }
     procedure tcgavr.a_cmp_const_reg_label(list : TAsmList;size : tcgsize;
       cmp_op : topcmp;a : tcgint;reg : tregister;l : tasmlabel);
@@ -1180,6 +1206,12 @@ unit cgcpu;
       end;
 
 
+    procedure tcgavr.a_bit_scan_reg_reg(list: TAsmList; reverse: boolean; size: TCGSize; src, dst: TRegister);
+      begin
+        Comment(V_Error,'tcgarm.a_bit_scan_reg_reg method not implemented');
+      end;
+
+
     procedure tcgavr.a_jmp_name(list : TAsmList;const s : string);
       var
         ai : taicpu;
@@ -1675,6 +1707,12 @@ unit cgcpu;
       end;
 
 
+    procedure tcgavr.g_stackpointer_alloc(list: TAsmList; size: longint);
+      begin
+        internalerror(201201071);
+      end;
+
+
     procedure tcgavr.g_intf_wrapper(list: TAsmList; procdef: tprocdef; const labelname: string; ioffset: longint);
       begin
         internalerror(2011021324);

+ 1 - 0
compiler/avr/cpupi.pas

@@ -63,6 +63,7 @@ unit cpupi;
     function tavrprocinfo.calc_stackframe_size:longint;
       begin
         maxpushedparasize:=align(maxpushedparasize,max(current_settings.alignment.localalignmin,4));
+        result:=0;
       end;