aboutsummaryrefslogtreecommitdiff
path: root/include/macros.s
diff options
context:
space:
mode:
authorMirek Kratochvil <exa.exa@gmail.com>2023-08-12 15:12:03 +0200
committerMirek Kratochvil <exa.exa@gmail.com>2023-08-12 15:12:03 +0200
commit6be5a28bb90b391a5842a8ce3dfc7c154100ab68 (patch)
tree22e04a263e68d983c6bf5d1fdebd662e66915e96 /include/macros.s
parent5184299c7dfddeba4d2d2ba95d390040368f9736 (diff)
downloaduskel-6be5a28bb90b391a5842a8ce3dfc7c154100ab68.tar.gz
uskel-6be5a28bb90b391a5842a8ce3dfc7c154100ab68.tar.bz2
make a macro for pushing out thunks
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