mirror of
https://gitlab.com/freepascal.org/fpc/source.git
synced 2025-09-08 10:59:10 +02:00
m68k: basic DOS syscall generation for human68k
This commit is contained in:
parent
a398da4c72
commit
439faf0da8
@ -115,6 +115,13 @@ implementation
|
||||
else
|
||||
internalerror(2017081201);
|
||||
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
|
||||
internalerror(2004042901);
|
||||
end;
|
||||
|
@ -2207,6 +2207,7 @@ procedure pd_syscall(pd:tabstractprocdef);
|
||||
case target_info.system of
|
||||
system_arm_palmos,
|
||||
system_m68k_palmos,
|
||||
system_m68k_human68k,
|
||||
system_m68k_atari,
|
||||
system_m68k_amiga,
|
||||
system_powerpc_amiga:
|
||||
@ -2320,6 +2321,17 @@ begin
|
||||
exit;
|
||||
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 ((sym.typ=staticvarsym) or
|
||||
(sym.typ=absolutevarsym) and (tabsolutevarsym(sym).abstyp=toaddr)) and
|
||||
|
@ -38,7 +38,7 @@ type
|
||||
|
||||
const
|
||||
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] ),
|
||||
// old sysv naming, for compatibility only (on MorphOS/OS4)
|
||||
( token: _SYSV; procoption: po_syscall_basenone; validon: [system_powerpc_morphos] ),
|
||||
@ -72,10 +72,11 @@ type
|
||||
end;
|
||||
|
||||
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_m68k_palmos; 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_powerpc_amiga; procoption: po_syscall_basefirst ),
|
||||
( system: system_powerpc_morphos; procoption: po_syscall_legacy ),
|
||||
|
Loading…
Reference in New Issue
Block a user