summaryrefslogtreecommitdiff
path: root/rtl/core/uarch.sv
diff options
context:
space:
mode:
authorAlejandro Soto <alejandro@34project.org>2022-10-02 13:23:22 -0600
committerAlejandro Soto <alejandro@34project.org>2022-10-02 13:23:22 -0600
commit63ec42cc245b2da9ab97cc4eef6bbd21e08cde07 (patch)
tree1b9fd482a6e3cee3eb2245a9d331669cf5e44b8c /rtl/core/uarch.sv
parent97bc74277d0e9672a55552ed1cded66ecb7d317e (diff)
Split decoding of flexible second operand out of data instructions
Diffstat (limited to '')
-rw-r--r--rtl/core/uarch.sv18
1 files changed, 11 insertions, 7 deletions
diff --git a/rtl/core/uarch.sv b/rtl/core/uarch.sv
index 0c5bc84..22f0578 100644
--- a/rtl/core/uarch.sv
+++ b/rtl/core/uarch.sv
@@ -58,13 +58,17 @@ typedef logic[4:0] psr_mode;
typedef struct packed
{
- alu_op op;
- reg_num rn,
- rd,
- r_snd,
+ alu_op op;
+ reg_num rn,
+ rd;
+} data_decode;
+
+typedef struct packed
+{
+ reg_num r,
r_shift;
- logic snd_shift_by_reg,
- snd_is_imm,
+ logic shift_by_reg,
+ is_imm,
shl,
shr,
ror,
@@ -72,7 +76,7 @@ typedef struct packed
sign_extend;
logic[7:0] imm;
logic[5:0] shift_imm;
-} data_decode;
+} snd_decode;
typedef struct packed
{