diff options
author | aurel32 <aurel32@c046a42c-6fe2-441c-8c8c-71466251a162> | 2008-10-21 16:31:31 +0000 |
---|---|---|
committer | aurel32 <aurel32@c046a42c-6fe2-441c-8c8c-71466251a162> | 2008-10-21 16:31:31 +0000 |
commit | a2ffb81204ccfb497908773729f8d2f1048a65c4 (patch) | |
tree | 333645a1c2dabf8ab95d4a99ec619c303bb08448 /target-ppc/op.c | |
parent | 22babebbaa17c0c0c134ea4f5eaf5cbbd68472ab (diff) |
target-ppc: convert branch related instructions to TCG
Signed-off-by: Aurelien Jarno <aurelien@aurel32.net>
git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@5508 c046a42c-6fe2-441c-8c8c-71466251a162
Diffstat (limited to 'target-ppc/op.c')
-rw-r--r-- | target-ppc/op.c | 160 |
1 files changed, 0 insertions, 160 deletions
diff --git a/target-ppc/op.c b/target-ppc/op.c index 9a1ec8209d..2271ed0d9f 100644 --- a/target-ppc/op.c +++ b/target-ppc/op.c @@ -326,166 +326,6 @@ void OPPROTO op_store_fpscr (void) RETURN(); } -/* Branch */ -void OPPROTO op_setlr (void) -{ - env->lr = (uint32_t)PARAM1; - RETURN(); -} - -#if defined (TARGET_PPC64) -void OPPROTO op_setlr_64 (void) -{ - env->lr = ((uint64_t)PARAM1 << 32) | (uint64_t)PARAM2; - RETURN(); -} -#endif - -void OPPROTO op_jz_T0 (void) -{ - if (!T0) - GOTO_LABEL_PARAM(1); - RETURN(); -} - -void OPPROTO op_btest_T1 (void) -{ - if (T0) { - env->nip = (uint32_t)(T1 & ~3); - } else { - env->nip = (uint32_t)PARAM1; - } - RETURN(); -} - -#if defined (TARGET_PPC64) -void OPPROTO op_btest_T1_64 (void) -{ - if (T0) { - env->nip = (uint64_t)(T1 & ~3); - } else { - env->nip = ((uint64_t)PARAM1 << 32) | (uint64_t)PARAM2; - } - RETURN(); -} -#endif - -void OPPROTO op_movl_T1_ctr (void) -{ - T1 = env->ctr; - RETURN(); -} - -void OPPROTO op_movl_T1_lr (void) -{ - T1 = env->lr; - RETURN(); -} - -/* tests with result in T0 */ -void OPPROTO op_test_ctr (void) -{ - T0 = (uint32_t)env->ctr; - RETURN(); -} - -#if defined(TARGET_PPC64) -void OPPROTO op_test_ctr_64 (void) -{ - T0 = (uint64_t)env->ctr; - RETURN(); -} -#endif - -void OPPROTO op_test_ctr_true (void) -{ - T0 = ((uint32_t)env->ctr != 0 && (T0 & PARAM1) != 0); - RETURN(); -} - -#if defined(TARGET_PPC64) -void OPPROTO op_test_ctr_true_64 (void) -{ - T0 = ((uint64_t)env->ctr != 0 && (T0 & PARAM1) != 0); - RETURN(); -} -#endif - -void OPPROTO op_test_ctr_false (void) -{ - T0 = ((uint32_t)env->ctr != 0 && (T0 & PARAM1) == 0); - RETURN(); -} - -#if defined(TARGET_PPC64) -void OPPROTO op_test_ctr_false_64 (void) -{ - T0 = ((uint64_t)env->ctr != 0 && (T0 & PARAM1) == 0); - RETURN(); -} -#endif - -void OPPROTO op_test_ctrz (void) -{ - T0 = ((uint32_t)env->ctr == 0); - RETURN(); -} - -#if defined(TARGET_PPC64) -void OPPROTO op_test_ctrz_64 (void) -{ - T0 = ((uint64_t)env->ctr == 0); - RETURN(); -} -#endif - -void OPPROTO op_test_ctrz_true (void) -{ - T0 = ((uint32_t)env->ctr == 0 && (T0 & PARAM1) != 0); - RETURN(); -} - -#if defined(TARGET_PPC64) -void OPPROTO op_test_ctrz_true_64 (void) -{ - T0 = ((uint64_t)env->ctr == 0 && (T0 & PARAM1) != 0); - RETURN(); -} -#endif - -void OPPROTO op_test_ctrz_false (void) -{ - T0 = ((uint32_t)env->ctr == 0 && (T0 & PARAM1) == 0); - RETURN(); -} - -#if defined(TARGET_PPC64) -void OPPROTO op_test_ctrz_false_64 (void) -{ - T0 = ((uint64_t)env->ctr == 0 && (T0 & PARAM1) == 0); - RETURN(); -} -#endif - -void OPPROTO op_test_true (void) -{ - T0 = (T0 & PARAM1); - RETURN(); -} - -void OPPROTO op_test_false (void) -{ - T0 = ((T0 & PARAM1) == 0); - RETURN(); -} - -/* CTR maintenance */ -void OPPROTO op_dec_ctr (void) -{ - env->ctr--; - RETURN(); -} - /*** Integer arithmetic ***/ /* add */ void OPPROTO op_check_addo (void) |