diff options
author | aurel32 <aurel32@c046a42c-6fe2-441c-8c8c-71466251a162> | 2008-11-23 10:54:04 +0000 |
---|---|---|
committer | aurel32 <aurel32@c046a42c-6fe2-441c-8c8c-71466251a162> | 2008-11-23 10:54:04 +0000 |
commit | 1c97856dcc4557f75eb9a86ec5300f9450a1e1a0 (patch) | |
tree | 0875ad311ee098fc2e7845eadbbffa90ba735774 /target-ppc/op.c | |
parent | f48879196272e8e966d4666e05ed4c11422f3baf (diff) |
target-ppc: convert SPE FP ops to TCG
Including a few bug fixes:
- Don't clear high part for instruction with 32-bit destination
- Fix efscmp* and etstcmp* return value
Signed-off-by: Aurelien Jarno <aurelien@aurel32.net>
git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@5783 c046a42c-6fe2-441c-8c8c-71466251a162
Diffstat (limited to 'target-ppc/op.c')
-rw-r--r-- | target-ppc/op.c | 464 |
1 files changed, 0 insertions, 464 deletions
diff --git a/target-ppc/op.c b/target-ppc/op.c index 8b3dbcaa04..ee2f36ece7 100644 --- a/target-ppc/op.c +++ b/target-ppc/op.c @@ -960,468 +960,4 @@ void OPPROTO op_srli32_T1_64 (void) RETURN(); } -void OPPROTO op_evfssub (void) -{ - do_evfssub(); - RETURN(); -} - -void OPPROTO op_evfsadd (void) -{ - do_evfsadd(); - RETURN(); -} - -void OPPROTO op_evfsnabs (void) -{ - do_evfsnabs(); - RETURN(); -} - -void OPPROTO op_evfsabs (void) -{ - do_evfsabs(); - RETURN(); -} - -void OPPROTO op_evfsneg (void) -{ - do_evfsneg(); - RETURN(); -} - -void OPPROTO op_evfsdiv (void) -{ - do_evfsdiv(); - RETURN(); -} - -void OPPROTO op_evfsmul (void) -{ - do_evfsmul(); - RETURN(); -} - -void OPPROTO op_evfscmplt (void) -{ - do_evfscmplt(); - RETURN(); -} - -void OPPROTO op_evfscmpgt (void) -{ - do_evfscmpgt(); - RETURN(); -} - -void OPPROTO op_evfscmpeq (void) -{ - do_evfscmpeq(); - RETURN(); -} - -void OPPROTO op_evfscfsi (void) -{ - do_evfscfsi(); - RETURN(); -} - -void OPPROTO op_evfscfui (void) -{ - do_evfscfui(); - RETURN(); -} - -void OPPROTO op_evfscfsf (void) -{ - do_evfscfsf(); - RETURN(); -} - -void OPPROTO op_evfscfuf (void) -{ - do_evfscfuf(); - RETURN(); -} - -void OPPROTO op_evfsctsi (void) -{ - do_evfsctsi(); - RETURN(); -} - -void OPPROTO op_evfsctui (void) -{ - do_evfsctui(); - RETURN(); -} - -void OPPROTO op_evfsctsf (void) -{ - do_evfsctsf(); - RETURN(); -} - -void OPPROTO op_evfsctuf (void) -{ - do_evfsctuf(); - RETURN(); -} - -void OPPROTO op_evfsctuiz (void) -{ - do_evfsctuiz(); - RETURN(); -} - -void OPPROTO op_evfsctsiz (void) -{ - do_evfsctsiz(); - RETURN(); -} - -void OPPROTO op_evfststlt (void) -{ - do_evfststlt(); - RETURN(); -} - -void OPPROTO op_evfststgt (void) -{ - do_evfststgt(); - RETURN(); -} - -void OPPROTO op_evfststeq (void) -{ - do_evfststeq(); - RETURN(); -} - -void OPPROTO op_efssub (void) -{ - T0_64 = _do_efssub(T0_64, T1_64); - RETURN(); -} - -void OPPROTO op_efsadd (void) -{ - T0_64 = _do_efsadd(T0_64, T1_64); - RETURN(); -} - -void OPPROTO op_efsnabs (void) -{ - T0_64 = _do_efsnabs(T0_64); - RETURN(); -} - -void OPPROTO op_efsabs (void) -{ - T0_64 = _do_efsabs(T0_64); - RETURN(); -} - -void OPPROTO op_efsneg (void) -{ - T0_64 = _do_efsneg(T0_64); - RETURN(); -} - -void OPPROTO op_efsdiv (void) -{ - T0_64 = _do_efsdiv(T0_64, T1_64); - RETURN(); -} - -void OPPROTO op_efsmul (void) -{ - T0_64 = _do_efsmul(T0_64, T1_64); - RETURN(); -} - -void OPPROTO op_efscmplt (void) -{ - do_efscmplt(); - RETURN(); -} - -void OPPROTO op_efscmpgt (void) -{ - do_efscmpgt(); - RETURN(); -} - -void OPPROTO op_efscfd (void) -{ - do_efscfd(); - RETURN(); -} - -void OPPROTO op_efscmpeq (void) -{ - do_efscmpeq(); - RETURN(); -} - -void OPPROTO op_efscfsi (void) -{ - do_efscfsi(); - RETURN(); -} - -void OPPROTO op_efscfui (void) -{ - do_efscfui(); - RETURN(); -} - -void OPPROTO op_efscfsf (void) -{ - do_efscfsf(); - RETURN(); -} - -void OPPROTO op_efscfuf (void) -{ - do_efscfuf(); - RETURN(); -} - -void OPPROTO op_efsctsi (void) -{ - do_efsctsi(); - RETURN(); -} - -void OPPROTO op_efsctui (void) -{ - do_efsctui(); - RETURN(); -} - -void OPPROTO op_efsctsf (void) -{ - do_efsctsf(); - RETURN(); -} - -void OPPROTO op_efsctuf (void) -{ - do_efsctuf(); - RETURN(); -} - -void OPPROTO op_efsctsiz (void) -{ - do_efsctsiz(); - RETURN(); -} - -void OPPROTO op_efsctuiz (void) -{ - do_efsctuiz(); - RETURN(); -} - -void OPPROTO op_efststlt (void) -{ - T0 = _do_efststlt(T0_64, T1_64); - RETURN(); -} - -void OPPROTO op_efststgt (void) -{ - T0 = _do_efststgt(T0_64, T1_64); - RETURN(); -} - -void OPPROTO op_efststeq (void) -{ - T0 = _do_efststeq(T0_64, T1_64); - RETURN(); -} -void OPPROTO op_efdsub (void) -{ - CPU_DoubleU u1, u2; - u1.ll = T0_64; - u2.ll = T1_64; - u1.d = float64_sub(u1.d, u2.d, &env->spe_status); - T0_64 = u1.ll; - RETURN(); -} - -void OPPROTO op_efdadd (void) -{ - CPU_DoubleU u1, u2; - u1.ll = T0_64; - u2.ll = T1_64; - u1.d = float64_add(u1.d, u2.d, &env->spe_status); - T0_64 = u1.ll; - RETURN(); -} - -void OPPROTO op_efdcfsid (void) -{ - do_efdcfsi(); - RETURN(); -} - -void OPPROTO op_efdcfuid (void) -{ - do_efdcfui(); - RETURN(); -} - -void OPPROTO op_efdnabs (void) -{ - T0_64 |= 0x8000000000000000ULL; - RETURN(); -} - -void OPPROTO op_efdabs (void) -{ - T0_64 &= ~0x8000000000000000ULL; - RETURN(); -} - -void OPPROTO op_efdneg (void) -{ - T0_64 ^= 0x8000000000000000ULL; - RETURN(); -} - -void OPPROTO op_efddiv (void) -{ - CPU_DoubleU u1, u2; - u1.ll = T0_64; - u2.ll = T1_64; - u1.d = float64_div(u1.d, u2.d, &env->spe_status); - T0_64 = u1.ll; - RETURN(); -} - -void OPPROTO op_efdmul (void) -{ - CPU_DoubleU u1, u2; - u1.ll = T0_64; - u2.ll = T1_64; - u1.d = float64_mul(u1.d, u2.d, &env->spe_status); - T0_64 = u1.ll; - RETURN(); -} - -void OPPROTO op_efdctsidz (void) -{ - do_efdctsiz(); - RETURN(); -} - -void OPPROTO op_efdctuidz (void) -{ - do_efdctuiz(); - RETURN(); -} - -void OPPROTO op_efdcmplt (void) -{ - do_efdcmplt(); - RETURN(); -} - -void OPPROTO op_efdcmpgt (void) -{ - do_efdcmpgt(); - RETURN(); -} - -void OPPROTO op_efdcfs (void) -{ - do_efdcfs(); - RETURN(); -} - -void OPPROTO op_efdcmpeq (void) -{ - do_efdcmpeq(); - RETURN(); -} - -void OPPROTO op_efdcfsi (void) -{ - do_efdcfsi(); - RETURN(); -} - -void OPPROTO op_efdcfui (void) -{ - do_efdcfui(); - RETURN(); -} - -void OPPROTO op_efdcfsf (void) -{ - do_efdcfsf(); - RETURN(); -} - -void OPPROTO op_efdcfuf (void) -{ - do_efdcfuf(); - RETURN(); -} - -void OPPROTO op_efdctsi (void) -{ - do_efdctsi(); - RETURN(); -} - -void OPPROTO op_efdctui (void) -{ - do_efdctui(); - RETURN(); -} - -void OPPROTO op_efdctsf (void) -{ - do_efdctsf(); - RETURN(); -} - -void OPPROTO op_efdctuf (void) -{ - do_efdctuf(); - RETURN(); -} - -void OPPROTO op_efdctuiz (void) -{ - do_efdctuiz(); - RETURN(); -} - -void OPPROTO op_efdctsiz (void) -{ - do_efdctsiz(); - RETURN(); -} - -void OPPROTO op_efdtstlt (void) -{ - T0 = _do_efdtstlt(T0_64, T1_64); - RETURN(); -} - -void OPPROTO op_efdtstgt (void) -{ - T0 = _do_efdtstgt(T0_64, T1_64); - RETURN(); -} - -void OPPROTO op_efdtsteq (void) -{ - T0 = _do_efdtsteq(T0_64, T1_64); - RETURN(); -} |