mirror of
https://gitlab.com/freepascal.org/fpc/source.git
synced 2025-09-14 14:29:14 +02:00
m68k: basic DOS syscall generation for human68k
This commit is contained in:
parent
a398da4c72
commit
439faf0da8
@ -115,6 +115,13 @@ implementation
|
|||||||
else
|
else
|
||||||
internalerror(2017081201);
|
internalerror(2017081201);
|
||||||
end;
|
end;
|
||||||
|
system_m68k_human68k:
|
||||||
|
begin
|
||||||
|
if po_syscall in tprocdef(procdefinition).procoptions then
|
||||||
|
begin
|
||||||
|
current_asmdata.CurrAsmList.concat(tai_const.create_16bit(tprocdef(procdefinition).extnumber));
|
||||||
|
end;
|
||||||
|
end;
|
||||||
else
|
else
|
||||||
internalerror(2004042901);
|
internalerror(2004042901);
|
||||||
end;
|
end;
|
||||||
|
@ -2207,6 +2207,7 @@ procedure pd_syscall(pd:tabstractprocdef);
|
|||||||
case target_info.system of
|
case target_info.system of
|
||||||
system_arm_palmos,
|
system_arm_palmos,
|
||||||
system_m68k_palmos,
|
system_m68k_palmos,
|
||||||
|
system_m68k_human68k,
|
||||||
system_m68k_atari,
|
system_m68k_atari,
|
||||||
system_m68k_amiga,
|
system_m68k_amiga,
|
||||||
system_powerpc_amiga:
|
system_powerpc_amiga:
|
||||||
@ -2320,6 +2321,17 @@ begin
|
|||||||
exit;
|
exit;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
|
if target_info.system = system_m68k_human68k then
|
||||||
|
begin
|
||||||
|
v:=get_intconst;
|
||||||
|
if ((v<$ff00) or (v>high(word))) then
|
||||||
|
message(parser_e_range_check_error)
|
||||||
|
else
|
||||||
|
tprocdef(pd).extnumber:=longint(v.svalue);
|
||||||
|
|
||||||
|
exit;
|
||||||
|
end;
|
||||||
|
|
||||||
if consume_sym(sym,symtable) then
|
if consume_sym(sym,symtable) then
|
||||||
if ((sym.typ=staticvarsym) or
|
if ((sym.typ=staticvarsym) or
|
||||||
(sym.typ=absolutevarsym) and (tabsolutevarsym(sym).abstyp=toaddr)) and
|
(sym.typ=absolutevarsym) and (tabsolutevarsym(sym).abstyp=toaddr)) and
|
||||||
|
@ -38,7 +38,7 @@ type
|
|||||||
|
|
||||||
const
|
const
|
||||||
syscall_conventions: array[1..10] of tsyscallinfo = (
|
syscall_conventions: array[1..10] of tsyscallinfo = (
|
||||||
( token: NOTOKEN; procoption: po_syscall; validon: [system_m68k_atari,system_m68k_palmos,system_arm_palmos] ),
|
( token: NOTOKEN; procoption: po_syscall; validon: [system_m68k_atari,system_m68k_palmos,system_arm_palmos,system_m68k_human68k] ),
|
||||||
( token: _LEGACY; procoption: po_syscall_legacy; validon: [system_powerpc_morphos,system_m68k_amiga] ),
|
( token: _LEGACY; procoption: po_syscall_legacy; validon: [system_powerpc_morphos,system_m68k_amiga] ),
|
||||||
// old sysv naming, for compatibility only (on MorphOS/OS4)
|
// old sysv naming, for compatibility only (on MorphOS/OS4)
|
||||||
( token: _SYSV; procoption: po_syscall_basenone; validon: [system_powerpc_morphos] ),
|
( token: _SYSV; procoption: po_syscall_basenone; validon: [system_powerpc_morphos] ),
|
||||||
@ -72,10 +72,11 @@ type
|
|||||||
end;
|
end;
|
||||||
|
|
||||||
const
|
const
|
||||||
default_syscall_conventions: array[0..8] of tsyscalldefaultinfo = (
|
default_syscall_conventions: array[0..9] of tsyscalldefaultinfo = (
|
||||||
( system: system_arm_palmos; procoption: po_syscall ),
|
( system: system_arm_palmos; procoption: po_syscall ),
|
||||||
( system: system_m68k_palmos; procoption: po_syscall ),
|
( system: system_m68k_palmos; procoption: po_syscall ),
|
||||||
( system: system_m68k_atari; procoption: po_syscall ),
|
( system: system_m68k_atari; procoption: po_syscall ),
|
||||||
|
( system: system_m68k_human68k; procoption: po_syscall ),
|
||||||
( system: system_m68k_amiga; procoption: po_syscall_legacy ),
|
( system: system_m68k_amiga; procoption: po_syscall_legacy ),
|
||||||
( system: system_powerpc_amiga; procoption: po_syscall_basefirst ),
|
( system: system_powerpc_amiga; procoption: po_syscall_basefirst ),
|
||||||
( system: system_powerpc_morphos; procoption: po_syscall_legacy ),
|
( system: system_powerpc_morphos; procoption: po_syscall_legacy ),
|
||||||
|
Loading…
Reference in New Issue
Block a user