From fe52d80f4a25b2df1954b42395123de652b953df Mon Sep 17 00:00:00 2001 From: Cliff Click Date: Mon, 28 Apr 2025 09:05:55 -0700 Subject: cherrypick manual cherrypick 07876008acfa142b3ce4416326848b5fbb167144 --- .../src/main/java/com/seaofnodes/simple/codegen/RegAlloc.java | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) (limited to 'chapter21/src/main/java') diff --git a/chapter21/src/main/java/com/seaofnodes/simple/codegen/RegAlloc.java b/chapter21/src/main/java/com/seaofnodes/simple/codegen/RegAlloc.java index e1051fc6..49f057a3 100644 --- a/chapter21/src/main/java/com/seaofnodes/simple/codegen/RegAlloc.java +++ b/chapter21/src/main/java/com/seaofnodes/simple/codegen/RegAlloc.java @@ -295,9 +295,12 @@ public class RegAlloc { // Check all use inputs for n, in case there's several for( int i = 1; i < use.nIns(); i++ ) // Find a def input, and check register class - if( use.in( i ) == def && mach.regmap( i ).overlap( rmask ) ) - // Modify use to use the split version specialized to this rclass - { use.setDef( i, split ); j--; break; } + if( use.in( i ) == def ) { + RegMask m = mach.regmap( i ); + if( m!=null && mach.regmap( i ).overlap( rmask ) ) + // Modify use to use the split version specialized to this rclass + { use.setDefOrdered( i, split ); j--; break; } + } } } } -- cgit v1.2.3