From 714547bbc7db79a1d7e6544bf90c9ee1073d6881 Mon Sep 17 00:00:00 2001 From: blueswir1 Date: Wed, 10 Sep 2008 19:54:51 +0000 Subject: Convert basic float32 ops to TCG git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@5189 c046a42c-6fe2-441c-8c8c-71466251a162 --- target-sparc/helper.h | 47 +++++++++++++++++++++++++++++------------------ 1 file changed, 29 insertions(+), 18 deletions(-) (limited to 'target-sparc/helper.h') diff --git a/target-sparc/helper.h b/target-sparc/helper.h index 5f329844f..a22c716cb 100644 --- a/target-sparc/helper.h +++ b/target-sparc/helper.h @@ -58,12 +58,12 @@ DEF_HELPER(void, helper_st_asi, (target_ulong addr, uint64_t val, int asi, \ DEF_HELPER(void, helper_ldfsr, (uint32_t new_fsr)) DEF_HELPER(void, helper_check_ieee_exceptions, (void)) DEF_HELPER(void, helper_clear_float_exceptions, (void)) -DEF_HELPER(void, helper_fabss, (void)) -DEF_HELPER(void, helper_fsqrts, (void)) +DEF_HELPER(float32, helper_fabss, (float32 src)) +DEF_HELPER(float32, helper_fsqrts, (float32 src)) DEF_HELPER(void, helper_fsqrtd, (void)) -DEF_HELPER(void, helper_fcmps, (void)) +DEF_HELPER(void, helper_fcmps, (float32 src1, float32 src2)) DEF_HELPER(void, helper_fcmpd, (void)) -DEF_HELPER(void, helper_fcmpes, (void)) +DEF_HELPER(void, helper_fcmpes, (float32 src1, float32 src2)) DEF_HELPER(void, helper_fcmped, (void)) DEF_HELPER(void, helper_fsqrtq, (void)) DEF_HELPER(void, helper_fcmpq, (void)) @@ -71,17 +71,17 @@ DEF_HELPER(void, helper_fcmpeq, (void)) #ifdef TARGET_SPARC64 DEF_HELPER(void, helper_ldxfsr, (uint64_t new_fsr)) DEF_HELPER(void, helper_fabsd, (void)) -DEF_HELPER(void, helper_fcmps_fcc1, (void)) +DEF_HELPER(void, helper_fcmps_fcc1, (float32 src1, float32 src2)) +DEF_HELPER(void, helper_fcmps_fcc2, (float32 src1, float32 src2)) +DEF_HELPER(void, helper_fcmps_fcc3, (float32 src1, float32 src2)) DEF_HELPER(void, helper_fcmpd_fcc1, (void)) -DEF_HELPER(void, helper_fcmps_fcc2, (void)) DEF_HELPER(void, helper_fcmpd_fcc2, (void)) -DEF_HELPER(void, helper_fcmps_fcc3, (void)) DEF_HELPER(void, helper_fcmpd_fcc3, (void)) -DEF_HELPER(void, helper_fcmpes_fcc1, (void)) +DEF_HELPER(void, helper_fcmpes_fcc1, (float32 src1, float32 src2)) +DEF_HELPER(void, helper_fcmpes_fcc2, (float32 src1, float32 src2)) +DEF_HELPER(void, helper_fcmpes_fcc3, (float32 src1, float32 src2)) DEF_HELPER(void, helper_fcmped_fcc1, (void)) -DEF_HELPER(void, helper_fcmpes_fcc2, (void)) DEF_HELPER(void, helper_fcmped_fcc2, (void)) -DEF_HELPER(void, helper_fcmpes_fcc3, (void)) DEF_HELPER(void, helper_fcmped_fcc3, (void)) DEF_HELPER(void, helper_fabsq, (void)) DEF_HELPER(void, helper_fcmpq_fcc1, (void)) @@ -97,17 +97,28 @@ DEF_HELPER(void, raise_exception, (int tt)) F_HELPER_0_0(name ## s); \ F_HELPER_0_0(name ## d); \ F_HELPER_0_0(name ## q) +#define F_HELPER_DQ_0_0(name) \ + F_HELPER_0_0(name ## d); \ + F_HELPER_0_0(name ## q) + +F_HELPER_DQ_0_0(add); +F_HELPER_DQ_0_0(sub); +F_HELPER_DQ_0_0(mul); +F_HELPER_DQ_0_0(div); -F_HELPER_SDQ_0_0(add); -F_HELPER_SDQ_0_0(sub); -F_HELPER_SDQ_0_0(mul); -F_HELPER_SDQ_0_0(div); +DEF_HELPER(float32, helper_fadds, (float32 src1, float32 src2)) +DEF_HELPER(float32, helper_fsubs, (float32 src1, float32 src2)) +DEF_HELPER(float32, helper_fmuls, (float32 src1, float32 src2)) +DEF_HELPER(float32, helper_fdivs, (float32 src1, float32 src2)) F_HELPER_0_0(smuld); F_HELPER_0_0(dmulq); -DEF_HELPER(void, helper_fnegs, (void)) -F_HELPER_SDQ_0_0(ito); +DEF_HELPER(float32, helper_fnegs, (float32 src)) +F_HELPER_DQ_0_0(ito); + +DEF_HELPER(float32, helper_fitos, (int32_t src)) + #ifdef TARGET_SPARC64 DEF_HELPER(void, helper_fnegd, (void)) DEF_HELPER(void, helper_fnegq, (void)) @@ -119,7 +130,7 @@ F_HELPER_0_0(qtos); F_HELPER_0_0(stoq); F_HELPER_0_0(qtod); F_HELPER_0_0(dtoq); -F_HELPER_0_0(stoi); +DEF_HELPER(int32_t, helper_fstoi, (float32 src)) F_HELPER_0_0(dtoi); F_HELPER_0_0(qtoi); #ifdef TARGET_SPARC64 @@ -176,6 +187,6 @@ VIS_CMPHELPER(cmple); VIS_CMPHELPER(cmpne); #endif #undef F_HELPER_0_0 -#undef F_HELPER_SDQ_0_0 +#undef F_HELPER_DQ_0_0 #undef VIS_HELPER #undef VIS_CMPHELPER -- cgit v1.2.3