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 |