diff options
| author | Alejandro Soto <alejandro@34project.org> | 2022-11-16 16:46:52 -0600 |
|---|---|---|
| committer | Alejandro Soto <alejandro@34project.org> | 2022-11-16 17:55:27 -0600 |
| commit | 683352ce030923bdef3cf4fe90d6cb73f4f74529 (patch) | |
| tree | 09bfdff34626fe90a10d93df2c293f7d87763e44 /rtl/core/decode/mux.sv | |
| parent | 14a3611e492d2f213e81c9053bf613a5d8ad30a6 (diff) | |
Implement psr read/write logic
Diffstat (limited to 'rtl/core/decode/mux.sv')
| -rw-r--r-- | rtl/core/decode/mux.sv | 13 |
1 files changed, 9 insertions, 4 deletions
diff --git a/rtl/core/decode/mux.sv b/rtl/core/decode/mux.sv index e8d930e..51fe14b 100644 --- a/rtl/core/decode/mux.sv +++ b/rtl/core/decode/mux.sv @@ -55,8 +55,9 @@ module core_decode_mux branch, ldst, mul, + psr, coproc, - spsr, + psr_saved, psr_write, psr_wr_flags, psr_wr_control, @@ -78,7 +79,8 @@ module core_decode_mux conditional = 0; restore_spsr = 0; - spsr = 0; + psr = 0; + psr_saved = 0; psr_write = 0; update_flags = 0; psr_wr_flags = 1; @@ -189,7 +191,8 @@ module core_decode_mux dec_data.rd = mrs_rd; dec_data.uses_rn = 0; - spsr = mrs_spsr; + psr = 1; + psr_saved = mrs_spsr; writeback = 1; conditional = 1; end @@ -201,9 +204,10 @@ module core_decode_mux snd_ror_if_imm = 1; snd_shift_by_reg_if_reg = 0; - spsr = msr_spsr; + psr = 1; dec_snd = snd; psr_write = 1; + psr_saved = msr_spsr; conditional = 1; psr_wr_flags = msr_fields.f; psr_wr_control = msr_fields.c; @@ -233,6 +237,7 @@ module core_decode_mux execute = 0; mul = 1'bx; + psr = 1'bx; ldst = 1'bx; branch = 1'bx; coproc = 1'bx; |
