aboutsummaryrefslogtreecommitdiff
path: root/include/macros.s
diff options
context:
space:
mode:
Diffstat (limited to 'include/macros.s')
-rw-r--r--include/macros.s18
1 files changed, 18 insertions, 0 deletions
diff --git a/include/macros.s b/include/macros.s
index c857995..c52f6b0 100644
--- a/include/macros.s
+++ b/include/macros.s
@@ -39,4 +39,22 @@ _macros_s_file:
\name:
.endm
+.macro thunkargs arg,args:vararg
+ .ifnb \arg
+ thunkargs \args
+ pushq \arg
+ .endif
+.endm
+
+.macro thunk code:req,n:req,args:vararg
+ thunkargs \args
+ pushq \n
+ pushq \code
+.endm
+
+.macro thunkto reg:req,code:req,n:req,args:vararg
+ thunk \code,\n,\args
+ mov %rsp, \reg
+.endm
+
.endif # _macros_s_file