summaryrefslogtreecommitdiff
path: root/chapter16/src/main/java
diff options
context:
space:
mode:
authorCliff Click <cliffc@acm.org>2024-10-20 13:16:14 -0700
committerCliff Click <cliffc@acm.org>2024-10-21 08:52:01 -0700
commit5059abc385a3cb5aed1f4838b1d5812fea453eec (patch)
treef8d230da627991772dd0d421297bac692e337581 /chapter16/src/main/java
parentb33a63fed86bae94e137f690f32109bdeaaa4213 (diff)
downloadSimple-5059abc385a3cb5aed1f4838b1d5812fea453eec.tar.gz
Simple-5059abc385a3cb5aed1f4838b1d5812fea453eec.zip
Minor progress fix
Diffstat (limited to 'chapter16/src/main/java')
-rw-r--r--chapter16/src/main/java/com/seaofnodes/simple/node/ShlNode.java2
1 files changed, 1 insertions, 1 deletions
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) );