diff options
| author | 2025-10-23 09:04:17 +0200 | |
|---|---|---|
| committer | 2025-10-23 09:04:17 +0200 | |
| commit | 83cb10fd337546304a07caa275b2db5e93376810 (patch) | |
| tree | ff515f9fe32e9a080dfc28ee22df8f50e7ec2e76 /amd64 | |
| parent | 2cfd137e001758887e4f0a64db6f2f4787ff69a4 (diff) | |
amd64/emit PI8 fix int overflow edgecase
Diffstat (limited to 'amd64')
| -rw-r--r-- | amd64/emit.c | 2 |
1 files changed, 1 insertions, 1 deletions
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; |