- insn_len = dec_prep_move_m(dc, 0, memsize);
- cris_cc_mask(dc, CC_MASK_NZ);
- crisv32_alu_op(dc, CC_OP_MOVE, dc->op2, memsize);
+ if (memsize == 4) {
+ insn_len = dec_prep_move_m(dc, 0, 4, cpu_R[dc->op2]);
+ cris_cc_mask(dc, CC_MASK_NZ);
+ cris_update_cc_op(dc, CC_OP_MOVE, 4);
+ cris_update_cc_x(dc);
+ cris_update_result(dc, cpu_R[dc->op2]);
+ }
+ else {
+ insn_len = dec_prep_move_m(dc, 0, memsize, cpu_T[1]);
+ cris_cc_mask(dc, CC_MASK_NZ);
+ cris_alu(dc, CC_OP_MOVE,
+ cpu_R[dc->op2], cpu_R[dc->op2], cpu_T[1], memsize);
+ }