.ifndef __SYS__ .set __SYS__, 1 .include "syscall.s" # sys call args: # %rdi # %rsi # %rdx # %rcx # %r8 # %r9 .macro __putargs6 arg:req, args:vararg movq \arg, %r9 .endm .macro __putargs5 arg:req, args:vararg movq \arg, %r8 .ifnb \args __putargs6 \args .endif .endm .macro __putargs4 arg:req, args:vararg movq \arg, %rcx .ifnb \args __putargs5 \args .endif .endm .macro __putargs3 arg:req, args:vararg movq \arg, %rdx .ifnb \args __putargs4 \args .endif .endm .macro __putargs2 arg:req, args:vararg movq \arg, %rsi .ifnb \args __putargs3 \args .endif .endm .macro __putargs1 arg:req, args:vararg movq \arg, %rdi .ifnb \args __putargs2 \args .endif .endm .macro sysargs args:vararg .ifnb \args __putargs1 \args .endif .endm .macro sys func:req, args:vararg sysargs \args movq $__NR_\func, %rax syscall .endm .endif