summaryrefslogtreecommitdiff
path: root/rtl/core/decode/ldst/multiple.sv
diff options
context:
space:
mode:
authorAlejandro Soto <alejandro@34project.org>2022-10-09 19:25:27 -0600
committerAlejandro Soto <alejandro@34project.org>2022-10-09 19:25:27 -0600
commit7d95ff01bcd8c42efe118fd1bddaabfca0e937eb (patch)
tree1d61430989192de9f34fb327772ceff7cac5c71a /rtl/core/decode/ldst/multiple.sv
parent1f1f61bbab1396278a861e46fd65a50d1914585e (diff)
Implement most memory transactions
Diffstat (limited to 'rtl/core/decode/ldst/multiple.sv')
-rw-r--r--rtl/core/decode/ldst/multiple.sv10
1 files changed, 5 insertions, 5 deletions
diff --git a/rtl/core/decode/ldst/multiple.sv b/rtl/core/decode/ldst/multiple.sv
index 24e8e5b..d286a67 100644
--- a/rtl/core/decode/ldst/multiple.sv
+++ b/rtl/core/decode/ldst/multiple.sv
@@ -10,7 +10,7 @@ module core_decode_ldst_multiple
);
logic s, l;
- logic[15:0] reg_list;
+ reg_list regs;
assign decode.rn = insn `FIELD_LDST_MULT_RN;
assign decode.size = LDST_WORD;
@@ -20,13 +20,13 @@ module core_decode_ldst_multiple
assign decode.sign_extend = 0;
assign decode.pre_indexed = insn `FIELD_LDST_MULT_P;
assign decode.unprivileged = 0;
- assign decode.user_regs = s && (!l || !reg_list[`R15]);
- assign decode.reg_list = reg_list;
+ assign decode.user_regs = s && !(l && regs[`R15]);
+ assign decode.regs = regs;
assign s = insn `FIELD_LDST_MULT_S;
assign l = insn `FIELD_LDST_LD;
- assign reg_list = insn `FIELD_LDST_MULT_LIST;
- assign restore_spsr = s && l && reg_list[`R15];
+ assign regs = insn `FIELD_LDST_MULT_LIST;
+ assign restore_spsr = s && l && regs[`R15];
endmodule