Revision 829337a6

b/target-sh4/translate.c
624 624
    case 0x000f:		/* mac.l @Rm+,@Rn+ */
625 625
	tcg_gen_mov_i32(cpu_T[0], cpu_gregs[REG(B11_8)]);
626 626
	gen_op_ldl_T0_T0(ctx);
627
	tcg_gen_mov_i32(cpu_T[0], cpu_T[1]);
627
	tcg_gen_mov_i32(cpu_T[1], cpu_T[0]);
628 628
	tcg_gen_mov_i32(cpu_T[0], cpu_gregs[REG(B7_4)]);
629 629
	gen_op_ldl_T0_T0(ctx);
630 630
	gen_op_macl_T0_T1();
......
634 634
    case 0x400f:		/* mac.w @Rm+,@Rn+ */
635 635
	tcg_gen_mov_i32(cpu_T[0], cpu_gregs[REG(B11_8)]);
636 636
	gen_op_ldl_T0_T0(ctx);
637
	tcg_gen_mov_i32(cpu_T[0], cpu_T[1]);
637
	tcg_gen_mov_i32(cpu_T[1], cpu_T[0]);
638 638
	tcg_gen_mov_i32(cpu_T[0], cpu_gregs[REG(B7_4)]);
639 639
	gen_op_ldl_T0_T0(ctx);
640 640
	gen_op_macw_T0_T1();
......
851 851
    case 0xcd00:		/* and.b #imm,@(R0,GBR) */
852 852
	tcg_gen_mov_i32(cpu_T[0], cpu_gregs[REG(0)]);
853 853
	gen_op_addl_GBR_T0();
854
	tcg_gen_mov_i32(cpu_T[0], cpu_T[1]);
854
	tcg_gen_mov_i32(cpu_T[1], cpu_T[0]);
855 855
	gen_op_ldub_T0_T0(ctx);
856 856
	tcg_gen_andi_i32(cpu_T[0], cpu_T[0], B7_0);
857 857
	gen_op_stb_T0_T1(ctx);
......
903 903
    case 0xc000:		/* mov.b R0,@(disp,GBR) */
904 904
	gen_op_stc_gbr_T0();
905 905
	tcg_gen_addi_i32(cpu_T[0], cpu_T[0], B7_0);
906
	tcg_gen_mov_i32(cpu_T[0], cpu_T[1]);
906
	tcg_gen_mov_i32(cpu_T[1], cpu_T[0]);
907 907
	tcg_gen_mov_i32(cpu_T[0], cpu_gregs[REG(0)]);
908 908
	gen_op_stb_T0_T1(ctx);
909 909
	return;
910 910
    case 0xc100:		/* mov.w R0,@(disp,GBR) */
911 911
	gen_op_stc_gbr_T0();
912 912
	tcg_gen_addi_i32(cpu_T[0], cpu_T[0], B7_0 * 2);
913
	tcg_gen_mov_i32(cpu_T[0], cpu_T[1]);
913
	tcg_gen_mov_i32(cpu_T[1], cpu_T[0]);
914 914
	tcg_gen_mov_i32(cpu_T[0], cpu_gregs[REG(0)]);
915 915
	gen_op_stw_T0_T1(ctx);
916 916
	return;
917 917
    case 0xc200:		/* mov.l R0,@(disp,GBR) */
918 918
	gen_op_stc_gbr_T0();
919 919
	tcg_gen_addi_i32(cpu_T[0], cpu_T[0], B7_0 * 4);
920
	tcg_gen_mov_i32(cpu_T[0], cpu_T[1]);
920
	tcg_gen_mov_i32(cpu_T[1], cpu_T[0]);
921 921
	tcg_gen_mov_i32(cpu_T[0], cpu_gregs[REG(0)]);
922 922
	gen_op_stl_T0_T1(ctx);
923 923
	return;
......
980 980
    case 0xce00:		/* xor.b #imm,@(R0,GBR) */
981 981
	tcg_gen_mov_i32(cpu_T[0], cpu_gregs[REG(0)]);
982 982
	gen_op_addl_GBR_T0();
983
	tcg_gen_mov_i32(cpu_T[0], cpu_T[1]);
983
	tcg_gen_mov_i32(cpu_T[1], cpu_T[0]);
984 984
	gen_op_ldub_T0_T0(ctx);
985 985
	tcg_gen_xori_i32(cpu_T[0], cpu_T[0], B7_0);
986 986
	gen_op_stb_T0_T1(ctx);
......
1154 1154
	return;
1155 1155
    case 0x401b:		/* tas.b @Rn */
1156 1156
	tcg_gen_mov_i32(cpu_T[0], cpu_gregs[REG(B11_8)]);
1157
	tcg_gen_mov_i32(cpu_T[0], cpu_T[1]);
1157
	tcg_gen_mov_i32(cpu_T[1], cpu_T[0]);
1158 1158
	gen_op_ldub_T0_T0(ctx);
1159 1159
	gen_op_cmp_eq_imm_T0(0);
1160 1160
	tcg_gen_ori_i32(cpu_T[0], cpu_T[0], 0x80);

Also available in: Unified diff