Selaa lähdekoodia

+ implemented tcgavr.a_jmp_name
* updated todos

git-svn-id: branches/avr@17287 -

florian 14 vuotta sitten
vanhempi
commit
a0b0b43d0c
3 muutettua tiedostoa jossa 13 lisäystä ja 5 poistoa
  1. 10 5
      compiler/avr/cgcpu.pas
  2. 2 0
      compiler/avr/cpupara.pas
  3. 1 0
      compiler/avr/navradd.pas

+ 10 - 5
compiler/avr/cgcpu.pas

@@ -591,7 +591,7 @@ unit cgcpu;
            end;
            end;
        end;
        end;
 
 
-
+{ TODO : support usage of ref.base register parameter }
     function tcgavr.normalize_ref(list:TAsmList;ref: treference):treference;
     function tcgavr.normalize_ref(list:TAsmList;ref: treference):treference;
       var
       var
         tmpreg : tregister;
         tmpreg : tregister;
@@ -1075,22 +1075,27 @@ unit cgcpu;
 
 
 
 
     {  comparison operations }
     {  comparison operations }
-    procedure tcgavr.a_cmp_const_reg_label(list : TAsmList;size : tcgsize;cmp_op : topcmp;a : aint;reg : tregister;
-      l : tasmlabel);
+    procedure tcgavr.a_cmp_const_reg_label(list : TAsmList;size : tcgsize;
+      cmp_op : topcmp;a : aint;reg : tregister;l : tasmlabel);
       begin
       begin
         { TODO : a_cmp_const_reg_label }
         { TODO : a_cmp_const_reg_label }
       end;
       end;
 
 
 
 
-    procedure tcgavr.a_cmp_reg_reg_label(list : TAsmList;size : tcgsize;cmp_op : topcmp;reg1,reg2 : tregister;l : tasmlabel);
+    procedure tcgavr.a_cmp_reg_reg_label(list : TAsmList;size : tcgsize;
+      cmp_op : topcmp;reg1,reg2 : tregister;l : tasmlabel);
       begin
       begin
         { TODO : a_cmp_reg_reg_label }
         { TODO : a_cmp_reg_reg_label }
       end;
       end;
 
 
 
 
     procedure tcgavr.a_jmp_name(list : TAsmList;const s : string);
     procedure tcgavr.a_jmp_name(list : TAsmList;const s : string);
+      var
+        ai : taicpu;
       begin
       begin
-        internalerror(2011021313);
+        ai:=taicpu.op_sym(A_JMP,current_asmdata.RefAsmSymbol(s));
+        ai.is_jmp:=true;
+        list.concat(ai);
       end;
       end;
 
 
 
 

+ 2 - 0
compiler/avr/cpupara.pas

@@ -207,6 +207,7 @@ unit cpupara;
       end;
       end;
 
 
 
 
+    { TODO : fix tavrparamanager.create_paraloc_info_intern }
     function tavrparamanager.create_paraloc_info_intern(p : tabstractprocdef; side: tcallercallee; paras: tparalist;
     function tavrparamanager.create_paraloc_info_intern(p : tabstractprocdef; side: tcallercallee; paras: tparalist;
         var curintreg, curfloatreg, curmmreg: tsuperregister; var cur_stack_offset: aword):longint;
         var curintreg, curfloatreg, curmmreg: tsuperregister; var cur_stack_offset: aword):longint;
 
 
@@ -408,6 +409,7 @@ unit cpupara;
       end;
       end;
 
 
 
 
+    { TODO : fix tavrparamanager.get_funcretloc }
     function  tavrparamanager.get_funcretloc(p : tabstractprocdef; side: tcallercallee; def: tdef): tcgpara;
     function  tavrparamanager.get_funcretloc(p : tabstractprocdef; side: tcallercallee; def: tdef): tcgpara;
       var
       var
         retcgsize : tcgsize;
         retcgsize : tcgsize;

+ 1 - 0
compiler/avr/navradd.pas

@@ -123,6 +123,7 @@ interface
       var
       var
         tmpreg : tregister;
         tmpreg : tregister;
       begin
       begin
+        { TODO : implement tavraddnode.second_cmpsmallset }
         {
         {
         pass_left_right;
         pass_left_right;