From 890dd98ceb61de168b20acfd0aef1ddeb2cc1f39 Mon Sep 17 00:00:00 2001 From: Ian Moffett Date: Sun, 20 Jul 2025 22:01:36 -0400 Subject: oasm: parse: Add tok_is_xreg() helper Signed-off-by: Ian Moffett --- usr.bin/oasm/parse.c | 28 +++++----------------------- 1 file changed, 5 insertions(+), 23 deletions(-) (limited to 'usr.bin/oasm/parse.c') diff --git a/usr.bin/oasm/parse.c b/usr.bin/oasm/parse.c index 6e7d2e6..80d353b 100644 --- a/usr.bin/oasm/parse.c +++ b/usr.bin/oasm/parse.c @@ -113,27 +113,9 @@ parse_reg(struct oasm_state *state, struct oasm_token *tok) return -1; } - switch (tok->type) { - case TT_X0: - case TT_X1: - case TT_X2: - case TT_X3: - case TT_X4: - case TT_X5: - case TT_X6: - case TT_X7: - case TT_X8: - case TT_X9: - case TT_X10: - case TT_X11: - case TT_X12: - case TT_X13: - case TT_X14: - state->last = tok->type; - break; - default: + if (!tok_is_xreg(tok->type)) { p = tokstr[tok->type]; - oasm_err("bad register %s\n", p); + oasm_err("bad register \"%s\"\n", p); return -1; } @@ -154,9 +136,9 @@ parse_tok(struct oasm_state *state, struct oasm_token *tok) state->last = tok->type; break; case TT_IMM: - p = tokstr[TT_MOV]; - if (state->last != TT_MOV) { - oasm_err("previous token must be %s\n", p); + p = tokstr[state->last]; + if (!tok_is_xreg(state->last)) { + printf("expected X but got %s\n", p); return -1; } break; -- cgit v1.2.3