asm_dip/toolchain/fasmg.kl0e/source/macos/selfhost.inc
2024-11-24 23:13:28 -05:00

51 lines
873 B
PHP

include '../../examples/x86/include/80386.inc'
macro format?.MachO? variant
match , variant
MachO.Settings.FileType equ MH_OBJECT
include '../../examples/x86/include/format/macho.inc'
use32
else match =executable?, variant
MachO.Settings.BaseAddress = 0x1000
include '../../examples/x86/include/format/macho.inc'
use32
else
err 'invalid argument'
end match
end macro
macro struct? name
macro ends?!
end namespace
esc end struc
virtual at 0
name name
sizeof.name = $
end virtual
purge ends?
end macro
esc struc name
label . : sizeof.name
namespace .
end macro
macro ccall? proc*,args&
local size
mov ebp,esp
sub esp,size
and esp,0FFFFFFF0h
match any, args
iterate arg, args
mov dword [esp+(%-1)*4],arg
if % = 1
size := %%*4
end if
end iterate
else
size := 0
end match
call proc
mov esp,ebp
end macro