aboutsummaryrefslogtreecommitdiff
path: root/asm.peg
diff options
context:
space:
mode:
authorAndrew Chambers <[email protected]>2021-10-06 15:47:16 +1300
committerAndrew Chambers <[email protected]>2021-10-06 15:47:16 +1300
commit78aa469080b95f41fabc0f428bd4e5b1bbdaa04b (patch)
tree1f3106700fe34d7a37d204de1e0709f96b2e70ce /asm.peg
parent74c62bb66fe28bf5fca78809eaf9d1bf852ad524 (diff)
Work on test cases.
Diffstat (limited to 'asm.peg')
-rw-r--r--asm.peg9
1 files changed, 5 insertions, 4 deletions
diff --git a/asm.peg b/asm.peg
index 03d5ba0..f163271 100644
--- a/asm.peg
+++ b/asm.peg
@@ -50,6 +50,7 @@ lea =
mod-rm-binop =
"add" a:mod-rm-binop-args { $$ = a; $$.kind = ASM_ADD; }
| "and" a:mod-rm-binop-args { $$ = a; $$.kind = ASM_AND;}
+ | "mov" a:mod-rm-binop-args { $$ = a; $$.kind = ASM_MOV;}
| "or" a:mod-rm-binop-args { $$ = a; $$.kind = ASM_OR;}
| "sub" a:mod-rm-binop-args { $$ = a; $$.kind = ASM_SUB;}
| "xor" a:mod-rm-binop-args { $$ = a; $$.kind = ASM_XOR;}
@@ -119,10 +120,10 @@ r32 =
imm =
-'$' i:ident
- { $$.imm = (Imm){.kind = ASM_IMM, .l = i.ident.name, .c = 0 }; }
- | '$' <'-'?[0-9]+>
- { $$.imm = (Imm){.kind = ASM_IMM, .l = NULL, .c = strtoll(yytext, NULL, 10) }; }
+ '$' i:ident
+ { $$.imm = (Imm){.kind = ASM_IMM, .l = i.ident.name, .c = 0 }; }
+ | '$' <'-'?[0-9]+>
+ { $$.imm = (Imm){.kind = ASM_IMM, .l = NULL, .c = strtoll(yytext, NULL, 10) }; }
ident =
<[_a-zA-Z][_a-zA-Z0-9]*>