Selaa lähdekoodia

Change .thumb_func to be an ait_directive instead of it's own tai type.

git-svn-id: branches/laksen/armiw@29334 -
Jeppe Johansen 10 vuotta sitten
vanhempi
commit
6976af8365

+ 6 - 5
compiler/aasmtai.pas

@@ -80,7 +80,6 @@ interface
           ait_labeled_instruction,
           ait_labeled_instruction,
 {$endif m68k}
 {$endif m68k}
 {$ifdef arm}
 {$ifdef arm}
-          ait_thumb_func,
           ait_thumb_set,
           ait_thumb_set,
 {$endif arm}
 {$endif arm}
           ait_set,
           ait_set,
@@ -198,7 +197,6 @@ interface
           'labeled_instr',
           'labeled_instr',
 {$endif m68k}
 {$endif m68k}
 {$ifdef arm}
 {$ifdef arm}
-          'thumb_func',
           'thumb_set',
           'thumb_set',
 {$endif arm}
 {$endif arm}
           'set',
           'set',
@@ -310,7 +308,6 @@ interface
                      ait_cutobject,ait_marker,ait_varloc,ait_align,ait_section,ait_comment,
                      ait_cutobject,ait_marker,ait_varloc,ait_align,ait_section,ait_comment,
                      ait_const,ait_directive,
                      ait_const,ait_directive,
 {$ifdef arm}
 {$ifdef arm}
-                     ait_thumb_func,
                      ait_thumb_set,
                      ait_thumb_set,
 {$endif arm}
 {$endif arm}
                      ait_set,ait_weak,
                      ait_set,ait_weak,
@@ -356,7 +353,9 @@ interface
         { for Jasmin }
         { for Jasmin }
         asd_jclass,asd_jinterface,asd_jsuper,asd_jfield,asd_jlimit,asd_jline,
         asd_jclass,asd_jinterface,asd_jsuper,asd_jfield,asd_jlimit,asd_jline,
         { .ent/.end for MIPS and Alpha }
         { .ent/.end for MIPS and Alpha }
-        asd_ent,asd_ent_end
+        asd_ent,asd_ent_end,
+        { .thumb_func for ARM }
+        asd_thumb_func
       );
       );
 
 
       TAsmSehDirective=(
       TAsmSehDirective=(
@@ -385,7 +384,9 @@ interface
         { for Jasmin }
         { for Jasmin }
         'class','interface','super','field','limit','line',
         'class','interface','super','field','limit','line',
         { .ent/.end for MIPS and Alpha }
         { .ent/.end for MIPS and Alpha }
-        'ent','end'
+        'ent','end',
+        { .thumb_func for ARM }
+        'thumb_func'
       );
       );
       sehdirectivestr : array[TAsmSehDirective] of string[16]=(
       sehdirectivestr : array[TAsmSehDirective] of string[16]=(
         '.seh_proc','.seh_endproc',
         '.seh_proc','.seh_endproc',

+ 0 - 4
compiler/aggas.pas

@@ -1350,10 +1350,6 @@ implementation
                  AsmWriteLn(tai_symbol(hp).sym.name + '=' + tostr(tai_symbol(hp).value));
                  AsmWriteLn(tai_symbol(hp).sym.name + '=' + tostr(tai_symbol(hp).value));
              end;
              end;
 {$ifdef arm}
 {$ifdef arm}
-           ait_thumb_func:
-             begin
-               AsmWriteLn(#9'.thumb_func');
-             end;
            ait_thumb_set:
            ait_thumb_set:
              begin
              begin
                AsmWriteLn(#9'.thumb_set '+tai_thumb_set(hp).sym^+', '+tai_thumb_set(hp).value^);
                AsmWriteLn(#9'.thumb_set '+tai_thumb_set(hp).sym^+', '+tai_thumb_set(hp).value^);

+ 0 - 11
compiler/arm/aasmcpu.pas

@@ -282,10 +282,6 @@ uses
         { nothing to add }
         { nothing to add }
       end;
       end;
 
 
-      tai_thumb_func = class(tai)
-        constructor create;
-      end;
-
     function spilling_create_load(const ref:treference;r:tregister):Taicpu;
     function spilling_create_load(const ref:treference;r:tregister):Taicpu;
     function spilling_create_store(r:tregister; const ref:treference):Taicpu;
     function spilling_create_store(r:tregister; const ref:treference):Taicpu;
 
 
@@ -4778,13 +4774,6 @@ implementation
         objdata.writebytes(bytes,bytelen);
         objdata.writebytes(bytes,bytelen);
       end;
       end;
 
 
-
-    constructor tai_thumb_func.create;
-      begin
-        inherited create;
-        typ:=ait_thumb_func;
-      end;
-
 begin
 begin
   cai_align:=tai_align;
   cai_align:=tai_align;
 end.
 end.

+ 1 - 1
compiler/arm/cgcpu.pas

@@ -3244,7 +3244,7 @@ unit cgcpu;
           Internalerror(200109191);
           Internalerror(200109191);
 
 
           if GenerateThumbCode or GenerateThumb2Code then
           if GenerateThumbCode or GenerateThumb2Code then
-            list.concat(tai_thumb_func.create);
+            list.concat(tai_directive.Create(asd_thumb_func,''));
 
 
         make_global:=false;
         make_global:=false;
         if (not current_module.is_unit) or
         if (not current_module.is_unit) or

+ 6 - 0
compiler/assemble.pas

@@ -1214,6 +1214,9 @@ Implementation
                    asd_reference:
                    asd_reference:
                      { ignore for now, but should be added}
                      { ignore for now, but should be added}
                      ;
                      ;
+                   asd_thumb_func:
+                     { ignore for now, but should be added}
+                     ;
                    else
                    else
                      internalerror(2010011101);
                      internalerror(2010011101);
                  end;
                  end;
@@ -1358,6 +1361,9 @@ Implementation
                    asd_reference:
                    asd_reference:
                      { ignore for now, but should be added}
                      { ignore for now, but should be added}
                      ;
                      ;
+                   asd_thumb_func:
+                     { ignore for now, but should be added}
+                     ;
                    else
                    else
                      internalerror(2010011102);
                      internalerror(2010011102);
                  end;
                  end;

+ 1 - 1
compiler/hlcgobj.pas

@@ -4136,7 +4136,7 @@ implementation
         begin
         begin
 {$ifdef arm}
 {$ifdef arm}
           if GenerateThumbCode or GenerateThumb2Code then
           if GenerateThumbCode or GenerateThumb2Code then
-            list.concat(tai_thumb_func.create);
+            list.concat(tai_directive.create(asd_thumb_func,''));
 {$endif arm}
 {$endif arm}
           { "double link" all procedure entry symbols via .reference }
           { "double link" all procedure entry symbols via .reference }
           { directives on darwin, because otherwise the linker       }
           { directives on darwin, because otherwise the linker       }

+ 0 - 1
compiler/psystem.pas

@@ -734,7 +734,6 @@ implementation
 //        aiclass[ait_labeled_instruction]:=tai_labeled_instruction;
 //        aiclass[ait_labeled_instruction]:=tai_labeled_instruction;
 {$endif SPARC}
 {$endif SPARC}
 {$ifdef arm}
 {$ifdef arm}
-        aiclass[ait_thumb_func]:=tai_thumb_func;
         aiclass[ait_thumb_set]:=tai_thumb_set;
         aiclass[ait_thumb_set]:=tai_thumb_set;
 {$endif arm}
 {$endif arm}
         aiclass[ait_set]:=tai_set;
         aiclass[ait_set]:=tai_set;