mirror of
https://gitlab.com/freepascal.org/lazarus/lazarus.git
synced 2025-04-13 13:49:30 +02:00
Add powerpc64 as a CPU target. Issue #32577, patch from Alfred.
git-svn-id: trunk@56135 -
This commit is contained in:
parent
b7b6bf8878
commit
647d8f84ab
components
ide
@ -184,7 +184,7 @@ const
|
||||
FPCOperatingSystemAlternative2Names: array[1..2] of shortstring =(
|
||||
'bsd', 'linux' // see GetDefaultSrcOS2ForTargetOS
|
||||
);
|
||||
FPCProcessorNames: array[1..12] of shortstring =(
|
||||
FPCProcessorNames: array[1..13] of shortstring =(
|
||||
'aarch64',
|
||||
'arm',
|
||||
'avr',
|
||||
@ -195,6 +195,7 @@ const
|
||||
'mips',
|
||||
'mipsel',
|
||||
'powerpc',
|
||||
'powerpc64',
|
||||
'sparc',
|
||||
'x86_64'
|
||||
);
|
||||
@ -202,7 +203,7 @@ const
|
||||
'FPC', 'ObjFPC', 'Delphi', 'TP', 'MacPas', 'ISO'
|
||||
);
|
||||
|
||||
Lazarus_CPU_OS_Widget_Combinations: array[1..81] of shortstring = (
|
||||
Lazarus_CPU_OS_Widget_Combinations: array[1..91] of shortstring = (
|
||||
'i386-linux-gtk',
|
||||
'i386-linux-gtk2',
|
||||
'i386-linux-qt',
|
||||
@ -253,6 +254,16 @@ const
|
||||
'powerpc-linux-nogui',
|
||||
'powerpc-morphos-mui',
|
||||
'powerpc-morphos-nogui',
|
||||
'powerpc64-darwin-gtk',
|
||||
'powerpc64-darwin-gtk2',
|
||||
'powerpc64-darwin-cocoa',
|
||||
'powerpc64-darwin-nogui',
|
||||
'powerpc64-linux-gtk',
|
||||
'powerpc64-linux-gtk2',
|
||||
'powerpc64-linux-nogui',
|
||||
'powerpc64-aix-gtk',
|
||||
'powerpc64-aix-gtk2',
|
||||
'powerpc64-aix-nogui',
|
||||
'sparc-linux-gtk',
|
||||
'sparc-linux-gtk2',
|
||||
'sparc-linux-nogui',
|
||||
@ -3550,6 +3561,18 @@ procedure GetTargetProcessors(const TargetCPU: string; aList: TStrings);
|
||||
aList.Add('970');
|
||||
end;
|
||||
|
||||
procedure PowerPC64;
|
||||
begin
|
||||
//aList.Add('power4');
|
||||
aList.Add('970');
|
||||
//aList.Add('power5');
|
||||
//aList.Add('power5+');
|
||||
//aList.Add('power6');
|
||||
//aList.Add('power6x');
|
||||
//aList.Add('power7');
|
||||
//aList.Add('power8');
|
||||
end;
|
||||
|
||||
procedure Sparc;
|
||||
begin
|
||||
aList.Add('SPARC V7');
|
||||
@ -3601,12 +3624,13 @@ begin
|
||||
'avr' : AVR;
|
||||
'i386' : Intel_i386;
|
||||
'm68k' : M68k;
|
||||
'powerpc': PowerPC;
|
||||
'powerpc' : PowerPC;
|
||||
'powerpc64': PowerPC64;
|
||||
'sparc' : Sparc;
|
||||
'x86_64' : Intel_x86_64;
|
||||
'mipsel','mips' : Mips;
|
||||
'jvm' : ;
|
||||
'aarch64': ;
|
||||
'aarch64' : ;
|
||||
end;
|
||||
end;
|
||||
|
||||
|
@ -1662,7 +1662,9 @@ begin
|
||||
if AtomIsChar('<') then
|
||||
ReadGenericParam
|
||||
else if UpAtomIs('LOCATION')
|
||||
and (Scanner.Values.IsDefined('CPUM68K') or Scanner.Values.IsDefined('CPUPOWERPC'))
|
||||
and ( Scanner.Values.IsDefined('CPUM68K')
|
||||
or Scanner.Values.IsDefined('CPUPOWERPC')
|
||||
or Scanner.Values.IsDefined('CPUPOWERPC64') )
|
||||
then begin
|
||||
// for example Domain: LongInt location 'd0'
|
||||
ReadNextAtom;
|
||||
|
@ -1478,7 +1478,8 @@ type
|
||||
cpu_iA64, { 7 }
|
||||
cpu_x86_64, { 8 }
|
||||
cpu_mips, { 9 }
|
||||
cpu_arm { 10 }
|
||||
cpu_arm, { 10 }
|
||||
cpu_powerpc64 { 11 }
|
||||
);
|
||||
var
|
||||
EntryNr: Byte;
|
||||
|
@ -1575,12 +1575,15 @@ end;
|
||||
{ =========================================================================== }
|
||||
|
||||
function CpuNameToPtrSize(const CpuName: String): Integer;
|
||||
var
|
||||
lcCpu: String;
|
||||
begin
|
||||
//'x86', 'i386', 'i486', 'i586', 'i686',
|
||||
//'ia64', 'x86_64', 'powerpc', aarch64
|
||||
//'sparc', 'arm'
|
||||
Result := 4;
|
||||
if (LowerCase(CpuName) = 'ia64') or (LowerCase(CpuName) = 'x86_64') or (LowerCase(CpuName) = 'aarch64')
|
||||
lcCpu := LowerCase(CpuName);
|
||||
if (lcCpu='ia64') or (lcCpu='x86_64') or (lcCpu='aarch64') or (lcCpu='powerpc64')
|
||||
then Result := 8;
|
||||
end;
|
||||
|
||||
@ -2269,7 +2272,7 @@ begin
|
||||
|
||||
case StringCase(TargetInfo^.TargetCPU, [
|
||||
'x86', 'i386', 'i486', 'i586', 'i686',
|
||||
'ia64', 'x86_64', 'powerpc',
|
||||
'ia64', 'x86_64', 'powerpc', 'powerpc64',
|
||||
'sparc', 'arm', 'aarch64'
|
||||
], True, False) of
|
||||
0..4: begin // x86
|
||||
@ -2296,7 +2299,7 @@ begin
|
||||
TargetInfo^.TargetRegisters[2] := '$rdx';
|
||||
end;
|
||||
end;
|
||||
7: begin // powerpc
|
||||
7, 8: begin // powerpc,powerpc64
|
||||
TargetInfo^.TargetIsBE := True;
|
||||
// alltough darwin can start with r2, it seems that all OS start with r3
|
||||
// if UpperCase(FTargetInfo.TargetOS) = 'DARWIN'
|
||||
@ -2311,18 +2314,18 @@ begin
|
||||
TargetInfo^.TargetRegisters[2] := '$r5';
|
||||
// end;
|
||||
end;
|
||||
8: begin // sparc
|
||||
9: begin // sparc
|
||||
TargetInfo^.TargetIsBE := True;
|
||||
TargetInfo^.TargetRegisters[0] := '$g1';
|
||||
TargetInfo^.TargetRegisters[1] := '$o0';
|
||||
TargetInfo^.TargetRegisters[2] := '$o1';
|
||||
end;
|
||||
9: begin // arm
|
||||
10: begin // arm
|
||||
TargetInfo^.TargetRegisters[0] := '$r0';
|
||||
TargetInfo^.TargetRegisters[1] := '$r1';
|
||||
TargetInfo^.TargetRegisters[2] := '$r2';
|
||||
end;
|
||||
10: begin // aarch64
|
||||
11: begin // aarch64
|
||||
//TargetInfo^.TargetRegisters[0] := '$r0';
|
||||
//TargetInfo^.TargetRegisters[1] := '$r1';
|
||||
//TargetInfo^.TargetRegisters[2] := '$r2';
|
||||
|
@ -1096,6 +1096,7 @@ begin
|
||||
Add('i386');
|
||||
Add('m68k');
|
||||
Add('powerpc');
|
||||
Add('powerpc64');
|
||||
Add('sparc');
|
||||
Add('x86_64');
|
||||
end;
|
||||
|
Loading…
Reference in New Issue
Block a user