summaryrefslogtreecommitdiff
path: root/lib/i386/floatdisf.s
diff options
context:
space:
mode:
Diffstat (limited to 'lib/i386/floatdisf.s')
-rw-r--r--lib/i386/floatdisf.s30
1 files changed, 0 insertions, 30 deletions
diff --git a/lib/i386/floatdisf.s b/lib/i386/floatdisf.s
deleted file mode 100644
index 20b80d1d8..000000000
--- a/lib/i386/floatdisf.s
+++ /dev/null
@@ -1,30 +0,0 @@
-// This file is distributed under the University of Illinois Open Source
-// License. See LICENSE.TXT for details.
-
-// float __floatdisf(di_int a);
-
-// This routine has some extra memory traffic, loading the 64-bit input via two
-// 32-bit loads, then immediately storing it back to the stack via a single 64-bit
-// store. This is to avoid a write-small, read-large stall.
-// However, if callers of this routine can be safely assumed to store the argument
-// via a 64-bt store, this is unnecessary memory traffic, and should be avoided.
-// It can be turned off by defining the TRUST_CALLERS_USE_64_BIT_STORES macro.
-
-#ifdef __i386__
-
-.text
-.align 4
-.globl ___floatdisf
-___floatdisf:
-#ifndef TRUST_CALLERS_USE_64_BIT_STORES
- movd 4(%esp), %xmm0
- movd 8(%esp), %xmm1
- punpckldq %xmm1, %xmm0
- movq %xmm0, 4(%esp)
-#endif
- fildll 4(%esp)
- fstps 4(%esp)
- flds 4(%esp)
- ret
-
-#endif // __i386__