diff options
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]*> |
