summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorFreya Murphy <freya@freyacat.org>2024-10-01 18:19:08 -0400
committerFreya Murphy <freya@freyacat.org>2024-10-01 18:19:08 -0400
commit853a1ba61235bd760dc3b732e9f899b58c53add8 (patch)
treed14580851edfb189fd6f53990395c4aa0892fc0e
parentmsim done (ish) (diff)
downloadmips-853a1ba61235bd760dc3b732e9f899b58c53add8.tar.gz
mips-853a1ba61235bd760dc3b732e9f899b58c53add8.tar.bz2
mips-853a1ba61235bd760dc3b732e9f899b58c53add8.zip
add nop pseudo code
Diffstat (limited to '')
-rw-r--r--masm/parse.c15
1 files changed, 15 insertions, 0 deletions
diff --git a/masm/parse.c b/masm/parse.c
index dfa9479..dbe6ade 100644
--- a/masm/parse.c
+++ b/masm/parse.c
@@ -889,6 +889,17 @@ static int parse_pseudo_move(struct parser *parser, struct ins_expr *expr)
return M_SUCCESS;
}
+static int parse_pseudo_nop(struct parser *parser, struct ins_expr *expr)
+{
+ (void) parser;
+
+ expr->ins_len = 1;
+ expr->ins[0] = mips_instructions[MIPS_INS_SLL];
+ expr->ref[0].type = R_MIPS_NONE;
+
+ return M_SUCCESS;
+}
+
static int parse_pseudo_instruction(struct parser *parser,
struct ins_expr *expr,
struct token ident)
@@ -911,6 +922,10 @@ static int parse_pseudo_instruction(struct parser *parser,
res = parse_pseudo_la(parser, expr);
else CHK(move)
res = parse_pseudo_move(parser, expr);
+ else CHK(nop)
+ res = parse_pseudo_nop(parser, expr);
+
+ #undef CHK
if (res) {
// reset on fail