summaryrefslogtreecommitdiff
path: root/chapter21/src/main/java/com
diff options
context:
space:
mode:
authorCliff Click <cliffc@acm.org>2025-03-26 14:42:40 -0700
committerCliff Click <cliffc@acm.org>2025-03-26 14:42:40 -0700
commitc2dbd396024d4ecf21747c16f410fa31a1dfdf91 (patch)
tree6c1c1ae5f1ba926becb9a7eac0f9ffaef549c937 /chapter21/src/main/java/com
parentd90baa2a8c0a8ce9a84befec756b39ec49360b8e (diff)
downloadSimple-c2dbd396024d4ecf21747c16f410fa31a1dfdf91.tar.gz
Simple-c2dbd396024d4ecf21747c16f410fa31a1dfdf91.zip
more portable
Diffstat (limited to 'chapter21/src/main/java/com')
-rw-r--r--chapter21/src/main/java/com/seaofnodes/simple/node/cpus/riscv/BranchRISC.java5
-rw-r--r--chapter21/src/main/java/com/seaofnodes/simple/node/cpus/riscv/IntRISC.java3
2 files changed, 5 insertions, 3 deletions
diff --git a/chapter21/src/main/java/com/seaofnodes/simple/node/cpus/riscv/BranchRISC.java b/chapter21/src/main/java/com/seaofnodes/simple/node/cpus/riscv/BranchRISC.java
index c9e7a5b5..a0a4b6aa 100644
--- a/chapter21/src/main/java/com/seaofnodes/simple/node/cpus/riscv/BranchRISC.java
+++ b/chapter21/src/main/java/com/seaofnodes/simple/node/cpus/riscv/BranchRISC.java
@@ -29,7 +29,10 @@ public class BranchRISC extends IfNode implements MachNode, RIPRelSize {
}
@Override public StringBuilder _print1(StringBuilder sb, BitSet visited) {
- in(1)._print0(sb.append("if( "),visited).append(_bop);
+ sb.append("if( ");
+ if( in(1)==null ) sb.append("0");
+ else in(1)._print0(sb,visited);
+ sb.append(_bop);
if( in(2)==null ) sb.append("0");
else in(2)._print0(sb,visited);
return sb.append(" )");
diff --git a/chapter21/src/main/java/com/seaofnodes/simple/node/cpus/riscv/IntRISC.java b/chapter21/src/main/java/com/seaofnodes/simple/node/cpus/riscv/IntRISC.java
index 1378d0f9..fbe8c984 100644
--- a/chapter21/src/main/java/com/seaofnodes/simple/node/cpus/riscv/IntRISC.java
+++ b/chapter21/src/main/java/com/seaofnodes/simple/node/cpus/riscv/IntRISC.java
@@ -9,8 +9,7 @@ import com.seaofnodes.simple.type.TypeInteger;
// 12-bit integer constant. Larger constants are made up in the instruction
// selection by adding with a LUI.
public class IntRISC extends ConstantNode implements MachNode {
- IntRISC(ConstantNode con) { super(con); }
- public IntRISC(TypeInteger con) { super(con); }
+ public IntRISC(ConstantNode con) { super(con); }
@Override public String op() { return "ldi"; }
@Override public RegMask regmap(int i) { return null; }
@Override public RegMask outregmap() { return riscv.WMASK; }