Stefan Schuermans commited on 2012-02-05 16:25:41
Showing 2 changed files, with 7 additions and 2 deletions.
... | ... |
@@ -149,15 +149,18 @@ BEGIN |
149 | 149 |
WHEN "001101" => o_op <= op_alu; o_alu <= alu_or; o_imm <= imm_16ze; |
150 | 150 |
WHEN "001110" => o_op <= op_alu; o_alu <= alu_xor; o_imm <= imm_16ze; |
151 | 151 |
WHEN "001111" => o_op <= op_alu; o_alu <= alu_up; o_imm <= imm_16ze; |
152 |
- -- TODO: 011xxx missing |
|
153 | 152 |
WHEN "100000" => o_op <= op_l; o_imm <= imm_16se; o_ldst <= ldst_b; |
154 | 153 |
WHEN "100001" => o_op <= op_l; o_imm <= imm_16se; o_ldst <= ldst_h; |
154 |
+ WHEN "100010" => o_op <= op_l; o_imm <= imm_16se; o_ldst <= ldst_wl; |
|
155 | 155 |
WHEN "100011" => o_op <= op_l; o_imm <= imm_16se; o_ldst <= ldst_w; |
156 | 156 |
WHEN "100100" => o_op <= op_l; o_imm <= imm_16se; o_ldst <= ldst_bu; |
157 | 157 |
WHEN "100101" => o_op <= op_l; o_imm <= imm_16se; o_ldst <= ldst_hu; |
158 |
+ WHEN "100110" => o_op <= op_l; o_imm <= imm_16se; o_ldst <= ldst_wr; |
|
158 | 159 |
WHEN "101000" => o_op <= op_s; o_imm <= imm_16se; o_ldst <= ldst_b; |
159 | 160 |
WHEN "101001" => o_op <= op_s; o_imm <= imm_16se; o_ldst <= ldst_h; |
161 |
+ WHEN "101010" => o_op <= op_s; o_imm <= imm_16se; o_ldst <= ldst_wl; |
|
160 | 162 |
WHEN "101011" => o_op <= op_s; o_imm <= imm_16se; o_ldst <= ldst_w; |
163 |
+ WHEN "101110" => o_op <= op_s; o_imm <= imm_16se; o_ldst <= ldst_wr; |
|
161 | 164 |
WHEN OTHERS => NULL; |
162 | 165 |
END CASE; |
163 | 166 |
END PROCESS p_op; |
... | ... |
@@ -63,7 +63,9 @@ PACKAGE mips_types IS |
63 | 63 |
ldst_bu, -- byte unsigned (zero-extension) |
64 | 64 |
ldst_h, -- half word (16 bit) (sign-extension) |
65 | 65 |
ldst_hu, -- half word unsigned (16 bit) (zero-extension) |
66 |
- ldst_w -- word (32 bit) |
|
66 |
+ ldst_w, -- word (32 bit) |
|
67 |
+ ldst_wl, -- word left (8 to 32 bits) |
|
68 |
+ ldst_wr -- word right (8 to 32 bits) |
|
67 | 69 |
); |
68 | 70 |
|
69 | 71 |
END PACKAGE; |
70 | 72 |