summaryrefslogtreecommitdiff
path: root/chapter21/src/main/java/com
diff options
context:
space:
mode:
authorCliff Click <cliffc@acm.org>2025-04-08 14:28:51 -0700
committerCliff Click <cliffc@acm.org>2025-04-08 14:28:51 -0700
commit938c09baca29b0647dcd56e9581540d7a8142fb4 (patch)
tree0c213a1ead31de632b88f29308a9a00f8c8f76ee /chapter21/src/main/java/com
parent06872d180720c376d3fdcc0bd0a2a973bf9341c4 (diff)
downloadSimple-938c09baca29b0647dcd56e9581540d7a8142fb4.tar.gz
Simple-938c09baca29b0647dcd56e9581540d7a8142fb4.zip
Fix risc5 bugs from emulator
Diffstat (limited to 'chapter21/src/main/java/com')
-rw-r--r--chapter21/src/main/java/com/seaofnodes/simple/node/cpus/riscv/MemOpRISC.java2
-rw-r--r--chapter21/src/main/java/com/seaofnodes/simple/node/cpus/riscv/riscv.java2
2 files changed, 2 insertions, 2 deletions
diff --git a/chapter21/src/main/java/com/seaofnodes/simple/node/cpus/riscv/MemOpRISC.java b/chapter21/src/main/java/com/seaofnodes/simple/node/cpus/riscv/MemOpRISC.java
index a92b4e21..b8eb7644 100644
--- a/chapter21/src/main/java/com/seaofnodes/simple/node/cpus/riscv/MemOpRISC.java
+++ b/chapter21/src/main/java/com/seaofnodes/simple/node/cpus/riscv/MemOpRISC.java
@@ -52,7 +52,7 @@ public abstract class MemOpRISC extends MemOpNode implements MachNode {
// float
if(_declaredType == TypeFloat.F32) func3 = 2; // fLW fSW
if(_declaredType == TypeFloat.F64) func3 = 3; // fLD fSD
- if( _declaredType instanceof TypeMemPtr ) func3=6; // 4 byte pointers, assumed unsigned?
+ if( _declaredType instanceof TypeMemPtr ) func3=3; // 8 byte pointers
if( func3 == -1 ) throw Utils.TODO();
return func3;
}
diff --git a/chapter21/src/main/java/com/seaofnodes/simple/node/cpus/riscv/riscv.java b/chapter21/src/main/java/com/seaofnodes/simple/node/cpus/riscv/riscv.java
index e82a6f24..fe767a36 100644
--- a/chapter21/src/main/java/com/seaofnodes/simple/node/cpus/riscv/riscv.java
+++ b/chapter21/src/main/java/com/seaofnodes/simple/node/cpus/riscv/riscv.java
@@ -497,7 +497,7 @@ public class riscv extends Machine {
return new BranchRISC(iff, bop, bool.in(1), bool.in(2));
}
// Vs zero
- return new BranchRISC(iff, "==", iff.in(1), null);
+ return new BranchRISC(iff, "!=", iff.in(1), null);
}
private Node or(OrNode or) {