aboutsummaryrefslogtreecommitdiff
path: root/target-ppc
diff options
context:
space:
mode:
authoraurel32 <aurel32@c046a42c-6fe2-441c-8c8c-71466251a162>2008-09-02 23:26:40 +0000
committeraurel32 <aurel32@c046a42c-6fe2-441c-8c8c-71466251a162>2008-09-02 23:26:40 +0000
commitf0413473ffc804255bad55e71a03e839161409ce (patch)
treecbf26ba33d3a5838fbdce1f30707102585dbd0c8 /target-ppc
parent86c581dc80d4be2bb513141edc053b6f284e924d (diff)
downloadqemu-f0413473ffc804255bad55e71a03e839161409ce.zip
qemu-f0413473ffc804255bad55e71a03e839161409ce.tar.gz
qemu-f0413473ffc804255bad55e71a03e839161409ce.tar.bz2
[ppc] Convert op_moven_T2_T0 to TCG
Signed-off-by: Andreas Faerber <andreas.faerber@web.de> Signed-off-by: Aurelien Jarno <aurelien@aurel32.net> git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@5143 c046a42c-6fe2-441c-8c8c-71466251a162
Diffstat (limited to 'target-ppc')
-rw-r--r--target-ppc/op.c7
-rw-r--r--target-ppc/translate.c12
2 files changed, 6 insertions, 13 deletions
diff --git a/target-ppc/op.c b/target-ppc/op.c
index 3ee326d..e663e60 100644
--- a/target-ppc/op.c
+++ b/target-ppc/op.c
@@ -136,13 +136,6 @@ void OPPROTO op_set_Rc0 (void)
RETURN();
}
-/* Constants load */
-void OPPROTO op_moven_T2_T0 (void)
-{
- T2 = ~T0;
- RETURN();
-}
-
/* Generate exceptions */
void OPPROTO op_raise_exception_err (void)
{
diff --git a/target-ppc/translate.c b/target-ppc/translate.c
index fe1de7e..9068936 100644
--- a/target-ppc/translate.c
+++ b/target-ppc/translate.c
@@ -914,7 +914,7 @@ GEN_INT_ARITH1_64 (neg, 0x1F, 0x08, 0x03, PPC_INTEGER);
/* subf subf. subfo subfo. */
static always_inline void gen_op_subfo (void)
{
- gen_op_moven_T2_T0();
+ tcg_gen_not_tl(cpu_T[2], cpu_T[0]);
gen_op_subf();
gen_op_check_addo();
}
@@ -922,7 +922,7 @@ static always_inline void gen_op_subfo (void)
#define gen_op_subf_64 gen_op_subf
static always_inline void gen_op_subfo_64 (void)
{
- gen_op_moven_T2_T0();
+ tcg_gen_not_i64(cpu_T[2], cpu_T[0]);
gen_op_subf();
gen_op_check_addo_64();
}
@@ -936,7 +936,7 @@ static always_inline void gen_op_subfc (void)
}
static always_inline void gen_op_subfco (void)
{
- gen_op_moven_T2_T0();
+ tcg_gen_not_tl(cpu_T[2], cpu_T[0]);
gen_op_subf();
gen_op_check_subfc();
gen_op_check_addo();
@@ -949,7 +949,7 @@ static always_inline void gen_op_subfc_64 (void)
}
static always_inline void gen_op_subfco_64 (void)
{
- gen_op_moven_T2_T0();
+ tcg_gen_not_i64(cpu_T[2], cpu_T[0]);
gen_op_subf();
gen_op_check_subfc_64();
gen_op_check_addo_64();
@@ -959,7 +959,7 @@ GEN_INT_ARITH2_64 (subfc, 0x1F, 0x08, 0x00, PPC_INTEGER);
/* subfe subfe. subfeo subfeo. */
static always_inline void gen_op_subfeo (void)
{
- gen_op_moven_T2_T0();
+ tcg_gen_not_tl(cpu_T[2], cpu_T[0]);
gen_op_subfe();
gen_op_check_addo();
}
@@ -967,7 +967,7 @@ static always_inline void gen_op_subfeo (void)
#define gen_op_subfe_64 gen_op_subfe
static always_inline void gen_op_subfeo_64 (void)
{
- gen_op_moven_T2_T0();
+ tcg_gen_not_i64(cpu_T[2], cpu_T[0]);
gen_op_subfe_64();
gen_op_check_addo_64();
}