aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--asm.peg182
1 files changed, 91 insertions, 91 deletions
diff --git a/asm.peg b/asm.peg
index 9674463..6e86ff6 100644
--- a/asm.peg
+++ b/asm.peg
@@ -279,20 +279,20 @@ lea = "lea" (
)
mov = "mov" (
- 'b'? ws s:r8 ws? ',' ws? d:r8 { $$ = REGREG({.w=0}, -1, 0x88, s, d); }
- | 'w'? ws s:r16 ws? ',' ws? d:r16 { $$ = REGREG({.w=0}, 0x66, 0x89, s, d); }
- | 'l'? ws s:r32 ws? ',' ws? d:r32 { $$ = REGREG({.w=0}, -1, 0x89, s, d); }
- | 'q'? ws s:r64 ws? ',' ws? d:r64 { $$ = REGREG({.w=1}, -1, 0x89, s, d); }
+ 'b'? ws s:r8 ws? ',' ws? d:r8 { $$ = REGREG({.w=0}, -1, 0x88, s, d); }
+ | 'w'? ws s:r16 ws? ',' ws? d:r16 { $$ = REGREG({.w=0}, 0x66, 0x89, s, d); }
+ | 'l'? ws s:r32 ws? ',' ws? d:r32 { $$ = REGREG({.w=0}, -1, 0x89, s, d); }
+ | 'q'? ws s:r64 ws? ',' ws? d:r64 { $$ = REGREG({.w=1}, -1, 0x89, s, d); }
- | 'b'? ws s:r8 ws? ',' ws? d:mem { $$ = REGMEM({.w=0}, -1, 0x88, s, d); }
- | 'w'? ws s:r16 ws? ',' ws? d:mem { $$ = REGMEM({.w=0}, 0x66, 0x89, s, d); }
- | 'l'? ws s:r32 ws? ',' ws? d:mem { $$ = REGMEM({.w=0}, -1, 0x89, s, d); }
- | 'q'? ws s:r64 ws? ',' ws? d:mem { $$ = REGMEM({.w=1}, -1, 0x89, s, d); }
+ | 'b'? ws s:r8 ws? ',' ws? d:mem { $$ = REGMEM({.w=0}, -1, 0x88, s, d); }
+ | 'w'? ws s:r16 ws? ',' ws? d:mem { $$ = REGMEM({.w=0}, 0x66, 0x89, s, d); }
+ | 'l'? ws s:r32 ws? ',' ws? d:mem { $$ = REGMEM({.w=0}, -1, 0x89, s, d); }
+ | 'q'? ws s:r64 ws? ',' ws? d:mem { $$ = REGMEM({.w=1}, -1, 0x89, s, d); }
- | 'b'? ws s:mem ws? ',' ws? d:r8 { $$ = MEMREG({.w=0}, -1, 0x8a, s, d); }
- | 'w'? ws s:mem ws? ',' ws? d:r16 { $$ = MEMREG({.w=0}, 0x66, 0x8b, s, d); }
- | 'l'? ws s:mem ws? ',' ws? d:r32 { $$ = MEMREG({.w=0}, -1, 0x8b, s, d); }
- | 'q'? ws s:mem ws? ',' ws? d:r64 { $$ = MEMREG({.w=1}, -1, 0x8b, s, d); }
+ | 'b'? ws s:mem ws? ',' ws? d:r8 { $$ = MEMREG({.w=0}, -1, 0x8a, s, d); }
+ | 'w'? ws s:mem ws? ',' ws? d:r16 { $$ = MEMREG({.w=0}, 0x66, 0x8b, s, d); }
+ | 'l'? ws s:mem ws? ',' ws? d:r32 { $$ = MEMREG({.w=0}, -1, 0x8b, s, d); }
+ | 'q'? ws s:mem ws? ',' ws? d:r64 { $$ = MEMREG({.w=1}, -1, 0x8b, s, d); }
| 'b'? ws s:imm8 ws? ',' ws? d:r8 { $$ = RIMM({.w=0}, -1, 0xb0, s, d); }
| 'w'? ws s:imm16 ws? ',' ws? d:r16 { $$ = RIMM({.w=0}, 0x66, 0xb8, s, d); }
@@ -314,9 +314,9 @@ mov = "mov" (
)
movsx = "movs" (
- 'bw' ws s:r8 ws? ',' ws? d:r16 { $$ = REGREG2({.w=0}, 0x66, 0x01000fbe, s, d); }
- | 'bl' ws s:r8 ws? ',' ws? d:r32 { $$ = REGREG2({.w=0}, -1, 0x01000fbe, s, d); }
- | 'bq' ws s:r8 ws? ',' ws? d:r64 { $$ = REGREG2({.w=1}, -1, 0x01000fbe, s, d); }
+ 'bw' ws s:r8 ws? ',' ws? d:r16 { $$ = REGREG2({.w=0}, 0x66, 0x01000fbe, s, d); }
+ | 'bl' ws s:r8 ws? ',' ws? d:r32 { $$ = REGREG2({.w=0}, -1, 0x01000fbe, s, d); }
+ | 'bq' ws s:r8 ws? ',' ws? d:r64 { $$ = REGREG2({.w=1}, -1, 0x01000fbe, s, d); }
| 'wl' ws s:r16 ws? ',' ws? d:r32 { $$ = REGREG2({.w=0}, -1, 0x01000fbf, s, d); }
| 'wq' ws s:r16 ws? ',' ws? d:r64 { $$ = REGREG2({.w=1}, -1, 0x01000fbf, s, d); }
@@ -333,9 +333,9 @@ movsx = "movs" (
)
movzx = "movz" (
- 'bw' ws s:r8 ws? ',' ws? d:r16 { $$ = REGREG2({.w=0}, 0x66, 0x01000fb6, s, d); }
- | 'bl' ws s:r8 ws? ',' ws? d:r32 { $$ = REGREG2({.w=0}, -1, 0x01000fb6, s, d); }
- | 'bq' ws s:r8 ws? ',' ws? d:r64 { $$ = REGREG2({.w=1}, -1, 0x01000fb6, s, d); }
+ 'bw' ws s:r8 ws? ',' ws? d:r16 { $$ = REGREG2({.w=0}, 0x66, 0x01000fb6, s, d); }
+ | 'bl' ws s:r8 ws? ',' ws? d:r32 { $$ = REGREG2({.w=0}, -1, 0x01000fb6, s, d); }
+ | 'bq' ws s:r8 ws? ',' ws? d:r64 { $$ = REGREG2({.w=1}, -1, 0x01000fb6, s, d); }
| 'wl' ws s:r16 ws? ',' ws? d:r32 { $$ = REGREG2({.w=0}, -1, 0x01000fb7, s, d); }
| 'wq' ws s:r16 ws? ',' ws? d:r64 { $$ = REGREG2({.w=1}, -1, 0x01000fb7, s, d); }
@@ -364,20 +364,20 @@ add = "add" (
| 'l' ws s:imm32 ws? ',' ws? d:mem { $$ = IMMMEM({.w=0}, -1, 0x81, 0x00, s, d); }
| 'q' ws s:imm32 ws? ',' ws? d:mem { $$ = IMMMEM({.w=1}, -1, 0x81, 0x00, s, d); }
- | 'b'? ws s:r8 ws? ',' ws? d:r8 { $$ = REGREG({.w=0}, -1, 0x00, s, d); }
- | 'w'? ws s:r16 ws? ',' ws? d:r16 { $$ = REGREG({.w=0}, 0x66, 0x01, s, d); }
- | 'l'? ws s:r32 ws? ',' ws? d:r32 { $$ = REGREG({.w=0}, -1, 0x01, s, d); }
- | 'q'? ws s:r64 ws? ',' ws? d:r64 { $$ = REGREG({.w=1}, -1, 0x01, s, d); }
+ | 'b'? ws s:r8 ws? ',' ws? d:r8 { $$ = REGREG({.w=0}, -1, 0x00, s, d); }
+ | 'w'? ws s:r16 ws? ',' ws? d:r16 { $$ = REGREG({.w=0}, 0x66, 0x01, s, d); }
+ | 'l'? ws s:r32 ws? ',' ws? d:r32 { $$ = REGREG({.w=0}, -1, 0x01, s, d); }
+ | 'q'? ws s:r64 ws? ',' ws? d:r64 { $$ = REGREG({.w=1}, -1, 0x01, s, d); }
- | 'b'? ws s:r8 ws? ',' ws? d:mem { $$ = REGMEM({.w=0}, -1, 0x00, s, d); }
- | 'w'? ws s:r16 ws? ',' ws? d:mem { $$ = REGMEM({.w=0}, 0x66, 0x01, s, d); }
- | 'l'? ws s:r32 ws? ',' ws? d:mem { $$ = REGMEM({.w=0}, -1, 0x01, s, d); }
- | 'q'? ws s:r64 ws? ',' ws? d:mem { $$ = REGMEM({.w=1}, -1, 0x01, s, d); }
+ | 'b'? ws s:r8 ws? ',' ws? d:mem { $$ = REGMEM({.w=0}, -1, 0x00, s, d); }
+ | 'w'? ws s:r16 ws? ',' ws? d:mem { $$ = REGMEM({.w=0}, 0x66, 0x01, s, d); }
+ | 'l'? ws s:r32 ws? ',' ws? d:mem { $$ = REGMEM({.w=0}, -1, 0x01, s, d); }
+ | 'q'? ws s:r64 ws? ',' ws? d:mem { $$ = REGMEM({.w=1}, -1, 0x01, s, d); }
- | 'b'? ws s:mem ws? ',' ws? d:r8 { $$ = MEMREG({.w=0}, -1, 0x02, s, d); }
- | 'w'? ws s:mem ws? ',' ws? d:r16 { $$ = MEMREG({.w=0}, 0x66, 0x03, s, d); }
- | 'l'? ws s:mem ws? ',' ws? d:r32 { $$ = MEMREG({.w=0}, -1, 0x03, s, d); }
- | 'q'? ws s:mem ws? ',' ws? d:r64 { $$ = MEMREG({.w=1}, -1, 0x03, s, d); }
+ | 'b'? ws s:mem ws? ',' ws? d:r8 { $$ = MEMREG({.w=0}, -1, 0x02, s, d); }
+ | 'w'? ws s:mem ws? ',' ws? d:r16 { $$ = MEMREG({.w=0}, 0x66, 0x03, s, d); }
+ | 'l'? ws s:mem ws? ',' ws? d:r32 { $$ = MEMREG({.w=0}, -1, 0x03, s, d); }
+ | 'q'? ws s:mem ws? ',' ws? d:r64 { $$ = MEMREG({.w=1}, -1, 0x03, s, d); }
)
@@ -397,20 +397,20 @@ and = "and" (
| 'l' ws s:imm32 ws? ',' ws? d:mem { $$ = IMMMEM({.w=0}, -1, 0x81, 0x04, s, d); }
| 'q' ws s:imm32 ws? ',' ws? d:mem { $$ = IMMMEM({.w=1}, -1, 0x81, 0x04, s, d); }
- | 'b'? ws s:r8 ws? ',' ws? d:r8 { $$ = REGREG({.w=0}, -1, 0x20, s, d); }
- | 'w'? ws s:r16 ws? ',' ws? d:r16 { $$ = REGREG({.w=0}, 0x66, 0x21, s, d); }
- | 'l'? ws s:r32 ws? ',' ws? d:r32 { $$ = REGREG({.w=0}, -1, 0x21, s, d); }
- | 'q'? ws s:r64 ws? ',' ws? d:r64 { $$ = REGREG({.w=1}, -1, 0x21, s, d); }
+ | 'b'? ws s:r8 ws? ',' ws? d:r8 { $$ = REGREG({.w=0}, -1, 0x20, s, d); }
+ | 'w'? ws s:r16 ws? ',' ws? d:r16 { $$ = REGREG({.w=0}, 0x66, 0x21, s, d); }
+ | 'l'? ws s:r32 ws? ',' ws? d:r32 { $$ = REGREG({.w=0}, -1, 0x21, s, d); }
+ | 'q'? ws s:r64 ws? ',' ws? d:r64 { $$ = REGREG({.w=1}, -1, 0x21, s, d); }
- | 'b'? ws s:r8 ws? ',' ws? d:mem { $$ = REGMEM({.w=0}, -1, 0x20, s, d); }
- | 'w'? ws s:r16 ws? ',' ws? d:mem { $$ = REGMEM({.w=0}, 0x66, 0x21, s, d); }
- | 'l'? ws s:r32 ws? ',' ws? d:mem { $$ = REGMEM({.w=0}, -1, 0x21, s, d); }
- | 'q'? ws s:r64 ws? ',' ws? d:mem { $$ = REGMEM({.w=1}, -1, 0x21, s, d); }
+ | 'b'? ws s:r8 ws? ',' ws? d:mem { $$ = REGMEM({.w=0}, -1, 0x20, s, d); }
+ | 'w'? ws s:r16 ws? ',' ws? d:mem { $$ = REGMEM({.w=0}, 0x66, 0x21, s, d); }
+ | 'l'? ws s:r32 ws? ',' ws? d:mem { $$ = REGMEM({.w=0}, -1, 0x21, s, d); }
+ | 'q'? ws s:r64 ws? ',' ws? d:mem { $$ = REGMEM({.w=1}, -1, 0x21, s, d); }
- | 'b'? ws s:mem ws? ',' ws? d:r8 { $$ = MEMREG({.w=0}, -1, 0x22, s, d); }
- | 'w'? ws s:mem ws? ',' ws? d:r16 { $$ = MEMREG({.w=0}, 0x66, 0x23, s, d); }
- | 'l'? ws s:mem ws? ',' ws? d:r32 { $$ = MEMREG({.w=0}, -1, 0x23, s, d); }
- | 'q'? ws s:mem ws? ',' ws? d:r64 { $$ = MEMREG({.w=1}, -1, 0x23, s, d); }
+ | 'b'? ws s:mem ws? ',' ws? d:r8 { $$ = MEMREG({.w=0}, -1, 0x22, s, d); }
+ | 'w'? ws s:mem ws? ',' ws? d:r16 { $$ = MEMREG({.w=0}, 0x66, 0x23, s, d); }
+ | 'l'? ws s:mem ws? ',' ws? d:r32 { $$ = MEMREG({.w=0}, -1, 0x23, s, d); }
+ | 'q'? ws s:mem ws? ',' ws? d:r64 { $$ = MEMREG({.w=1}, -1, 0x23, s, d); }
)
cmp = "cmp" (
@@ -429,20 +429,20 @@ cmp = "cmp" (
| 'l' ws s:imm32 ws? ',' ws? d:mem { $$ = IMMMEM({.w=0}, -1, 0x81, 0x07, s, d); }
| 'q' ws s:imm32 ws? ',' ws? d:mem { $$ = IMMMEM({.w=1}, -1, 0x81, 0x07, s, d); }
- | 'b'? ws s:r8 ws? ',' ws? d:r8 { $$ = REGREG({.w=0}, -1, 0x38, s, d); }
- | 'w'? ws s:r16 ws? ',' ws? d:r16 { $$ = REGREG({.w=0}, 0x66, 0x39, s, d); }
- | 'l'? ws s:r32 ws? ',' ws? d:r32 { $$ = REGREG({.w=0}, -1, 0x39, s, d); }
- | 'q'? ws s:r64 ws? ',' ws? d:r64 { $$ = REGREG({.w=1}, -1, 0x39, s, d); }
+ | 'b'? ws s:r8 ws? ',' ws? d:r8 { $$ = REGREG({.w=0}, -1, 0x38, s, d); }
+ | 'w'? ws s:r16 ws? ',' ws? d:r16 { $$ = REGREG({.w=0}, 0x66, 0x39, s, d); }
+ | 'l'? ws s:r32 ws? ',' ws? d:r32 { $$ = REGREG({.w=0}, -1, 0x39, s, d); }
+ | 'q'? ws s:r64 ws? ',' ws? d:r64 { $$ = REGREG({.w=1}, -1, 0x39, s, d); }
- | 'b'? ws s:r8 ws? ',' ws? d:mem { $$ = REGMEM({.w=0}, -1, 0x38, s, d); }
- | 'w'? ws s:r16 ws? ',' ws? d:mem { $$ = REGMEM({.w=0}, 0x66, 0x39, s, d); }
- | 'l'? ws s:r32 ws? ',' ws? d:mem { $$ = REGMEM({.w=0}, -1, 0x39, s, d); }
- | 'q'? ws s:r64 ws? ',' ws? d:mem { $$ = REGMEM({.w=1}, -1, 0x39, s, d); }
+ | 'b'? ws s:r8 ws? ',' ws? d:mem { $$ = REGMEM({.w=0}, -1, 0x38, s, d); }
+ | 'w'? ws s:r16 ws? ',' ws? d:mem { $$ = REGMEM({.w=0}, 0x66, 0x39, s, d); }
+ | 'l'? ws s:r32 ws? ',' ws? d:mem { $$ = REGMEM({.w=0}, -1, 0x39, s, d); }
+ | 'q'? ws s:r64 ws? ',' ws? d:mem { $$ = REGMEM({.w=1}, -1, 0x39, s, d); }
- | 'b'? ws s:mem ws? ',' ws? d:r8 { $$ = MEMREG({.w=0}, -1, 0x3a, s, d); }
- | 'w'? ws s:mem ws? ',' ws? d:r16 { $$ = MEMREG({.w=0}, 0x66, 0x3b, s, d); }
- | 'l'? ws s:mem ws? ',' ws? d:r32 { $$ = MEMREG({.w=0}, -1, 0x3b, s, d); }
- | 'q'? ws s:mem ws? ',' ws? d:r64 { $$ = MEMREG({.w=1}, -1, 0x3b, s, d); }
+ | 'b'? ws s:mem ws? ',' ws? d:r8 { $$ = MEMREG({.w=0}, -1, 0x3a, s, d); }
+ | 'w'? ws s:mem ws? ',' ws? d:r16 { $$ = MEMREG({.w=0}, 0x66, 0x3b, s, d); }
+ | 'l'? ws s:mem ws? ',' ws? d:r32 { $$ = MEMREG({.w=0}, -1, 0x3b, s, d); }
+ | 'q'? ws s:mem ws? ',' ws? d:r64 { $$ = MEMREG({.w=1}, -1, 0x3b, s, d); }
)
or = "or" (
@@ -461,20 +461,20 @@ or = "or" (
| 'l' ws s:imm32 ws? ',' ws? d:mem { $$ = IMMMEM({.w=0}, -1, 0x81, 0x01, s, d); }
| 'q' ws s:imm32 ws? ',' ws? d:mem { $$ = IMMMEM({.w=1}, -1, 0x81, 0x01, s, d); }
- | 'b'? ws s:r8 ws? ',' ws? d:r8 { $$ = REGREG({.w=0}, -1, 0x08, s, d); }
- | 'w'? ws s:r16 ws? ',' ws? d:r16 { $$ = REGREG({.w=0}, 0x66, 0x09, s, d); }
- | 'l'? ws s:r32 ws? ',' ws? d:r32 { $$ = REGREG({.w=0}, -1, 0x09, s, d); }
- | 'q'? ws s:r64 ws? ',' ws? d:r64 { $$ = REGREG({.w=1}, -1, 0x09, s, d); }
+ | 'b'? ws s:r8 ws? ',' ws? d:r8 { $$ = REGREG({.w=0}, -1, 0x08, s, d); }
+ | 'w'? ws s:r16 ws? ',' ws? d:r16 { $$ = REGREG({.w=0}, 0x66, 0x09, s, d); }
+ | 'l'? ws s:r32 ws? ',' ws? d:r32 { $$ = REGREG({.w=0}, -1, 0x09, s, d); }
+ | 'q'? ws s:r64 ws? ',' ws? d:r64 { $$ = REGREG({.w=1}, -1, 0x09, s, d); }
- | 'b'? ws s:r8 ws? ',' ws? d:mem { $$ = REGMEM({.w=0}, -1, 0x08, s, d); }
- | 'w'? ws s:r16 ws? ',' ws? d:mem { $$ = REGMEM({.w=0}, 0x66, 0x09, s, d); }
- | 'l'? ws s:r32 ws? ',' ws? d:mem { $$ = REGMEM({.w=0}, -1, 0x09, s, d); }
- | 'q'? ws s:r64 ws? ',' ws? d:mem { $$ = REGMEM({.w=1}, -1, 0x09, s, d); }
+ | 'b'? ws s:r8 ws? ',' ws? d:mem { $$ = REGMEM({.w=0}, -1, 0x08, s, d); }
+ | 'w'? ws s:r16 ws? ',' ws? d:mem { $$ = REGMEM({.w=0}, 0x66, 0x09, s, d); }
+ | 'l'? ws s:r32 ws? ',' ws? d:mem { $$ = REGMEM({.w=0}, -1, 0x09, s, d); }
+ | 'q'? ws s:r64 ws? ',' ws? d:mem { $$ = REGMEM({.w=1}, -1, 0x09, s, d); }
- | 'b'? ws s:mem ws? ',' ws? d:r8 { $$ = MEMREG({.w=0}, -1, 0x0a, s, d); }
- | 'w'? ws s:mem ws? ',' ws? d:r16 { $$ = MEMREG({.w=0}, 0x66, 0x0b, s, d); }
- | 'l'? ws s:mem ws? ',' ws? d:r32 { $$ = MEMREG({.w=0}, -1, 0x0b, s, d); }
- | 'q'? ws s:mem ws? ',' ws? d:r64 { $$ = MEMREG({.w=1}, -1, 0x0b, s, d); }
+ | 'b'? ws s:mem ws? ',' ws? d:r8 { $$ = MEMREG({.w=0}, -1, 0x0a, s, d); }
+ | 'w'? ws s:mem ws? ',' ws? d:r16 { $$ = MEMREG({.w=0}, 0x66, 0x0b, s, d); }
+ | 'l'? ws s:mem ws? ',' ws? d:r32 { $$ = MEMREG({.w=0}, -1, 0x0b, s, d); }
+ | 'q'? ws s:mem ws? ',' ws? d:r64 { $$ = MEMREG({.w=1}, -1, 0x0b, s, d); }
)
sub = "sub" (
@@ -493,20 +493,20 @@ sub = "sub" (
| 'l' ws s:imm32 ws? ',' ws? d:mem { $$ = IMMMEM({.w=0}, -1, 0x81, 0x05, s, d); }
| 'q' ws s:imm32 ws? ',' ws? d:mem { $$ = IMMMEM({.w=1}, -1, 0x81, 0x05, s, d); }
- | 'b'? ws s:r8 ws? ',' ws? d:r8 { $$ = REGREG({.w=0}, -1, 0x28, s, d); }
- | 'w'? ws s:r16 ws? ',' ws? d:r16 { $$ = REGREG({.w=0}, 0x66, 0x29, s, d); }
- | 'l'? ws s:r32 ws? ',' ws? d:r32 { $$ = REGREG({.w=0}, -1, 0x29, s, d); }
- | 'q'? ws s:r64 ws? ',' ws? d:r64 { $$ = REGREG({.w=1}, -1, 0x29, s, d); }
+ | 'b'? ws s:r8 ws? ',' ws? d:r8 { $$ = REGREG({.w=0}, -1, 0x28, s, d); }
+ | 'w'? ws s:r16 ws? ',' ws? d:r16 { $$ = REGREG({.w=0}, 0x66, 0x29, s, d); }
+ | 'l'? ws s:r32 ws? ',' ws? d:r32 { $$ = REGREG({.w=0}, -1, 0x29, s, d); }
+ | 'q'? ws s:r64 ws? ',' ws? d:r64 { $$ = REGREG({.w=1}, -1, 0x29, s, d); }
- | 'b'? ws s:r8 ws? ',' ws? d:mem { $$ = REGMEM({.w=0}, -1, 0x28, s, d); }
- | 'w'? ws s:r16 ws? ',' ws? d:mem { $$ = REGMEM({.w=0}, 0x66, 0x29, s, d); }
- | 'l'? ws s:r32 ws? ',' ws? d:mem { $$ = REGMEM({.w=0}, -1, 0x29, s, d); }
- | 'q'? ws s:r64 ws? ',' ws? d:mem { $$ = REGMEM({.w=1}, -1, 0x29, s, d); }
+ | 'b'? ws s:r8 ws? ',' ws? d:mem { $$ = REGMEM({.w=0}, -1, 0x28, s, d); }
+ | 'w'? ws s:r16 ws? ',' ws? d:mem { $$ = REGMEM({.w=0}, 0x66, 0x29, s, d); }
+ | 'l'? ws s:r32 ws? ',' ws? d:mem { $$ = REGMEM({.w=0}, -1, 0x29, s, d); }
+ | 'q'? ws s:r64 ws? ',' ws? d:mem { $$ = REGMEM({.w=1}, -1, 0x29, s, d); }
- | 'b'? ws s:mem ws? ',' ws? d:r8 { $$ = MEMREG({.w=0}, -1, 0x2a, s, d); }
- | 'w'? ws s:mem ws? ',' ws? d:r16 { $$ = MEMREG({.w=0}, 0x66, 0x2b, s, d); }
- | 'l'? ws s:mem ws? ',' ws? d:r32 { $$ = MEMREG({.w=0}, -1, 0x2b, s, d); }
- | 'q'? ws s:mem ws? ',' ws? d:r64 { $$ = MEMREG({.w=1}, -1, 0x2b, s, d); }
+ | 'b'? ws s:mem ws? ',' ws? d:r8 { $$ = MEMREG({.w=0}, -1, 0x2a, s, d); }
+ | 'w'? ws s:mem ws? ',' ws? d:r16 { $$ = MEMREG({.w=0}, 0x66, 0x2b, s, d); }
+ | 'l'? ws s:mem ws? ',' ws? d:r32 { $$ = MEMREG({.w=0}, -1, 0x2b, s, d); }
+ | 'q'? ws s:mem ws? ',' ws? d:r64 { $$ = MEMREG({.w=1}, -1, 0x2b, s, d); }
)
xor = "xor" (
@@ -525,20 +525,20 @@ xor = "xor" (
| 'l' ws s:imm32 ws? ',' ws? d:mem { $$ = IMMMEM({.w=0}, -1, 0x81, 0x06, s, d); }
| 'q' ws s:imm32 ws? ',' ws? d:mem { $$ = IMMMEM({.w=1}, -1, 0x81, 0x06, s, d); }
- | 'b'? ws s:r8 ws? ',' ws? d:r8 { $$ = REGREG({.w=0}, -1, 0x30, s, d); }
- | 'w'? ws s:r16 ws? ',' ws? d:r16 { $$ = REGREG({.w=0}, 0x66, 0x31, s, d); }
- | 'l'? ws s:r32 ws? ',' ws? d:r32 { $$ = REGREG({.w=0}, -1, 0x31, s, d); }
- | 'q'? ws s:r64 ws? ',' ws? d:r64 { $$ = REGREG({.w=1}, -1, 0x31, s, d); }
+ | 'b'? ws s:r8 ws? ',' ws? d:r8 { $$ = REGREG({.w=0}, -1, 0x30, s, d); }
+ | 'w'? ws s:r16 ws? ',' ws? d:r16 { $$ = REGREG({.w=0}, 0x66, 0x31, s, d); }
+ | 'l'? ws s:r32 ws? ',' ws? d:r32 { $$ = REGREG({.w=0}, -1, 0x31, s, d); }
+ | 'q'? ws s:r64 ws? ',' ws? d:r64 { $$ = REGREG({.w=1}, -1, 0x31, s, d); }
- | 'b'? ws s:r8 ws? ',' ws? d:mem { $$ = REGMEM({.w=0}, -1, 0x30, s, d); }
- | 'w'? ws s:r16 ws? ',' ws? d:mem { $$ = REGMEM({.w=0}, 0x66, 0x31, s, d); }
- | 'l'? ws s:r32 ws? ',' ws? d:mem { $$ = REGMEM({.w=0}, -1, 0x31, s, d); }
- | 'q'? ws s:r64 ws? ',' ws? d:mem { $$ = REGMEM({.w=1}, -1, 0x31, s, d); }
-
- | 'b'? ws s:mem ws? ',' ws? d:r8 { $$ = MEMREG({.w=0}, -1, 0x32, s, d); }
- | 'w'? ws s:mem ws? ',' ws? d:r16 { $$ = MEMREG({.w=0}, 0x66, 0x33, s, d); }
- | 'l'? ws s:mem ws? ',' ws? d:r32 { $$ = MEMREG({.w=0}, -1, 0x33, s, d); }
- | 'q'? ws s:mem ws? ',' ws? d:r64 { $$ = MEMREG({.w=1}, -1, 0x33, s, d); }
+ | 'b'? ws s:r8 ws? ',' ws? d:mem { $$ = REGMEM({.w=0}, -1, 0x30, s, d); }
+ | 'w'? ws s:r16 ws? ',' ws? d:mem { $$ = REGMEM({.w=0}, 0x66, 0x31, s, d); }
+ | 'l'? ws s:r32 ws? ',' ws? d:mem { $$ = REGMEM({.w=0}, -1, 0x31, s, d); }
+ | 'q'? ws s:r64 ws? ',' ws? d:mem { $$ = REGMEM({.w=1}, -1, 0x31, s, d); }
+
+ | 'b'? ws s:mem ws? ',' ws? d:r8 { $$ = MEMREG({.w=0}, -1, 0x32, s, d); }
+ | 'w'? ws s:mem ws? ',' ws? d:r16 { $$ = MEMREG({.w=0}, 0x66, 0x33, s, d); }
+ | 'l'? ws s:mem ws? ',' ws? d:r32 { $$ = MEMREG({.w=0}, -1, 0x33, s, d); }
+ | 'q'? ws s:mem ws? ',' ws? d:r64 { $$ = MEMREG({.w=1}, -1, 0x33, s, d); }
)
xchg = "xchg" (