aboutsummaryrefslogtreecommitdiff
path: root/elymas
diff options
context:
space:
mode:
authorDrahflow <drahflow@gmx.de>2013-10-18 14:28:30 +0200
committerDrahflow <drahflow@gmx.de>2013-10-18 14:28:30 +0200
commit8ab3918f89bc537bdbdf2d400535c97cacf2dbb8 (patch)
tree49ebec2fb338aa53a0ae7ba74be5b3b96511b3fe /elymas
parent2e99f530a9ebdf8f6a357d18a43300e3ae5b6a9c (diff)
Stack clean up after stack-based arguments
Diffstat (limited to 'elymas')
-rw-r--r--elymas/lib/sys/so.ey6
1 files changed, 6 insertions, 0 deletions
diff --git a/elymas/lib/sys/so.ey b/elymas/lib/sys/so.ey
index c1284a1..3bf7018 100644
--- a/elymas/lib/sys/so.ey
+++ b/elymas/lib/sys/so.ey
@@ -180,9 +180,11 @@
{
0 nextIntegerRegister 6 min range { availableIntegerRegisters :pushqReg } each
+ /rbp :pushqReg
} /pushIntegerStorage deffst
{
+ /rbp :popqReg
0 nextIntegerRegister 6 min range reverse { availableIntegerRegisters :popqReg } each
} /popIntegerStorage deffst
@@ -372,6 +374,10 @@
/rbp /rsp :movqRegReg
+ args len INTREGISTERS gt {
+ args len INTREGISTERS sub 8 mul /rsp :addqImm8Reg
+ } rep
+
returnWrapper
/rbx :pushqReg