mirror of
https://gitlab.com/freepascal.org/fpc/source.git
synced 2025-08-14 03:59:37 +02:00
forgotten file, this should have been part of the previous commit
git-svn-id: trunk@34807 -
This commit is contained in:
parent
c7c37f66ed
commit
ce5ff8ecd5
@ -2056,6 +2056,7 @@ procedure pd_syscall(pd:tabstractprocdef);
|
|||||||
system_powerpc_amiga:
|
system_powerpc_amiga:
|
||||||
include(pd.procoptions,get_default_syscall);
|
include(pd.procoptions,get_default_syscall);
|
||||||
system_powerpc_morphos,
|
system_powerpc_morphos,
|
||||||
|
system_arm_aros,
|
||||||
system_i386_aros,
|
system_i386_aros,
|
||||||
system_x86_64_aros:
|
system_x86_64_aros:
|
||||||
begin
|
begin
|
||||||
@ -2077,7 +2078,7 @@ procedure pd_syscall(pd:tabstractprocdef);
|
|||||||
function po_syscall_to_varoptions: tvaroptions;
|
function po_syscall_to_varoptions: tvaroptions;
|
||||||
begin
|
begin
|
||||||
result:=[vo_is_syscall_lib,vo_is_hidden_para];
|
result:=[vo_is_syscall_lib,vo_is_hidden_para];
|
||||||
if ([po_syscall_legacy,po_syscall_r12base,po_syscall_sysv,po_syscall_eaxbase] * tprocdef(pd).procoptions) <> [] then
|
if ([po_syscall_legacy,po_syscall_basereg,po_syscall_basenone] * tprocdef(pd).procoptions) <> [] then
|
||||||
include(result,vo_has_explicit_paraloc);
|
include(result,vo_has_explicit_paraloc);
|
||||||
end;
|
end;
|
||||||
|
|
||||||
@ -2085,20 +2086,23 @@ procedure pd_syscall(pd:tabstractprocdef);
|
|||||||
begin
|
begin
|
||||||
if po_syscall_legacy in tprocdef(pd).procoptions then
|
if po_syscall_legacy in tprocdef(pd).procoptions then
|
||||||
result:='A6'
|
result:='A6'
|
||||||
else if po_syscall_r12base in tprocdef(pd).procoptions then
|
{ let no base on MorphOS store the libbase in r12 as well, because
|
||||||
result:='R12'
|
we will need the libbase anyway during the call generation }
|
||||||
{ let sysv store the libbase in r12 as well, because we will
|
else if (po_syscall_basenone in tprocdef(pd).procoptions) and
|
||||||
need the libbase anyway during the call generation }
|
(target_info.system = system_powerpc_morphos) then
|
||||||
else if po_syscall_sysv in tprocdef(pd).procoptions then
|
result:='R12'
|
||||||
result:='R12'
|
else if po_syscall_basereg in tprocdef(pd).procoptions then
|
||||||
else if po_syscall_eaxbase in tprocdef(pd).procoptions then
|
|
||||||
begin
|
begin
|
||||||
if target_info.system = system_i386_aros then
|
case target_info.system of
|
||||||
result:='EAX'
|
system_i386_aros:
|
||||||
else if target_info.system = system_x86_64_aros then
|
result:='EAX';
|
||||||
result:='RAX'
|
system_x86_64_aros:
|
||||||
else
|
result:='RAX';
|
||||||
internalerror(2016090201);
|
system_powerpc_morphos:
|
||||||
|
result:='R12';
|
||||||
|
else
|
||||||
|
internalerror(2016090201);
|
||||||
|
end;
|
||||||
end
|
end
|
||||||
else
|
else
|
||||||
internalerror(2016090101);
|
internalerror(2016090101);
|
||||||
@ -2149,7 +2153,7 @@ begin
|
|||||||
tcpuprocdef(pd).libsym:=sym;
|
tcpuprocdef(pd).libsym:=sym;
|
||||||
|
|
||||||
vo:=po_syscall_to_varoptions;
|
vo:=po_syscall_to_varoptions;
|
||||||
paranr:=syscall_paranr[po_syscall_basesysv in tprocdef(pd).procoptions];
|
paranr:=syscall_paranr[po_syscall_basefirst in tprocdef(pd).procoptions];
|
||||||
vs:=cparavarsym.create('$syscalllib',paranr,vs_value,tabstractvarsym(sym).vardef,vo);
|
vs:=cparavarsym.create('$syscalllib',paranr,vs_value,tabstractvarsym(sym).vardef,vo);
|
||||||
if vo_has_explicit_paraloc in vo then
|
if vo_has_explicit_paraloc in vo then
|
||||||
paramanager.parseparaloc(vs,po_syscall_to_regname);
|
paramanager.parseparaloc(vs,po_syscall_to_regname);
|
||||||
@ -2165,7 +2169,7 @@ begin
|
|||||||
if (v<low(Tprocdef(pd).extnumber)) or (v>high(Tprocdef(pd).extnumber)) then
|
if (v<low(Tprocdef(pd).extnumber)) or (v>high(Tprocdef(pd).extnumber)) then
|
||||||
message3(type_e_range_check_error_bounds,tostr(v),tostr(low(Tprocdef(pd).extnumber)),tostr(high(Tprocdef(pd).extnumber)))
|
message3(type_e_range_check_error_bounds,tostr(v),tostr(low(Tprocdef(pd).extnumber)),tostr(high(Tprocdef(pd).extnumber)))
|
||||||
else
|
else
|
||||||
if target_info.system in [system_i386_aros,system_x86_64_aros] then
|
if target_info.system in [system_arm_aros,system_i386_aros,system_x86_64_aros] then
|
||||||
Tprocdef(pd).extnumber:=v.uvalue * sizeof(pint)
|
Tprocdef(pd).extnumber:=v.uvalue * sizeof(pint)
|
||||||
else
|
else
|
||||||
Tprocdef(pd).extnumber:=v.uvalue;
|
Tprocdef(pd).extnumber:=v.uvalue;
|
||||||
|
Loading…
Reference in New Issue
Block a user