mirror of
https://github.com/izzy2lost/xemu.git
synced 2026-07-06 00:20:22 -07:00
SH4: convert logic and arithmetic ops to TCG
Signed-off-by: Aurelien Jarno <aurelien@aurel32.net> git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@5103 c046a42c-6fe2-441c-8c8c-71466251a162
This commit is contained in:
-216
@@ -43,12 +43,6 @@ void OPPROTO op_cmp_eq_imm_T0(void)
|
||||
RETURN();
|
||||
}
|
||||
|
||||
void OPPROTO op_not_T0(void)
|
||||
{
|
||||
T0 = ~T0;
|
||||
RETURN();
|
||||
}
|
||||
|
||||
void OPPROTO op_bf_s(void)
|
||||
{
|
||||
env->delayed_pc = PARAM1;
|
||||
@@ -113,18 +107,6 @@ void OPPROTO op_rts(void)
|
||||
RETURN();
|
||||
}
|
||||
|
||||
void OPPROTO op_addl_imm_T0(void)
|
||||
{
|
||||
T0 += PARAM1;
|
||||
RETURN();
|
||||
}
|
||||
|
||||
void OPPROTO op_addl_imm_T1(void)
|
||||
{
|
||||
T1 += PARAM1;
|
||||
RETURN();
|
||||
}
|
||||
|
||||
void OPPROTO op_clrmac(void)
|
||||
{
|
||||
env->mach = env->macl = 0;
|
||||
@@ -180,30 +162,6 @@ void OPPROTO op_rte(void)
|
||||
RETURN();
|
||||
}
|
||||
|
||||
void OPPROTO op_swapb_T0(void)
|
||||
{
|
||||
T0 = (T0 & 0xffff0000) | ((T0 & 0xff) << 8) | ((T0 >> 8) & 0xff);
|
||||
RETURN();
|
||||
}
|
||||
|
||||
void OPPROTO op_swapw_T0(void)
|
||||
{
|
||||
T0 = ((T0 & 0xffff) << 16) | ((T0 >> 16) & 0xffff);
|
||||
RETURN();
|
||||
}
|
||||
|
||||
void OPPROTO op_xtrct_T0_T1(void)
|
||||
{
|
||||
T1 = ((T0 & 0xffff) << 16) | ((T1 >> 16) & 0xffff);
|
||||
RETURN();
|
||||
}
|
||||
|
||||
void OPPROTO op_add_T0_T1(void)
|
||||
{
|
||||
T1 += T0;
|
||||
RETURN();
|
||||
}
|
||||
|
||||
void OPPROTO op_addc_T0_T1(void)
|
||||
{
|
||||
helper_addc_T0_T1();
|
||||
@@ -329,12 +287,6 @@ void OPPROTO op_muluw_T0_T1(void)
|
||||
RETURN();
|
||||
}
|
||||
|
||||
void OPPROTO op_neg_T0(void)
|
||||
{
|
||||
T0 = -T0;
|
||||
RETURN();
|
||||
}
|
||||
|
||||
void OPPROTO op_negc_T0(void)
|
||||
{
|
||||
helper_negc_T0();
|
||||
@@ -508,42 +460,6 @@ void OPPROTO op_shlr_Rn(void)
|
||||
RETURN();
|
||||
}
|
||||
|
||||
void OPPROTO op_shll2_Rn(void)
|
||||
{
|
||||
env->gregs[PARAM1] <<= 2;
|
||||
RETURN();
|
||||
}
|
||||
|
||||
void OPPROTO op_shll8_Rn(void)
|
||||
{
|
||||
env->gregs[PARAM1] <<= 8;
|
||||
RETURN();
|
||||
}
|
||||
|
||||
void OPPROTO op_shll16_Rn(void)
|
||||
{
|
||||
env->gregs[PARAM1] <<= 16;
|
||||
RETURN();
|
||||
}
|
||||
|
||||
void OPPROTO op_shlr2_Rn(void)
|
||||
{
|
||||
env->gregs[PARAM1] >>= 2;
|
||||
RETURN();
|
||||
}
|
||||
|
||||
void OPPROTO op_shlr8_Rn(void)
|
||||
{
|
||||
env->gregs[PARAM1] >>= 8;
|
||||
RETURN();
|
||||
}
|
||||
|
||||
void OPPROTO op_shlr16_Rn(void)
|
||||
{
|
||||
env->gregs[PARAM1] >>= 16;
|
||||
RETURN();
|
||||
}
|
||||
|
||||
void OPPROTO op_fmov_frN_FT0(void)
|
||||
{
|
||||
FT0 = env->fregs[PARAM1];
|
||||
@@ -736,120 +652,6 @@ void OPPROTO op_fmov_T0_frN(void)
|
||||
RETURN();
|
||||
}
|
||||
|
||||
void OPPROTO op_dec1_rN(void)
|
||||
{
|
||||
env->gregs[PARAM1] -= 1;
|
||||
RETURN();
|
||||
}
|
||||
|
||||
void OPPROTO op_dec2_rN(void)
|
||||
{
|
||||
env->gregs[PARAM1] -= 2;
|
||||
RETURN();
|
||||
}
|
||||
|
||||
void OPPROTO op_dec4_rN(void)
|
||||
{
|
||||
env->gregs[PARAM1] -= 4;
|
||||
RETURN();
|
||||
}
|
||||
|
||||
void OPPROTO op_dec8_rN(void)
|
||||
{
|
||||
env->gregs[PARAM1] -= 8;
|
||||
RETURN();
|
||||
}
|
||||
|
||||
void OPPROTO op_inc1_rN(void)
|
||||
{
|
||||
env->gregs[PARAM1] += 1;
|
||||
RETURN();
|
||||
}
|
||||
|
||||
void OPPROTO op_inc2_rN(void)
|
||||
{
|
||||
env->gregs[PARAM1] += 2;
|
||||
RETURN();
|
||||
}
|
||||
|
||||
void OPPROTO op_inc4_rN(void)
|
||||
{
|
||||
env->gregs[PARAM1] += 4;
|
||||
RETURN();
|
||||
}
|
||||
|
||||
void OPPROTO op_inc8_rN(void)
|
||||
{
|
||||
env->gregs[PARAM1] += 8;
|
||||
RETURN();
|
||||
}
|
||||
|
||||
void OPPROTO op_add_T0_rN(void)
|
||||
{
|
||||
env->gregs[PARAM1] += T0;
|
||||
RETURN();
|
||||
}
|
||||
|
||||
void OPPROTO op_sub_T0_rN(void)
|
||||
{
|
||||
env->gregs[PARAM1] -= T0;
|
||||
RETURN();
|
||||
}
|
||||
|
||||
void OPPROTO op_and_T0_rN(void)
|
||||
{
|
||||
env->gregs[PARAM1] &= T0;
|
||||
RETURN();
|
||||
}
|
||||
|
||||
void OPPROTO op_or_T0_rN(void)
|
||||
{
|
||||
env->gregs[PARAM1] |= T0;
|
||||
RETURN();
|
||||
}
|
||||
|
||||
void OPPROTO op_xor_T0_rN(void)
|
||||
{
|
||||
env->gregs[PARAM1] ^= T0;
|
||||
RETURN();
|
||||
}
|
||||
|
||||
void OPPROTO op_add_rN_T0(void)
|
||||
{
|
||||
T0 += env->gregs[PARAM1];
|
||||
RETURN();
|
||||
}
|
||||
|
||||
void OPPROTO op_add_rN_T1(void)
|
||||
{
|
||||
T1 += env->gregs[PARAM1];
|
||||
RETURN();
|
||||
}
|
||||
|
||||
void OPPROTO op_add_imm_rN(void)
|
||||
{
|
||||
env->gregs[PARAM2] += PARAM1;
|
||||
RETURN();
|
||||
}
|
||||
|
||||
void OPPROTO op_and_imm_rN(void)
|
||||
{
|
||||
env->gregs[PARAM2] &= PARAM1;
|
||||
RETURN();
|
||||
}
|
||||
|
||||
void OPPROTO op_or_imm_rN(void)
|
||||
{
|
||||
env->gregs[PARAM2] |= PARAM1;
|
||||
RETURN();
|
||||
}
|
||||
|
||||
void OPPROTO op_xor_imm_rN(void)
|
||||
{
|
||||
env->gregs[PARAM2] ^= PARAM1;
|
||||
RETURN();
|
||||
}
|
||||
|
||||
void OPPROTO op_dt_rN(void)
|
||||
{
|
||||
cond_t((--env->gregs[PARAM1]) == 0);
|
||||
@@ -908,24 +710,6 @@ void OPPROTO op_addl_GBR_T0(void)
|
||||
RETURN();
|
||||
}
|
||||
|
||||
void OPPROTO op_and_imm_T0(void)
|
||||
{
|
||||
T0 &= PARAM1;
|
||||
RETURN();
|
||||
}
|
||||
|
||||
void OPPROTO op_or_imm_T0(void)
|
||||
{
|
||||
T0 |= PARAM1;
|
||||
RETURN();
|
||||
}
|
||||
|
||||
void OPPROTO op_xor_imm_T0(void)
|
||||
{
|
||||
T0 ^= PARAM1;
|
||||
RETURN();
|
||||
}
|
||||
|
||||
void OPPROTO op_tst_imm_T0(void)
|
||||
{
|
||||
cond_t((T0 & PARAM1) == 0);
|
||||
|
||||
+111
-101
File diff suppressed because it is too large
Load Diff
Reference in New Issue
Block a user