aboutsummaryrefslogtreecommitdiff
path: root/target-ppc/op.c
diff options
context:
space:
mode:
authoraurel32 <aurel32@c046a42c-6fe2-441c-8c8c-71466251a162>2008-12-05 07:21:44 +0000
committeraurel32 <aurel32@c046a42c-6fe2-441c-8c8c-71466251a162>2008-12-05 07:21:44 +0000
commit7487953d704369c7acc7486f09eaf87faa5d3693 (patch)
tree87abd4ffd1a6bd46adc29139ca4381ea35c66b8e /target-ppc/op.c
parent54cdcae646bdc4b87b2355ba7d9aab85c39b2c31 (diff)
target-ppc: convert POWER shift instructions to TCG
Signed-off-by: Aurelien Jarno <aurelien@aurel32.net> git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@5882 c046a42c-6fe2-441c-8c8c-71466251a162
Diffstat (limited to 'target-ppc/op.c')
-rw-r--r--target-ppc/op.c127
1 files changed, 0 insertions, 127 deletions
diff --git a/target-ppc/op.c b/target-ppc/op.c
index 82750c6ef3..9d9661a8ec 100644
--- a/target-ppc/op.c
+++ b/target-ppc/op.c
@@ -476,133 +476,6 @@ void OPPROTO op_POWER_nabso (void)
RETURN();
}
-/* XXX: factorise POWER rotates... */
-void OPPROTO op_POWER_rlmi (void)
-{
- T0 = rotl32(T0, T2) & PARAM1;
- T0 |= T1 & (uint32_t)PARAM2;
- RETURN();
-}
-
-void OPPROTO op_POWER_rrib (void)
-{
- T2 &= 0x1FUL;
- T0 = rotl32(T0 & INT32_MIN, T2);
- T0 |= T1 & ~rotl32(INT32_MIN, T2);
- RETURN();
-}
-
-void OPPROTO op_POWER_sle (void)
-{
- T1 &= 0x1FUL;
- env->spr[SPR_MQ] = rotl32(T0, T1);
- T0 = T0 << T1;
- RETURN();
-}
-
-void OPPROTO op_POWER_sleq (void)
-{
- uint32_t tmp = env->spr[SPR_MQ];
-
- T1 &= 0x1FUL;
- env->spr[SPR_MQ] = rotl32(T0, T1);
- T0 = T0 << T1;
- T0 |= tmp >> (32 - T1);
- RETURN();
-}
-
-void OPPROTO op_POWER_sllq (void)
-{
- uint32_t msk = UINT32_MAX;
-
- msk = msk << (T1 & 0x1FUL);
- if (T1 & 0x20UL)
- msk = ~msk;
- T1 &= 0x1FUL;
- T0 = (T0 << T1) & msk;
- T0 |= env->spr[SPR_MQ] & ~msk;
- RETURN();
-}
-
-void OPPROTO op_POWER_slq (void)
-{
- uint32_t msk = UINT32_MAX, tmp;
-
- msk = msk << (T1 & 0x1FUL);
- if (T1 & 0x20UL)
- msk = ~msk;
- T1 &= 0x1FUL;
- tmp = rotl32(T0, T1);
- T0 = tmp & msk;
- env->spr[SPR_MQ] = tmp;
- RETURN();
-}
-
-void OPPROTO op_POWER_sraq (void)
-{
- env->spr[SPR_MQ] = rotl32(T0, 32 - (T1 & 0x1FUL));
- if (T1 & 0x20UL)
- T0 = UINT32_MAX;
- else
- T0 = (int32_t)T0 >> T1;
- RETURN();
-}
-
-void OPPROTO op_POWER_sre (void)
-{
- T1 &= 0x1FUL;
- env->spr[SPR_MQ] = rotl32(T0, 32 - T1);
- T0 = (int32_t)T0 >> T1;
- RETURN();
-}
-
-void OPPROTO op_POWER_srea (void)
-{
- T1 &= 0x1FUL;
- env->spr[SPR_MQ] = T0 >> T1;
- T0 = (int32_t)T0 >> T1;
- RETURN();
-}
-
-void OPPROTO op_POWER_sreq (void)
-{
- uint32_t tmp;
- int32_t msk;
-
- T1 &= 0x1FUL;
- msk = INT32_MIN >> T1;
- tmp = env->spr[SPR_MQ];
- env->spr[SPR_MQ] = rotl32(T0, 32 - T1);
- T0 = T0 >> T1;
- T0 |= tmp & msk;
- RETURN();
-}
-
-void OPPROTO op_POWER_srlq (void)
-{
- uint32_t tmp;
- int32_t msk;
-
- msk = INT32_MIN >> (T1 & 0x1FUL);
- if (T1 & 0x20UL)
- msk = ~msk;
- T1 &= 0x1FUL;
- tmp = env->spr[SPR_MQ];
- env->spr[SPR_MQ] = rotl32(T0, 32 - T1);
- T0 = T0 >> T1;
- T0 &= msk;
- T0 |= tmp & ~msk;
- RETURN();
-}
-
-void OPPROTO op_POWER_srq (void)
-{
- T1 &= 0x1FUL;
- env->spr[SPR_MQ] = rotl32(T0, 32 - T1);
- T0 = T0 >> T1;
- RETURN();
-}
-
/* POWER instructions not implemented in PowerPC 601 */
#if !defined(CONFIG_USER_ONLY)
void OPPROTO op_POWER_mfsri (void)