diff options
| author | Drahflow <drahflow@gmx.de> | 2013-09-27 21:56:11 +0200 |
|---|---|---|
| committer | Drahflow <drahflow@gmx.de> | 2013-09-27 21:56:11 +0200 |
| commit | f6af44d6742d96ecf002eb24475ecc23bf3d2d72 (patch) | |
| tree | 41580218c3f6dfaf8733e846146d2a682d8a85bd /compiler/elymasAsm.ey | |
| parent | 7521804dd8818778311720e4b0e1d69a029debb3 (diff) | |
currentScope now in r14
Diffstat (limited to 'compiler/elymasAsm.ey')
| -rw-r--r-- | compiler/elymasAsm.ey | 30 |
1 files changed, 12 insertions, 18 deletions
diff --git a/compiler/elymasAsm.ey b/compiler/elymasAsm.ey index 1482095..77719ea 100644 --- a/compiler/elymasAsm.ey +++ b/compiler/elymasAsm.ey @@ -1131,24 +1131,6 @@ %0B } /ud2 deff - { ==regb ==rega - rega bit64assert - regb bit64assert - - 1 rega /none regb rex - %87 - rega regb modrm11 - } /xchgqRegReg deff - - { ==mem ==reg - reg bit64assert - mem bit64assert - - 1 reg /none mem rex - %87 - reg mem modrm00 - } /xchgqRegMem deff - { ==dst ==src dst bit64assert src bit64assert @@ -1158,6 +1140,16 @@ src dst modrm11 } /xchgqRegReg deff + memoryAddressingVariants keys { ==variant memoryAddressingVariants variant . =*parse + { parse ==mem ==reg + reg bit64assert + + 1 reg mem .idx mem .base rex + %87 + reg mem .encode + } /xchgqReg variant defOp + } each + /xor %31 defAsmAddq # map "anonymous" allocations away from interpreter heap @@ -1249,11 +1241,13 @@ /rsp /rbx xchgqRegMem callStack /rbx movqImmReg /r15 /rbx xchgqRegMem + /r14 8 /rbx xchgqRegMemDisp8 opcodes _ len dearray callStack /rbx movqImmReg /r15 /rbx xchgqRegMem + /r14 8 /rbx xchgqRegMemDisp8 valueStack /rbx movqImmReg /rsp /rbx xchgqRegMem /r15 popqReg |
