From 83cb10fd337546304a07caa275b2db5e93376810 Mon Sep 17 00:00:00 2001 From: lemon Date: Thu, 23 Oct 2025 09:04:17 +0200 Subject: amd64/emit PI8 fix int overflow edgecase --- amd64/emit.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/amd64/emit.c b/amd64/emit.c index 65b67d5..044098d 100644 --- a/amd64/emit.c +++ b/amd64/emit.c @@ -225,7 +225,7 @@ opermatch(enum operpat pat, struct oper oper) case PGPR: return oper.t == OREG && oper.reg <= R15; case PFPR: return oper.t == OREG && oper.reg >= XMM0; case P1: return oper.t == OIMM && oper.imm == 1; - case PI8: return oper.t == OIMM && (uint)(oper.imm+128) < 256; + case PI8: return oper.t == OIMM && (schar)oper.imm == oper.imm; case PI16: return oper.t == OIMM && (short)oper.imm == oper.imm; case PI32: return oper.t == OIMM; case PU32: return oper.t == OIMM && oper.imm >= 0; -- cgit v1.2.3