diff options
| author | Cliff Click <cliffc@acm.org> | 2024-10-20 13:16:14 -0700 |
|---|---|---|
| committer | Cliff Click <cliffc@acm.org> | 2024-10-21 08:52:01 -0700 |
| commit | 5059abc385a3cb5aed1f4838b1d5812fea453eec (patch) | |
| tree | f8d230da627991772dd0d421297bac692e337581 /chapter16/src/main/java/com/seaofnodes | |
| parent | b33a63fed86bae94e137f690f32109bdeaaa4213 (diff) | |
| download | Simple-5059abc385a3cb5aed1f4838b1d5812fea453eec.tar.gz Simple-5059abc385a3cb5aed1f4838b1d5812fea453eec.zip | |
Minor progress fix
Diffstat (limited to 'chapter16/src/main/java/com/seaofnodes')
| -rw-r--r-- | chapter16/src/main/java/com/seaofnodes/simple/node/ShlNode.java | 2 |
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) ); |
