From 112cc1b824bce527f19b9df3505b397fb082e20d Mon Sep 17 00:00:00 2001 From: Quentin Carbonneaux Date: Mon, 5 Jan 2026 14:57:16 +0100 Subject: rv64: handle slots in jnz --- rv64/emit.c | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/rv64/emit.c b/rv64/emit.c index 39b55ea..c1f29ac 100644 --- a/rv64/emit.c +++ b/rv64/emit.c @@ -444,7 +444,7 @@ rv64_emitfn(Fn *fn, FILE *f) static int id0; int lbl, neg, off, frame, *pr, r; Blk *b, *s; - Ins *i; + Ins *i, ii; emitfnlnk(fn->name, &fn->lnk, f); @@ -549,6 +549,11 @@ rv64_emitfn(Fn *fn, FILE *f) b->s2 = s; neg = 1; } + if (rtype(b->jmp.arg) == RSlot) { + ii.arg[0] = b->jmp.arg; + emitf("lw t6, %M0", &ii, fn, f); + b->jmp.arg = TMP(T6); + } assert(isreg(b->jmp.arg)); fprintf(f, "\tb%sz %s, .L%d\n", -- cgit v1.2.3