diff options
| author | Andrew Chambers <[email protected]> | 2021-10-06 15:47:16 +1300 |
|---|---|---|
| committer | Andrew Chambers <[email protected]> | 2021-10-06 15:47:16 +1300 |
| commit | 78aa469080b95f41fabc0f428bd4e5b1bbdaa04b (patch) | |
| tree | 1f3106700fe34d7a37d204de1e0709f96b2e70ce /asm.peg | |
| parent | 74c62bb66fe28bf5fca78809eaf9d1bf852ad524 (diff) | |
Work on test cases.
Diffstat (limited to 'asm.peg')
| -rw-r--r-- | asm.peg | 9 |
1 files changed, 5 insertions, 4 deletions
@@ -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]*> |
