From 86ce5bc5d5018dcb62054d214b23f7a59b9c0d7d Mon Sep 17 00:00:00 2001 From: Cliff Click Date: Wed, 28 Oct 2026 13:39:05 -0700 Subject: Fix bugs x86 storing only 32bits of a large constant Missed field narrowing in a few cases --- .../main/java/com/seaofnodes/simple/node/cpus/x86_64_v2/x86_64_v2.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'chapter19/src/main/java/com') diff --git a/chapter19/src/main/java/com/seaofnodes/simple/node/cpus/x86_64_v2/x86_64_v2.java b/chapter19/src/main/java/com/seaofnodes/simple/node/cpus/x86_64_v2/x86_64_v2.java index e7e0b874..1b14bcf1 100644 --- a/chapter19/src/main/java/com/seaofnodes/simple/node/cpus/x86_64_v2/x86_64_v2.java +++ b/chapter19/src/main/java/com/seaofnodes/simple/node/cpus/x86_64_v2/x86_64_v2.java @@ -430,7 +430,7 @@ public class x86_64_v2 extends Machine { } private int imm( Node xval ) { assert val==null && imm==0; - if( xval instanceof ConstantNode con && con._con instanceof TypeInteger ti ) { + if( xval instanceof ConstantNode con && con._con instanceof TypeInteger ti && ti.isConstant() && (int)ti.value()==ti.value() ) { val = null; imm = (int)ti.value(); assert imm == ti.value(); // In 32-bit range -- cgit v1.2.3