aboutsummaryrefslogtreecommitdiff
path: root/target-sparc
diff options
context:
space:
mode:
authorblueswir1 <blueswir1@c046a42c-6fe2-441c-8c8c-71466251a162>2007-10-20 07:07:47 +0000
committerblueswir1 <blueswir1@c046a42c-6fe2-441c-8c8c-71466251a162>2007-10-20 07:07:47 +0000
commit1e64e78d0c8861580a70c99f42d92e28b9a87af0 (patch)
tree60a6bd1a99f5208fcd92b426485da08f237feb0b /target-sparc
parentf85e9a6870c7e96c2748ec0c40e04c00600189ae (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.c3
-rw-r--r--target-sparc/op_helper.c15
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)