.ifndef __RESTORE__ .set __RESTORE__, 1 .macro __restore_next n, args:vararg .ifnb \args __restore\n \args .endif .endm .macro __restore4 arg:req, args:vararg .ifnb \args .error "restore: too many arguments" .endif popq \arg .endm .macro __restore3 arg:req, args:vararg __restore_next 4, \args popq \arg .endm .macro __restore2 arg:req, args:vararg __restore_next 3, \args popq \arg .endm .macro restore arg:req, args:vararg __restore_next 2, \args popq \arg .endm .endif