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/helper.h | |
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/helper.h')
-rw-r--r-- | target-ppc/helper.h | 75 |
1 files changed, 71 insertions, 4 deletions
diff --git a/target-ppc/helper.h b/target-ppc/helper.h index 6178a5620d..3fe568169d 100644 --- a/target-ppc/helper.h +++ b/target-ppc/helper.h @@ -60,10 +60,77 @@ DEF_HELPER_3(fnmsub, i64, i64, i64, i64) DEF_HELPER_1(fabs, i64, i64) DEF_HELPER_1(fnabs, i64, i64) DEF_HELPER_1(fneg, i64, i64) -DEF_HELPER_1(fsqrt, i64, i64); -DEF_HELPER_1(fre, i64, i64); -DEF_HELPER_1(fres, i64, i64); -DEF_HELPER_1(frsqrte, i64, i64); +DEF_HELPER_1(fsqrt, i64, i64) +DEF_HELPER_1(fre, i64, i64) +DEF_HELPER_1(fres, i64, i64) +DEF_HELPER_1(frsqrte, i64, i64) DEF_HELPER_3(fsel, i64, i64, i64, i64) +DEF_HELPER_1(efscfsi, i32, i32) +DEF_HELPER_1(efscfui, i32, i32) +DEF_HELPER_1(efscfuf, i32, i32) +DEF_HELPER_1(efscfsf, i32, i32) +DEF_HELPER_1(efsctsi, i32, i32) +DEF_HELPER_1(efsctui, i32, i32) +DEF_HELPER_1(efsctsiz, i32, i32) +DEF_HELPER_1(efsctuiz, i32, i32) +DEF_HELPER_1(efsctsf, i32, i32) +DEF_HELPER_1(efsctuf, i32, i32) +DEF_HELPER_1(evfscfsi, i64, i64) +DEF_HELPER_1(evfscfui, i64, i64) +DEF_HELPER_1(evfscfuf, i64, i64) +DEF_HELPER_1(evfscfsf, i64, i64) +DEF_HELPER_1(evfsctsi, i64, i64) +DEF_HELPER_1(evfsctui, i64, i64) +DEF_HELPER_1(evfsctsiz, i64, i64) +DEF_HELPER_1(evfsctuiz, i64, i64) +DEF_HELPER_1(evfsctsf, i64, i64) +DEF_HELPER_1(evfsctuf, i64, i64) +DEF_HELPER_2(efsadd, i32, i32, i32) +DEF_HELPER_2(efssub, i32, i32, i32) +DEF_HELPER_2(efsmul, i32, i32, i32) +DEF_HELPER_2(efsdiv, i32, i32, i32) +DEF_HELPER_2(evfsadd, i64, i64, i64) +DEF_HELPER_2(evfssub, i64, i64, i64) +DEF_HELPER_2(evfsmul, i64, i64, i64) +DEF_HELPER_2(evfsdiv, i64, i64, i64) +DEF_HELPER_2(efststlt, i32, i32, i32) +DEF_HELPER_2(efststgt, i32, i32, i32) +DEF_HELPER_2(efststeq, i32, i32, i32) +DEF_HELPER_2(efscmplt, i32, i32, i32) +DEF_HELPER_2(efscmpgt, i32, i32, i32) +DEF_HELPER_2(efscmpeq, i32, i32, i32) +DEF_HELPER_2(evfststlt, i32, i64, i64) +DEF_HELPER_2(evfststgt, i32, i64, i64) +DEF_HELPER_2(evfststeq, i32, i64, i64) +DEF_HELPER_2(evfscmplt, i32, i64, i64) +DEF_HELPER_2(evfscmpgt, i32, i64, i64) +DEF_HELPER_2(evfscmpeq, i32, i64, i64) +DEF_HELPER_1(efdcfsi, i64, i32) +DEF_HELPER_1(efdcfsid, i64, i64) +DEF_HELPER_1(efdcfui, i64, i32) +DEF_HELPER_1(efdcfuid, i64, i64) +DEF_HELPER_1(efdctsi, i32, i64) +DEF_HELPER_1(efdctui, i32, i64) +DEF_HELPER_1(efdctsiz, i32, i64) +DEF_HELPER_1(efdctsidz, i64, i64) +DEF_HELPER_1(efdctuiz, i32, i64) +DEF_HELPER_1(efdctuidz, i64, i64) +DEF_HELPER_1(efdcfsf, i64, i32) +DEF_HELPER_1(efdcfuf, i64, i32) +DEF_HELPER_1(efdctsf, i32, i64) +DEF_HELPER_1(efdctuf, i32, i64) +DEF_HELPER_1(efscfd, i32, i64) +DEF_HELPER_1(efdcfs, i64, i32) +DEF_HELPER_2(efdadd, i64, i64, i64) +DEF_HELPER_2(efdsub, i64, i64, i64) +DEF_HELPER_2(efdmul, i64, i64, i64) +DEF_HELPER_2(efddiv, i64, i64, i64) +DEF_HELPER_2(efdtstlt, i32, i64, i64) +DEF_HELPER_2(efdtstgt, i32, i64, i64) +DEF_HELPER_2(efdtsteq, i32, i64, i64) +DEF_HELPER_2(efdcmplt, i32, i64, i64) +DEF_HELPER_2(efdcmpgt, i32, i64, i64) +DEF_HELPER_2(efdcmpeq, i32, i64, i64) + #include "def-helper.h" |