diff options
| author | Drahflow <drahflow@gmx.de> | 2013-10-18 14:28:30 +0200 |
|---|---|---|
| committer | Drahflow <drahflow@gmx.de> | 2013-10-18 14:28:30 +0200 |
| commit | 8ab3918f89bc537bdbdf2d400535c97cacf2dbb8 (patch) | |
| tree | 49ebec2fb338aa53a0ae7ba74be5b3b96511b3fe /elymas | |
| parent | 2e99f530a9ebdf8f6a357d18a43300e3ae5b6a9c (diff) | |
Stack clean up after stack-based arguments
Diffstat (limited to 'elymas')
| -rw-r--r-- | elymas/lib/sys/so.ey | 6 |
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 |
