From 78aa469080b95f41fabc0f428bd4e5b1bbdaa04b Mon Sep 17 00:00:00 2001 From: Andrew Chambers Date: Wed, 6 Oct 2021 15:47:16 +1300 Subject: Work on test cases. --- asm.peg | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) (limited to 'asm.peg') 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]*> -- cgit v1.2.3