aboutsummaryrefslogtreecommitdiff
path: root/target-ppc/op.c
diff options
context:
space:
mode:
authoraurel32 <aurel32@c046a42c-6fe2-441c-8c8c-71466251a162>2008-11-01 00:54:23 +0000
committeraurel32 <aurel32@c046a42c-6fe2-441c-8c8c-71466251a162>2008-11-01 00:54:23 +0000
commit182608d44cc64bfec3f82e7895b7572db60b7c92 (patch)
treed6eaad5c8457a6a7c2f09ce0ecbe89835a431db7 /target-ppc/op.c
parent74637406444c9276ecc26de970ff9018fbfc8735 (diff)
target-ppc: convert 405 MAC instructions to TCG
Signed-off-by: Aurelien Jarno <aurelien@aurel32.net> git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@5591 c046a42c-6fe2-441c-8c8c-71466251a162
Diffstat (limited to 'target-ppc/op.c')
-rw-r--r--target-ppc/op.c95
1 files changed, 0 insertions, 95 deletions
diff --git a/target-ppc/op.c b/target-ppc/op.c
index 2453300e3a..5a8fe0a600 100644
--- a/target-ppc/op.c
+++ b/target-ppc/op.c
@@ -326,34 +326,6 @@ void OPPROTO op_store_fpscr (void)
RETURN();
}
-/*** Integer arithmetic ***/
-/* add */
-void OPPROTO op_check_addo (void)
-{
- int ov = (((uint32_t)T2 ^ (uint32_t)T1 ^ UINT32_MAX) &
- ((uint32_t)T2 ^ (uint32_t)T0)) >> 31;
- if (ov) {
- env->xer |= (1 << XER_OV) | (1 << XER_SO);
- } else {
- env->xer &= ~(1 << XER_OV);
- }
- RETURN();
-}
-
-#if defined(TARGET_PPC64)
-void OPPROTO op_check_addo_64 (void)
-{
- int ov = (((uint64_t)T2 ^ (uint64_t)T1 ^ UINT64_MAX) &
- ((uint64_t)T2 ^ (uint64_t)T0)) >> 63;
- if (ov) {
- env->xer |= (1 << XER_OV) | (1 << XER_SO);
- } else {
- env->xer &= ~(1 << XER_OV);
- }
- RETURN();
-}
-#endif
-
/*** Integer shift ***/
void OPPROTO op_srli_T1 (void)
{
@@ -1062,73 +1034,6 @@ void OPPROTO op_602_mfrom (void)
#endif
/* PowerPC 4xx specific micro-ops */
-void OPPROTO op_405_add_T0_T2 (void)
-{
- T0 = (int32_t)T0 + (int32_t)T2;
- RETURN();
-}
-
-void OPPROTO op_405_mulchw (void)
-{
- T0 = ((int16_t)T0) * ((int16_t)(T1 >> 16));
- RETURN();
-}
-
-void OPPROTO op_405_mulchwu (void)
-{
- T0 = ((uint16_t)T0) * ((uint16_t)(T1 >> 16));
- RETURN();
-}
-
-void OPPROTO op_405_mulhhw (void)
-{
- T0 = ((int16_t)(T0 >> 16)) * ((int16_t)(T1 >> 16));
- RETURN();
-}
-
-void OPPROTO op_405_mulhhwu (void)
-{
- T0 = ((uint16_t)(T0 >> 16)) * ((uint16_t)(T1 >> 16));
- RETURN();
-}
-
-void OPPROTO op_405_mullhw (void)
-{
- T0 = ((int16_t)T0) * ((int16_t)T1);
- RETURN();
-}
-
-void OPPROTO op_405_mullhwu (void)
-{
- T0 = ((uint16_t)T0) * ((uint16_t)T1);
- RETURN();
-}
-
-void OPPROTO op_405_check_sat (void)
-{
- do_405_check_sat();
- RETURN();
-}
-
-void OPPROTO op_405_check_ovu (void)
-{
- if (likely(T0 >= T2)) {
- env->xer &= ~(1 << XER_OV);
- } else {
- env->xer |= (1 << XER_OV) | (1 << XER_SO);
- }
- RETURN();
-}
-
-void OPPROTO op_405_check_satu (void)
-{
- if (unlikely(T0 < T2)) {
- /* Saturate result */
- T0 = UINT32_MAX;
- }
- RETURN();
-}
-
void OPPROTO op_load_dcr (void)
{
do_load_dcr();