diff options
author | j_mayer <j_mayer@c046a42c-6fe2-441c-8c8c-71466251a162> | 2007-10-31 22:02:17 +0000 |
---|---|---|
committer | j_mayer <j_mayer@c046a42c-6fe2-441c-8c8c-71466251a162> | 2007-10-31 22:02:17 +0000 |
commit | fc0d441e14f07a35f9ea67ac8ca032a2ea902b38 (patch) | |
tree | d4a93196453e54252f08e88067000b195d8c10ef /target-ppc/op.c | |
parent | a79ee211ceee191de97d0862a93128e7688a2843 (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.c | 25 |
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; |