wip! maybe??? fix a subtle bug in MOVD imm
This commit is contained in:
parent
75a4c5793e
commit
06f9921116
1 changed files with 2 additions and 1 deletions
|
|
@ -218,7 +218,8 @@ static void gen_compute_rrp_addr(TCGv_i32 dest, uint8_t rrp, uint32_t disp) {
|
|||
/* Moves */
|
||||
|
||||
static bool trans_MOV_imm(DisasContext* ctx, arg_MOV_imm* a) {
|
||||
tcg_gen_deposit_i32(r[a->rd], r[a->rd], tcg_constant_i32(a->imm), 0, a->width * 8);
|
||||
int len = (a->width == 4 ? 2 : a->width) * 8;
|
||||
tcg_gen_deposit_i32(r[a->rd], r[a->rd], tcg_constant_i32(a->imm), 0, len);
|
||||
if (a->width == 4 && a->rd < CR16C_FIRST_32B_REG) {
|
||||
tcg_gen_movi_i32(r[a->rd + 1], a->imm >> 16);
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue