+ initial AArch64 support in systemh.inc, options.pas, version.pas and

psystem.pas

git-svn-id: trunk@29903 -
This commit is contained in:
Jonas Maebe 2015-02-23 22:52:04 +00:00
parent 19f458787f
commit b0112fa63f
4 changed files with 31 additions and 2 deletions

View File

@ -885,7 +885,7 @@ begin
if MacVersionSet then
exit;
{ check for deployment target set via environment variable }
if not(target_info.system in [system_i386_iphonesim,system_arm_darwin]) then
if not(target_info.system in [system_i386_iphonesim,system_arm_darwin,system_aarch64_darwin]) then
begin
envstr:=GetEnvironmentVariable('MACOSX_DEPLOYMENT_TARGET');
if envstr<>'' then
@ -2240,7 +2240,7 @@ begin
end;
'P':
begin
if (target_info.system in [system_i386_iphonesim,system_arm_darwin]) and
if (target_info.system in [system_i386_iphonesim,system_arm_darwin,system_aarch64_darwin]) and
ParseMacVersionMin(iPhoneOSVersionMin,MacOSXVersionMin,'IPHONE_OS_VERSION_MIN_REQUIRED',copy(More,2,255),true) then
begin
break;
@ -3399,6 +3399,12 @@ begin
mm_huge: def_system_macro('FPC_MM_HUGE');
end;
{$endif i8086}
{$ifdef aarch64}
def_system_macro('CPUAARCH64');
def_system_macro('CPU64');
def_system_macro('FPC_CURRENCY_IS_INT64');
def_system_macro('FPC_COMP_IS_INT64');
{$endif aarch64}
if tf_cld in target_info.flags then
if not UpdateTargetSwitchStr('CLD', init_settings.targetswitches, true) then

View File

@ -268,6 +268,10 @@ implementation
create_fpu_types;
s64currencytype:=corddef.create(scurrency,low(int64),high(int64));
{$endif arm}
{$ifdef aarch64}
create_fpu_types;
s64currencytype:=corddef.create(scurrency,low(int64),high(int64));
{$endif aarch64}
{$ifdef avr}
s32floattype:=cfloatdef.create(s32real);
s64floattype:=cfloatdef.create(s64real);

View File

@ -77,6 +77,9 @@ interface
{$ifdef cpumipsel}
source_cpu_string = 'mipsel';
{$endif cpumipsel}
{$ifdef cpuaarch64}
source_cpu_string = 'aarch64';
{$endif cpuaarch64}
function version_string:string;
function full_version_string:string;

View File

@ -332,6 +332,22 @@ Type
FarPointer = Pointer;
{$endif CPUAVR}
{$ifdef CPUAARCH64}
{$define DEFAULT_DOUBLE}
{$define SUPPORT_SINGLE}
{$define SUPPORT_DOUBLE}
ValReal = Double;
{ map comp to int64, but this doesn't mean we compile the comp support in! }
Comp = Int64;
PComp = ^Comp;
FarPointer = Pointer;
{$endif CPUAARCH64}
{$ifdef CPU64}
SizeInt = Int64;
SizeUInt = QWord;