summaryrefslogtreecommitdiff
path: root/rtl/core/decode/data.sv
diff options
context:
space:
mode:
Diffstat (limited to '')
-rw-r--r--rtl/core/decode/data.sv11
1 files changed, 10 insertions, 1 deletions
diff --git a/rtl/core/decode/data.sv b/rtl/core/decode/data.sv
index cb21f5e..103fb14 100644
--- a/rtl/core/decode/data.sv
+++ b/rtl/core/decode/data.sv
@@ -10,7 +10,8 @@ module core_decode_data
snd_shift_by_reg_if_reg,
writeback,
update_flags,
- restore_spsr
+ restore_spsr,
+ uses_rn
);
alu_op op;
@@ -35,6 +36,14 @@ module core_decode_data
writeback = 1;
endcase
+ unique case(op)
+ `ALU_MOV, `ALU_MVN:
+ uses_rn = 0;
+
+ default:
+ uses_rn = 1;
+ endcase
+
update_flags = insn `FIELD_DATA_S;
restore_spsr = (rd == `R15) & update_flags;