diff options
| author | Cliff Click <cliffc@acm.org> | 2025-03-26 14:42:40 -0700 |
|---|---|---|
| committer | Cliff Click <cliffc@acm.org> | 2025-03-26 14:42:40 -0700 |
| commit | c2dbd396024d4ecf21747c16f410fa31a1dfdf91 (patch) | |
| tree | 6c1c1ae5f1ba926becb9a7eac0f9ffaef549c937 /chapter21/src/main/java/com | |
| parent | d90baa2a8c0a8ce9a84befec756b39ec49360b8e (diff) | |
| download | Simple-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.java | 5 | ||||
| -rw-r--r-- | chapter21/src/main/java/com/seaofnodes/simple/node/cpus/riscv/IntRISC.java | 3 |
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; } |
