diff options
author | marcel <marcel@FreeBSD.org> | 2003-10-23 06:19:06 +0000 |
---|---|---|
committer | marcel <marcel@FreeBSD.org> | 2003-10-23 06:19:06 +0000 |
commit | 9298bcdbb4b8fbf789d497fa28a822ce94944c15 (patch) | |
tree | bbc5aab16c9a37aded51866ffa0cb948a2bc354b /sys | |
parent | 9fdc368a9c0e3537711656f9d3eab28cc5a6db9d (diff) | |
download | FreeBSD-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.S | 10 |
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) |