summaryrefslogtreecommitdiffstats
path: root/sys
diff options
context:
space:
mode:
authormarcel <marcel@FreeBSD.org>2003-10-23 06:19:06 +0000
committermarcel <marcel@FreeBSD.org>2003-10-23 06:19:06 +0000
commit9298bcdbb4b8fbf789d497fa28a822ce94944c15 (patch)
treebbc5aab16c9a37aded51866ffa0cb948a2bc354b /sys
parent9fdc368a9c0e3537711656f9d3eab28cc5a6db9d (diff)
downloadFreeBSD-src-9298bcdbb4b8fbf789d497fa28a822ce94944c15.zip
FreeBSD-src-9298bcdbb4b8fbf789d497fa28a822ce94944c15.tar.gz
Add spillfd(). This function loads a double-precision FP register
at the first address and spills it to the second address. This allows unaligned_fixup() to update the context of the process in a way that assures proper rounding. Similar functions for single-and extended-precision are added when needed.
Diffstat (limited to 'sys')
-rw-r--r--sys/ia64/ia64/support.S10
1 files changed, 10 insertions, 0 deletions
diff --git a/sys/ia64/ia64/support.S b/sys/ia64/ia64/support.S
index edf246b..da70dd4 100644
--- a/sys/ia64/ia64/support.S
+++ b/sys/ia64/ia64/support.S
@@ -890,3 +890,13 @@ ENTRY(copyerr, 0)
mov ret0=EFAULT // return EFAULT
br.ret.sptk.few rp
END(copyerr)
+
+/*
+ * Support functions for handling of unaligned memory accesses.
+ */
+ENTRY(spillfd, 2)
+ ldfd f6 = [r32]
+ ;;
+ stf.spill [r33] = f6
+ br.ret.sptk rp
+END(spillfd)
OpenPOWER on IntegriCloud