From 031f539c86f168ee8d0d1b0dd34572863cc17282 Mon Sep 17 00:00:00 2001 From: lemon Date: Wed, 22 Oct 2025 09:56:49 +0200 Subject: always keep volatile loads --- ir/regalloc.c | 4 ++++ 1 file changed, 4 insertions(+) (limited to 'ir/regalloc.c') diff --git a/ir/regalloc.c b/ir/regalloc.c index b9f5517..0dcb11c 100644 --- a/ir/regalloc.c +++ b/ir/regalloc.c @@ -1048,6 +1048,10 @@ devirt(struct rega *ra, struct block *blk) insertinstr(blk, curi++, mkmove(ins->cls, ins->reg-1, ins->l.i)); ins->l.i = ins->reg-1; } + if (!ins->reg && in_range(ins->op, Oloads1, Oloadf8)) { + assert(ins->keep); + ins->reg = kisint(ins->cls) ? mctarg->gprscratch+1 : mctarg->fprscratch+1; + } } return allnops; -- cgit v1.2.3