瀏覽代碼

+ darwin/arm assembler writer

git-svn-id: trunk@11853 -
Jonas Maebe 17 年之前
父節點
當前提交
3aa600e569
共有 1 個文件被更改,包括 28 次插入0 次删除
  1. 28 0
      compiler/arm/agarmgas.pas

+ 28 - 0
compiler/arm/agarmgas.pas

@@ -42,6 +42,10 @@ unit agarmgas;
         procedure WriteInstruction(hp : tai);override;
         procedure WriteInstruction(hp : tai);override;
      end;
      end;
 
 
+    TArmAppleGNUAssembler=class(TAppleGNUassembler)
+      constructor create(smart: boolean); override;
+    end;
+
 
 
     const
     const
       gas_shiftmode2str : array[tshiftmode] of string[3] = (
       gas_shiftmode2str : array[tshiftmode] of string[3] = (
@@ -68,6 +72,17 @@ unit agarmgas;
       end;
       end;
 
 
 
 
+{****************************************************************************}
+{                      GNU/Apple PPC Assembler writer                        }
+{****************************************************************************}
+
+    constructor TArmAppleGNUAssembler.create(smart: boolean);
+      begin
+        inherited create(smart);
+        InstrWriter := TArmInstrWriter.create(self);
+      end;
+
+
 {****************************************************************************}
 {****************************************************************************}
 {                  Helper routines for Instruction Writer                    }
 {                  Helper routines for Instruction Writer                    }
 {****************************************************************************}
 {****************************************************************************}
@@ -251,7 +266,20 @@ unit agarmgas;
             comment : '# ';
             comment : '# ';
           );
           );
 
 
+       as_arm_gas_darwin_info : tasminfo =
+          (
+            id     : as_darwin;
+            idtxt  : 'AS-Darwin';
+            asmbin : 'as';
+            asmcmd : '-o $OBJ $ASM -arch arm';
+            supported_target : system_any;
+            flags : [af_allowdirect,af_needar,af_smartlink_sections,af_supports_dwarf];
+            labelprefix : 'L';
+            comment : '# ';
+          );
+
 
 
 begin
 begin
   RegisterAssembler(as_arm_gas_info,TARMGNUAssembler);
   RegisterAssembler(as_arm_gas_info,TARMGNUAssembler);
+  RegisterAssembler(as_arm_gas_darwin_info,TArmAppleGNUAssembler);
 end.
 end.