aboutsummaryrefslogtreecommitdiff
path: root/asm.peg
diff options
context:
space:
mode:
authorAndrew Chambers <[email protected]>2021-10-07 18:04:29 +1300
committerAndrew Chambers <[email protected]>2021-10-07 18:04:29 +1300
commit103c8c8ea56e25e9364da594c11c4edbd6455049 (patch)
tree138a731825305b9cb1ead720d486e45b41c21044 /asm.peg
parent2a302793114003a4440f43f4beb9a3d752171408 (diff)
More opcodes and refactor.
Diffstat (limited to 'asm.peg')
-rw-r--r--asm.peg48
1 files changed, 24 insertions, 24 deletions
diff --git a/asm.peg b/asm.peg
index c5abf3a..9190076 100644
--- a/asm.peg
+++ b/asm.peg
@@ -66,30 +66,30 @@ sub = "sub" a:type1-args { a.instr.kind = ASM_SUB; $$ = a; }
xor = "xor" a:type1-args { a.instr.kind = ASM_XOR; $$ = a; }
type1-args =
- 'b'? ws s:imm ws? ',' ws? d:al { $$ = INSTR(0, s, d); }
- 'w'? ws s:imm ws? ',' ws? d:ax { $$ = INSTR(1, s, d); }
- 'l'? ws s:imm ws? ',' ws? d:eax { $$ = INSTR(2, s, d); }
- 'q'? ws s:imm ws? ',' ws? d:rax { $$ = INSTR(3, s, d); }
- 'b' ws s:imm ws? ',' ws? d:m { $$ = INSTR(4, s, d); }
- 'w' ws s:imm ws? ',' ws? d:m { $$ = INSTR(5, s, d); }
- 'l' ws s:imm ws? ',' ws? d:m { $$ = INSTR(6, s, d); }
- 'q' ws s:imm ws? ',' ws? d:m { $$ = INSTR(7, s, d); }
- 'b'? ws s:imm ws? ',' ws? d:r8 { $$ = INSTR(8, s, d); }
- 'w'? ws s:imm ws? ',' ws? d:r16 { $$ = INSTR(9, s, d); }
- 'l'? ws s:imm ws? ',' ws? d:r32 { $$ = INSTR(10, s, d); }
- 'q'? ws s:imm ws? ',' ws? d:r64 { $$ = INSTR(11, s, d); }
- 'b'? ws s:m ws? ',' ws? d:r8 { $$ = INSTR(12, s, d); }
- 'w'? ws s:m ws? ',' ws? d:r16 { $$ = INSTR(13, s, d); }
- 'l'? ws s:m ws? ',' ws? d:r32 { $$ = INSTR(14, s, d); }
- 'q'? ws s:m ws? ',' ws? d:r64 { $$ = INSTR(15, s, d); }
- 'b'? ws s:r8 ws? ',' ws? d:m { $$ = INSTR(16, s, d); }
- 'w'? ws s:r16 ws? ',' ws? d:m { $$ = INSTR(17, s, d); }
- 'l'? ws s:r32 ws? ',' ws? d:m { $$ = INSTR(18, s, d); }
- 'q'? ws s:r64 ws? ',' ws? d:m { $$ = INSTR(19, s, d); }
- 'b'? ws s:r8 ws? ',' ws? d:r8 { $$ = INSTR(20, s, d); }
- 'w'? ws s:r16 ws? ',' ws? d:r16 { $$ = INSTR(21, s, d); }
- 'l'? ws s:r32 ws? ',' ws? d:r32 { $$ = INSTR(22, s, d); }
- 'q'? ws s:r64 ws? ',' ws? d:r64 { $$ = INSTR(23, s, d); }
+ 'b'? ws s:imm ws? ',' ws? d:al { $$ = INSTR(0, s, d); }
+ | 'w'? ws s:imm ws? ',' ws? d:ax { $$ = INSTR(1, s, d); }
+ | 'l'? ws s:imm ws? ',' ws? d:eax { $$ = INSTR(2, s, d); }
+ | 'q'? ws s:imm ws? ',' ws? d:rax { $$ = INSTR(3, s, d); }
+ | 'b' ws s:imm ws? ',' ws? d:m { $$ = INSTR(4, s, d); }
+ | 'w' ws s:imm ws? ',' ws? d:m { $$ = INSTR(5, s, d); }
+ | 'l' ws s:imm ws? ',' ws? d:m { $$ = INSTR(6, s, d); }
+ | 'q' ws s:imm ws? ',' ws? d:m { $$ = INSTR(7, s, d); }
+ | 'b'? ws s:imm ws? ',' ws? d:r8 { $$ = INSTR(8, s, d); }
+ | 'w'? ws s:imm ws? ',' ws? d:r16 { $$ = INSTR(9, s, d); }
+ | 'l'? ws s:imm ws? ',' ws? d:r32 { $$ = INSTR(10, s, d); }
+ | 'q'? ws s:imm ws? ',' ws? d:r64 { $$ = INSTR(11, s, d); }
+ | 'b'? ws s:m ws? ',' ws? d:r8 { $$ = INSTR(12, s, d); }
+ | 'w'? ws s:m ws? ',' ws? d:r16 { $$ = INSTR(13, s, d); }
+ | 'l'? ws s:m ws? ',' ws? d:r32 { $$ = INSTR(14, s, d); }
+ | 'q'? ws s:m ws? ',' ws? d:r64 { $$ = INSTR(15, s, d); }
+ | 'b'? ws s:r8 ws? ',' ws? d:m { $$ = INSTR(16, s, d); }
+ | 'w'? ws s:r16 ws? ',' ws? d:m { $$ = INSTR(17, s, d); }
+ | 'l'? ws s:r32 ws? ',' ws? d:m { $$ = INSTR(18, s, d); }
+ | 'q'? ws s:r64 ws? ',' ws? d:m { $$ = INSTR(19, s, d); }
+ | 'b'? ws s:r8 ws? ',' ws? d:r8 { $$ = INSTR(20, s, d); }
+ | 'w'? ws s:r16 ws? ',' ws? d:r16 { $$ = INSTR(21, s, d); }
+ | 'l'? ws s:r32 ws? ',' ws? d:r32 { $$ = INSTR(22, s, d); }
+ | 'q'? ws s:r64 ws? ',' ws? d:r64 { $$ = INSTR(23, s, d); }
r-m8 =
r:r8 { $$ = r; }