diff options
author | blueswir1 <blueswir1@c046a42c-6fe2-441c-8c8c-71466251a162> | 2007-10-20 07:07:47 +0000 |
---|---|---|
committer | blueswir1 <blueswir1@c046a42c-6fe2-441c-8c8c-71466251a162> | 2007-10-20 07:07:47 +0000 |
commit | 1e64e78d0c8861580a70c99f42d92e28b9a87af0 (patch) | |
tree | 60a6bd1a99f5208fcd92b426485da08f237feb0b /target-sparc | |
parent | f85e9a6870c7e96c2748ec0c40e04c00600189ae (diff) |
Fix compiling Sparc64 on PPC host
git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@3411 c046a42c-6fe2-441c-8c8c-71466251a162
Diffstat (limited to 'target-sparc')
-rw-r--r-- | target-sparc/op.c | 3 | ||||
-rw-r--r-- | target-sparc/op_helper.c | 15 |
2 files changed, 18 insertions, 0 deletions
diff --git a/target-sparc/op.c b/target-sparc/op.c index 80864c3bb8..55ea2b9fe4 100644 --- a/target-sparc/op.c +++ b/target-sparc/op.c @@ -1711,6 +1711,9 @@ void OPPROTO op_fcmped_fcc3(void) /* Integer to float conversion. */ #ifdef USE_INT_TO_FLOAT_HELPERS F_HELPER(ito); +#ifdef TARGET_SPARC64 +F_HELPER(xto); +#endif #else F_OP(ito, s) { diff --git a/target-sparc/op_helper.c b/target-sparc/op_helper.c index ab456e30c3..460ede2498 100644 --- a/target-sparc/op_helper.c +++ b/target-sparc/op_helper.c @@ -69,6 +69,21 @@ void do_fitod(void) { DT0 = int32_to_float64(*((int32_t *)&FT1), &env->fp_status); } +#ifdef TARGET_SPARC64 +void do_fxtos(void) +{ + set_float_exception_flags(0, &env->fp_status); + FT0 = int64_to_float32(*((int64_t *)&DT1), &env->fp_status); + check_ieee_exceptions(); +} + +void do_fxtod(void) +{ + set_float_exception_flags(0, &env->fp_status); + DT0 = int64_to_float64(*((int64_t *)&DT1), &env->fp_status); + check_ieee_exceptions(); +} +#endif #endif void do_fabss(void) |