diff options
| author | Alejandro Soto <alejandro@34project.org> | 2022-10-08 15:34:46 -0600 |
|---|---|---|
| committer | Alejandro Soto <alejandro@34project.org> | 2022-10-08 15:34:46 -0600 |
| commit | dab6e68a8396475af5acbf53397f93c6b52e2e71 (patch) | |
| tree | 7ec0ee02735a730f633190acadaca23bbd574234 /rtl/core/isa.sv | |
| parent | a0a12ef0c1bd6882d902a9d5938e7220e543b378 (diff) | |
Implement LDR/STR decode
Diffstat (limited to 'rtl/core/isa.sv')
| -rw-r--r-- | rtl/core/isa.sv | 33 |
1 files changed, 23 insertions, 10 deletions
diff --git a/rtl/core/isa.sv b/rtl/core/isa.sv index 7f32914..7298b9a 100644 --- a/rtl/core/isa.sv +++ b/rtl/core/isa.sv @@ -25,6 +25,7 @@ `define FIELD_SND_ROR8 [11:8] `define FIELD_SND_IMM8 [7:0] +`define FIELD_SND_IMM12 [11:0] `define FIELD_SND_SHIFTIMM [11:7] `define FIELD_SND_RS [11:8] `define FIELD_SND_ZEROIFREG [7] @@ -117,11 +118,21 @@ `define INSN_STM_CUR 28'b100_?_?_0_?_0_????_???????????????? `define INSN_STM_USR 28'b100_?_?_1_0_0_????_???????????????? -`define GROUP_LDST_MISC 28'b000_?_?_?_?_?_????_????_????_1_?_?_1_???? -`define GROUP_LDST_MULT 28'b100_?_?_?_?_?_????_???????????????? +`define GROUP_LDST_SINGLE_IMM 28'b01_0_?_?_?_?_?_????_????_???????????? +`define GROUP_LDST_SINGLE_REG 28'b01_1_?_?_?_?_?_????_????_?????_??_0_???? +`define GROUP_LDST_MISC_IMM 28'b000_?_?_1_?_?_????_????_????_1_?_?_1_???? +`define GROUP_LDST_MISC_REG 28'b000_?_?_0_?_?_????_????_0000_1_?_?_1_???? +`define GROUP_LDST_MULT 28'b100_?_?_?_?_?_????_???????????????? + +`define FIELD_LDST_LD [20] +`define FIELD_LDST_SINGLE_REG [25] +`define FIELD_LDST_SINGLE_P [24] +`define FIELD_LDST_SINGLE_U [23] +`define FIELD_LDST_SINGLE_B [22] +`define FIELD_LDST_SINGLE_W [21] +`define FIELD_LDST_SINGLE_RN [19:16] +`define FIELD_LDST_SINGLE_RD [15:12] -`define FIELD_LDST_LD [20] -`define FIELD_LDST_SINGLE_BYTE [22] `define FIELD_LDST_MISC_P [24] `define FIELD_LDST_MISC_U [23] `define FIELD_LDST_MISC_W [21] @@ -131,12 +142,14 @@ `define FIELD_LDST_MISC_S [6] `define FIELD_LDST_MISC_H [5] `define FIELD_LDST_MISC_IMM_LO [3:0] -`define FIELD_LDST_MULT_P [24] -`define FIELD_LDST_MULT_U [23] -`define FIELD_LDST_MULT_S [22] -`define FIELD_LDST_MULT_W [21] -`define FIELD_LDST_MULT_RN [19:16] -`define FIELD_LDST_MULT_LIST [15:0] +`define FIELD_LDST_MISC_RM [3:0] + +`define FIELD_LDST_MULT_P [24] +`define FIELD_LDST_MULT_U [23] +`define FIELD_LDST_MULT_S [22] +`define FIELD_LDST_MULT_W [21] +`define FIELD_LDST_MULT_RN [19:16] +`define FIELD_LDST_MULT_LIST [15:0] // Instrucciones atómicas de intercambio registro-memoria |
