From 50d9dfe5a55d0a3a2fd21dfb961d347be8a3a854 Mon Sep 17 00:00:00 2001 From: lemon Date: Fri, 30 Jun 2023 18:04:58 +0200 Subject: misc bugfixs --- amd64/isel.c | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) (limited to 'amd64/isel.c') diff --git a/amd64/isel.c b/amd64/isel.c index 911bb2e..da5a128 100644 --- a/amd64/isel.c +++ b/amd64/isel.c @@ -397,10 +397,8 @@ seljmp(struct function *fn, struct block *blk) c = insertinstr(blk, blk->ins.n, mkinstr(Ocopy, cls, c)); sel(fn, &instrtab[c.i], blk, &curi); } - if (iflagsrc == c.i) { - if (!oiscmp(instrtab[c.i].op)) { - blk->jmp.arg[0] = NOREF; /* implicit by zero flag */ - } + if (iflagsrc == c.i /* test cmp */ + && (oiscmp(instrtab[c.i].op) || instrtab[c.i].op == Oand || instrtab[c.i].op == Osub)) { instrtab[c.i].keep = 1; } else { if (!(opflags[instrtab[c.i].op] & ZF) || c.i != blk->ins.p[blk->ins.n - 1]) { -- cgit v1.2.3