aboutsummaryrefslogtreecommitdiff
path: root/target-ppc/op.c
diff options
context:
space:
mode:
authorj_mayer <j_mayer@c046a42c-6fe2-441c-8c8c-71466251a162>2007-10-31 22:02:17 +0000
committerj_mayer <j_mayer@c046a42c-6fe2-441c-8c8c-71466251a162>2007-10-31 22:02:17 +0000
commitfc0d441e14f07a35f9ea67ac8ca032a2ea902b38 (patch)
treed4a93196453e54252f08e88067000b195d8c10ef /target-ppc/op.c
parenta79ee211ceee191de97d0862a93128e7688a2843 (diff)
Fix CR ops with complement, thanks to Julian Seward for testing
and reporting the bug : * remove bugged CR ops specific micro-ops * use standard and / or / shift operations instead * comment not-used-anymore op_store_T1_crf_crf micro-op template. git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@3501 c046a42c-6fe2-441c-8c8c-71466251a162
Diffstat (limited to 'target-ppc/op.c')
-rw-r--r--target-ppc/op.c25
1 files changed, 6 insertions, 19 deletions
diff --git a/target-ppc/op.c b/target-ppc/op.c
index 4c170d84b6..da08ec5264 100644
--- a/target-ppc/op.c
+++ b/target-ppc/op.c
@@ -651,25 +651,6 @@ void OPPROTO op_store_fpscr (void)
RETURN();
}
-/* crf operations */
-void OPPROTO op_getbit_T0 (void)
-{
- T0 = (T0 >> PARAM1) & 1;
- RETURN();
-}
-
-void OPPROTO op_getbit_T1 (void)
-{
- T1 = (T1 >> PARAM1) & 1;
- RETURN();
-}
-
-void OPPROTO op_setcrfbit (void)
-{
- T1 = (T1 & (uint32_t)PARAM1) | (T0 << PARAM2);
- RETURN();
-}
-
/* Branch */
#define EIP env->nip
@@ -1737,6 +1718,12 @@ void OPPROTO op_sli_T0 (void)
RETURN();
}
+void OPPROTO op_sli_T1 (void)
+{
+ T1 = T1 << PARAM1;
+ RETURN();
+}
+
void OPPROTO op_srl_T0_T1 (void)
{
T0 = (uint32_t)T0 >> T1;