summaryrefslogtreecommitdiff
path: root/chapter21/src/main/java/com
diff options
context:
space:
mode:
authorCliff Click <cliffc@acm.org>2025-03-25 12:11:42 -0700
committerCliff Click <cliffc@acm.org>2025-03-25 12:11:42 -0700
commit7225eb931c2cefa105b17f393fe242c00b02a185 (patch)
tree1282a6a51134c9c50175f282aeb4e01692b6b163 /chapter21/src/main/java/com
parent4bbfd2f561f4a28fc749dd36bbb417ce03de5f78 (diff)
downloadSimple-7225eb931c2cefa105b17f393fe242c00b02a185.tar.gz
Simple-7225eb931c2cefa105b17f393fe242c00b02a185.zip
RISC5 branch encoding bug
Diffstat (limited to 'chapter21/src/main/java/com')
-rw-r--r--chapter21/src/main/java/com/seaofnodes/simple/codegen/CodeGen.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/codegen/CodeGen.java b/chapter21/src/main/java/com/seaofnodes/simple/codegen/CodeGen.java
index d1276114..0ca822d0 100644
--- a/chapter21/src/main/java/com/seaofnodes/simple/codegen/CodeGen.java
+++ b/chapter21/src/main/java/com/seaofnodes/simple/codegen/CodeGen.java
@@ -317,7 +317,7 @@ public class CodeGen {
return this;
}
// Encoded binary, no relocation info
- public byte[] binary() { throw Utils.TODO(); }
+ public byte[] binary() { return _encoding.bits(); }
// ---------------------------
// Exporting to external formats
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 2aa39210..03569709 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
@@ -181,7 +181,7 @@ public class riscv extends Machine {
int imm10_5= (delta>> 5) &0x2F;
int imm11 = (delta>>11) & 1;
int imm12 = (delta>>12) & 1;
- int imm5 = imm4_1<<4 | imm11;
+ int imm5 = imm4_1<<1 | imm11;
int imm7 = imm12<<7 | imm10_5;
return (imm7 << 25 ) | (rs2 << 20) | (rs1 << 15) | (func3 << 12) | (imm5 << 7) | opcode;
}