From 5059abc385a3cb5aed1f4838b1d5812fea453eec Mon Sep 17 00:00:00 2001 From: Cliff Click Date: Sun, 20 Oct 2024 13:16:14 -0700 Subject: Minor progress fix --- chapter16/src/main/java/com/seaofnodes/simple/node/ShlNode.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'chapter16/src') diff --git a/chapter16/src/main/java/com/seaofnodes/simple/node/ShlNode.java b/chapter16/src/main/java/com/seaofnodes/simple/node/ShlNode.java index 888f02c6..b67d985a 100644 --- a/chapter16/src/main/java/com/seaofnodes/simple/node/ShlNode.java +++ b/chapter16/src/main/java/com/seaofnodes/simple/node/ShlNode.java @@ -44,7 +44,7 @@ public class ShlNode extends Node { if( (shl.value()&63)==0 ) return lhs; // (x + c) << i => (x << i) + (c << i) - if( lhs instanceof AddNode add && add.in(2)._type instanceof TypeInteger c && c.isConstant() ) { + if( lhs instanceof AddNode add && add.in(2)._type instanceof TypeInteger c && c.isConstant() && c!=TypeInteger.ZERO ) { long sum = c.value() << shl.value(); if( Integer.MIN_VALUE <= sum && sum <= Integer.MAX_VALUE ) return new AddNode( new ShlNode(add.in(1),rhs).peephole(), Parser.con(sum) ); -- cgit v1.2.3