summaryrefslogtreecommitdiffstats
path: root/sys/i386/include/asm.h
diff options
context:
space:
mode:
authorpeter <peter@FreeBSD.org>2003-07-23 04:28:51 +0000
committerpeter <peter@FreeBSD.org>2003-07-23 04:28:51 +0000
commitd0f145218dac9a16b45e76cb6228f2eead2f6b2e (patch)
tree69794902ad62536192cf4ecfc360c039da22f27a /sys/i386/include/asm.h
parent3894161bb0361ebdf5d719ab1d04bf9576c6022e (diff)
downloadFreeBSD-src-d0f145218dac9a16b45e76cb6228f2eead2f6b2e.zip
FreeBSD-src-d0f145218dac9a16b45e76cb6228f2eead2f6b2e.tar.gz
Remove _ARCH_INDIRECT, it was the glue to enable having both hardware
and software versions of the floating point code in libm. The runtime selection was done by reading the hw.floatingpoint sysctl via __get_hw_float().
Diffstat (limited to 'sys/i386/include/asm.h')
-rw-r--r--sys/i386/include/asm.h67
1 files changed, 0 insertions, 67 deletions
diff --git a/sys/i386/include/asm.h b/sys/i386/include/asm.h
index e868aa4..51d11d8 100644
--- a/sys/i386/include/asm.h
+++ b/sys/i386/include/asm.h
@@ -101,71 +101,4 @@
#define __FBSDID(s) /* nothing */
#endif /* not lint and not STRIP_FBSDID */
-#ifdef _ARCH_INDIRECT
-/*
- * Generate code to select between the generic functions and _ARCH_INDIRECT
- * specific ones.
- * XXX nested __CONCATs don't work with non-ANSI cpp's.
- */
-#define ANAME(x) CNAME(__CONCAT(__CONCAT(__,_ARCH_INDIRECT),x))
-#define ASELNAME(x) CNAME(__CONCAT(__arch_select_,x))
-#define AVECNAME(x) CNAME(__CONCAT(__arch_,x))
-#define GNAME(x) CNAME(__CONCAT(__generic_,x))
-
-/* Don't bother profiling this. */
-#ifdef PIC
-#define ARCH_DISPATCH(x) \
- _START_ENTRY; \
- .globl CNAME(x); .type CNAME(x),@function; CNAME(x): ; \
- PIC_PROLOGUE; \
- movl PIC_GOT(AVECNAME(x)),%eax; \
- PIC_EPILOGUE; \
- jmpl *(%eax)
-
-#define ARCH_SELECT(x) _START_ENTRY; \
- .type ASELNAME(x),@function; \
- ASELNAME(x): \
- PIC_PROLOGUE; \
- call PIC_PLT(CNAME(__get_hw_float)); \
- testl %eax,%eax; \
- movl PIC_GOT(ANAME(x)),%eax; \
- jne 8f; \
- movl PIC_GOT(GNAME(x)),%eax; \
- 8: \
- movl PIC_GOT(AVECNAME(x)),%edx; \
- movl %eax,(%edx); \
- PIC_EPILOGUE; \
- jmpl *%eax
-#else /* !PIC */
-#define ARCH_DISPATCH(x) \
- _START_ENTRY; \
- .globl CNAME(x); .type CNAME(x),@function; CNAME(x): ; \
- jmpl *AVECNAME(x)
-
-#define ARCH_SELECT(x) _START_ENTRY; \
- .type ASELNAME(x),@function; \
- ASELNAME(x): \
- call CNAME(__get_hw_float); \
- testl %eax,%eax; \
- movl $ANAME(x),%eax; \
- jne 8f; \
- movl $GNAME(x),%eax; \
- 8: \
- movl %eax,AVECNAME(x); \
- jmpl *%eax
-#endif /* PIC */
-
-#define ARCH_VECTOR(x) .data; .p2align 2; \
- .globl AVECNAME(x); \
- .type AVECNAME(x),@object; \
- .size AVECNAME(x),4; \
- AVECNAME(x): .long ASELNAME(x)
-
-#undef _ENTRY
-#define _ENTRY(x) ARCH_VECTOR(x); ARCH_SELECT(x); ARCH_DISPATCH(x); \
- _START_ENTRY; \
- .globl ANAME(x); .type ANAME(x),@function; ANAME(x):
-
-#endif /* _ARCH_INDIRECT */
-
#endif /* !_MACHINE_ASM_H_ */
OpenPOWER on IntegriCloud