Browse Source

+ fpcres (Darwin/)AArch64 support
o also use $elseif to stop endless $endif sequence at the end

git-svn-id: trunk@29949 -

Jonas Maebe 10 years ago
parent
commit
fcfa8f3826
2 changed files with 26 additions and 37 deletions
  1. 6 1
      utils/fpcres/fpcres.pas
  2. 20 36
      utils/fpcres/target.pas

+ 6 - 1
utils/fpcres/fpcres.pas

@@ -73,7 +73,7 @@ begin
   writeln('                         i386, x86_64, arm (coff)');
   writeln('                         i386, x86_64, powerpc, powerpc64, arm, armeb, m68k,');
   writeln('                         sparc, alpha, ia64, mips, mipsel (elf)');
-  writeln('                         i386, x86_64, powerpc, powerpc64, arm (mach-o)');
+  writeln('                         i386, x86_64, powerpc, powerpc64, arm, aarch64 (mach-o)');
   writeln('                         bigendian, littleendian (external)');
   writeln('  --subarch, -s <name> Set object file sub-architecture. Supported values:');
   writeln('                         arm: all, v4t, v6, v5tej, xscale, v7');
@@ -312,6 +312,11 @@ begin
         Result.MachineType:=mmtarm;
         MachOSubMachineType.fArmSubType:=ArmSubMachine2MachOSubMachine[CurrentTarget.submachine.subarm];
       end;
+    mtaarch64 :
+      begin
+        Result.MachineType:=mmtarm64;
+        MachOSubMachineType.fArm64SubType:=msmaarch64_all;
+      end;
   end;
   Result.SubMachineType:=MachOSubMachineType;
 end;

+ 20 - 36
utils/fpcres/target.pas

@@ -22,7 +22,7 @@ interface
 
 type
   TMachineType = (mtnone, mti386,mtx86_64,mtppc,mtppc64,mtarm,mtarmeb,mtm68k,
-                  mtsparc,mtalpha,mtia64,mtmips,mtmipsel,
+                  mtsparc,mtalpha,mtia64,mtmips,mtmipsel,mtaarch64,
                   mtBigEndian,mtLittleEndian);
   TMachineTypes = set of TMachineType;
 
@@ -34,7 +34,7 @@ type
       mtarm,mtarmeb:
         (subarm: TSubMachineTypeArm);
       mtnone, mti386,mtx86_64,mtppc,mtppc64,mtm68k,
-      mtsparc,mtalpha,mtia64,mtmips,mtmipsel,
+      mtsparc,mtalpha,mtia64,mtmips,mtmipsel,mtaarch64,
       mtBigEndian,mtLittleEndian:
         (subgen: TSubMachineTypeGeneric);
   end;
@@ -83,6 +83,7 @@ var
     (name : 'ia64';         formats : [ofElf]),                   //mtia64
     (name : 'mips';         formats : [ofElf]; alias : 'mipseb'), //mtmips
     (name : 'mipsel';       formats : [ofElf]),                   //mtmipsel
+    (name : 'aarch64';      formats : [ofMachO]),                 //mtaarch64
     (name : 'bigendian';    formats : [ofExt]),                   //mtBigEndian
     (name : 'littleendian'; formats : [ofExt])                    //mtLittleEndian
   );
@@ -104,30 +105,26 @@ var
                                                      mtppc,mtppc64]),
     (name : 'xcoff';    ext : '.o';      machines : [mtppc{,mtppc64}]),
     (name : 'mach-o';   ext : '.or';     machines : [mti386,mtx86_64,mtppc,
-                                                     mtppc64,mtarm]),
+                                                     mtppc64,mtarm,mtaarch64]),
     (name : 'external'; ext : '.fpcres'; machines : [mtBigEndian,mtLittleEndian])
   );
 
 
   CurrentTarget : TResTarget =
   (
-  {$IFDEF CPUI386}
+  {$if defined(CPUI386)}
     machine : mti386;
     submachine : (subgen: smtgen_all);
-  {$ELSE}
-  {$IFDEF CPUX86_64}
+  {$elseif defined(CPUX86_64)}
     machine : mtx86_64;
     submachine : (subgen: smtgen_all);
-  {$ELSE}
-  {$IFDEF CPUPOWERPC32}
+  {$elseif defined(CPUPOWERPC32)}
     machine : mtppc;
     submachine : (subgen: smtgen_all);
-  {$ELSE}
-  {$IFDEF CPUPOWERPC64}
+  {$elseif defined(CPUPOWERPC64)}
     machine : mtppc64;
     submachine : (subgen: smtgen_all);
-  {$ELSE}
-  {$IFDEF CPUARM}
+  {$elseif defined(CPUARM)}
     {$IFDEF ENDIAN_LITTLE}
     machine : mtarm;
     submachine : (subarm: smtarm_all);
@@ -135,44 +132,31 @@ var
     machine : mtarmeb;
     submachine : (subarm: smtarm_all);
     {$ENDIF}
-  {$ELSE}
-  {$IFDEF CPU68K}
+  {$elseif defined(CPU68K)}
     machine : mtm68k;
     submachine : (subgen: smtgen_all);
-  {$ELSE}
-  {$IFDEF CPUSPARC}
+  {$elseif defined(CPUSPARC)}
     machine : mtsparc;
     submachine : (subgen: smtgen_all);
-  {$ELSE}
-  {$IFDEF CPUALPHA}
+  {$elseif defined(CPUALPHA)}
     machine : mtalpha;
     submachine : (subgen: smtgen_all);
-  {$ELSE}
-  {$IFDEF CPUIA64}
+  {$elseif defined(CPUIA64)}
     machine : mtia64;
     submachine : (subgen: smtgen_all);
-  {$ELSE}
-  {$IFDEF CPUMIPSEL}
+  {$elseif defined(CPUMIPSEL)}
     machine : mtmipsel;
     submachine : (subgen: smtgen_all);
-  {$ELSE}
-  {$IFDEF CPUMIPS}
+  {$elseif defined(CPUMIPS)}
     machine : mtmips;
     submachine : (subgen: smtgen_all);
-  {$ELSE}
+  {$elseif defined(CPUAARCH64)}
+    machine : mtaarch64;
+    submachine : (subgen: smtgen_all);
+  {$else}
     machine : mti386;  //default i386
     submachine : (subgen: smtgen_all);
-  {$ENDIF}
-  {$ENDIF}
-  {$ENDIF}
-  {$ENDIF}
-  {$ENDIF}
-  {$ENDIF}
-  {$ENDIF}
-  {$ENDIF}
-  {$ENDIF}
-  {$ENDIF}
-  {$ENDIF}
+  {$endif}
 
   {$IFDEF WINDOWS}
     objformat : ofCoff;