aboutsummaryrefslogtreecommitdiff
path: root/compiler/elymasAsmOps.ey
diff options
context:
space:
mode:
authorDrahflow <drahflow@gmx.de>2017-02-21 02:56:27 +0100
committerDrahflow <drahflow@gmx.de>2017-02-21 02:56:27 +0100
commit6335e78f7349a0fa46654c2876050347514d1a31 (patch)
tree7354d6c3567f55c04b310d16b68f280edf28c159 /compiler/elymasAsmOps.ey
parent818b3e2105deaff43ac2371491b73070be437d4c (diff)
Support rip-relative addressing
Diffstat (limited to 'compiler/elymasAsmOps.ey')
-rw-r--r--compiler/elymasAsmOps.ey8
1 files changed, 7 insertions, 1 deletions
diff --git a/compiler/elymasAsmOps.ey b/compiler/elymasAsmOps.ey
index 150a863..0e02abe 100644
--- a/compiler/elymasAsmOps.ey
+++ b/compiler/elymasAsmOps.ey
@@ -22,7 +22,7 @@
[ /two /dl /dx /edx /rdx /xmm2 ] { 2 -01 defv }' each
[ /three /bl /bx /ebx /rbx /xmm3 ] { 3 -01 defv }' each
[ /four /sib /spl /ah /sp /esp /rsp /xmm4 ] { 4 -01 defv }' each
- [ /five /bpl /bp /ebp /rbp /xmm5 ] { 5 -01 defv }' each
+ [ /five /rip /bpl /bp /ebp /rbp /xmm5 ] { 5 -01 defv }' each
[ /six /sil /si /esi /rsi /xmm6 ] { 6 -01 defv }' each
[ /seven /dil /di /edi /rdi /xmm7 ] { 7 -01 defv }' each
[ /r8b /r8w /r8d /r8 /xmm8 ] { 8 -01 defv }' each
@@ -267,6 +267,12 @@
disp imm32
} /encode deff >
} ==MemIndexScaleDisp32
+ # rip relative adressing pointing at label
+ { < ==lbl /rip ==base /none ==idx { ==r
+ r /rip modrm00
+ lbl labelRel32
+ } /encode deff >
+ } ==RipLbl32
> ==memoryAddressingVariants
{ ==opcode ==mnemonic