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)