summaryrefslogtreecommitdiff
path: root/rtl/core/control/ldst/sizes.sv
diff options
context:
space:
mode:
Diffstat (limited to 'rtl/core/control/ldst/sizes.sv')
-rw-r--r--rtl/core/control/ldst/sizes.sv46
1 files changed, 0 insertions, 46 deletions
diff --git a/rtl/core/control/ldst/sizes.sv b/rtl/core/control/ldst/sizes.sv
deleted file mode 100644
index dff4662..0000000
--- a/rtl/core/control/ldst/sizes.sv
+++ /dev/null
@@ -1,46 +0,0 @@
-`include "core/uarch.sv"
-
-module core_control_ldst_sizes
-(
- input word base,
- q_shifter,
- input ldst_size size,
- input logic sign_extend,
-
- output ptr addr,
- output word read,
- output logic[1:0] shift,
- output logic[3:0] byteenable,
- output logic fault
-);
-
- assign {addr, shift} = base;
-
- always_comb
- unique case(size)
- LDST_BYTE: begin
- read = {{24{q_shifter[7] && sign_extend}}, q_shifter[7:0]};
- fault = 0;
-
- unique case(shift)
- 2'b00: byteenable = 4'b0001;
- 2'b01: byteenable = 4'b0010;
- 2'b10: byteenable = 4'b0100;
- 2'b11: byteenable = 4'b1000;
- endcase
- end
-
- LDST_HALF: begin
- read = {{16{q_shifter[15] && sign_extend}}, q_shifter[15:0]};
- fault = shift[0];
- byteenable = shift[1] ? 4'b1100 : 4'b0011;
- end
-
- LDST_WORD: begin
- read = q_shifter;
- fault = shift[1] || shift[0];
- byteenable = 4'b1111;
- end
- endcase
-
-endmodule