summaryrefslogtreecommitdiff
path: root/chapter20/src/main/java/com/seaofnodes
diff options
context:
space:
mode:
authorCliff Click <cliffc@acm.org>2026-09-20 22:38:58 -0700
committerCliff Click <cliffc@acm.org>2026-09-20 22:38:58 -0700
commit40b33cb6f8b8dc4d8551c3b522e7c5682a44540a (patch)
treee44d0380390109e3597bc5a1b1744e715cc30b62 /chapter20/src/main/java/com/seaofnodes
parent1e527b16b28f31b08cbb36b7b1bf2d689487a989 (diff)
downloadSimple-40b33cb6f8b8dc4d8551c3b522e7c5682a44540a.tar.gz
Simple-40b33cb6f8b8dc4d8551c3b522e7c5682a44540a.zip
Final reg-alloc across chapters cleanup
Diffstat (limited to 'chapter20/src/main/java/com/seaofnodes')
-rw-r--r--chapter20/src/main/java/com/seaofnodes/simple/codegen/IFG.java2
-rw-r--r--chapter20/src/main/java/com/seaofnodes/simple/node/cpus/x86_64_v2/MemOpX86.java2
2 files changed, 2 insertions, 2 deletions
diff --git a/chapter20/src/main/java/com/seaofnodes/simple/codegen/IFG.java b/chapter20/src/main/java/com/seaofnodes/simple/codegen/IFG.java
index acfec53f..71a96d94 100644
--- a/chapter20/src/main/java/com/seaofnodes/simple/codegen/IFG.java
+++ b/chapter20/src/main/java/com/seaofnodes/simple/codegen/IFG.java
@@ -494,7 +494,7 @@ abstract public class IFG {
if( reg == -1 && alrg._mask.size1() )
reg = alrg._mask.firstReg();
if( reg != -1 ) {
- mask.clr(alrg._reg);
+ mask.clr(reg);
if( mask.size1() )
return mask.firstReg();
}
diff --git a/chapter20/src/main/java/com/seaofnodes/simple/node/cpus/x86_64_v2/MemOpX86.java b/chapter20/src/main/java/com/seaofnodes/simple/node/cpus/x86_64_v2/MemOpX86.java
index dee4afd4..f65fe054 100644
--- a/chapter20/src/main/java/com/seaofnodes/simple/node/cpus/x86_64_v2/MemOpX86.java
+++ b/chapter20/src/main/java/com/seaofnodes/simple/node/cpus/x86_64_v2/MemOpX86.java
@@ -66,7 +66,7 @@ public abstract class MemOpX86 extends MemOpNode implements MachNode {
if( i==1 ) return null; // Memory
if( i==2 ) return x86_64_v2.RMASK; // base in GPR
if( i==3 ) return x86_64_v2.RMASK; // index in GPR
- if( i==4 ) return x86_64_v2.MEM_MASK; // value in GPR or XMM
+ if( i==4 ) return _sz >= '4' ? x86_64_v2.MEM_MASK : x86_64_v2.RMASK; // Narrow stores need GPRs
throw Utils.TODO();
}