diff options
Diffstat (limited to 'sys/amd64/include/asm.h')
-rw-r--r-- | sys/amd64/include/asm.h | 63 |
1 files changed, 0 insertions, 63 deletions
diff --git a/sys/amd64/include/asm.h b/sys/amd64/include/asm.h index 8ea4122..d298454 100644 --- a/sys/amd64/include/asm.h +++ b/sys/amd64/include/asm.h @@ -91,67 +91,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): ; \ - movq PIC_GOT(AVECNAME(x)),%rax; \ - jmpq *(%rax) - -#define ARCH_SELECT(x) _START_ENTRY; \ - .type ASELNAME(x),@function; \ - ASELNAME(x): \ - call PIC_PLT(CNAME(__get_hw_float)); \ - testq %rax,%rax; \ - movq PIC_GOT(ANAME(x)),%rax; \ - jne 8f; \ - movq PIC_GOT(GNAME(x)),%rax; \ - 8: \ - movq PIC_GOT(AVECNAME(x)),%rdx; \ - movq %rax,(%rdx); \ - jmpq *%rax -#else /* !PIC */ -#define ARCH_DISPATCH(x) \ - _START_ENTRY; \ - .globl CNAME(x); .type CNAME(x),@function; CNAME(x): ; \ - jmpw *AVECNAME(x) - -#define ARCH_SELECT(x) _START_ENTRY; \ - .type ASELNAME(x),@function; \ - ASELNAME(x): \ - call CNAME(__get_hw_float); \ - testw %rax,%rax; \ - movw $ANAME(x),%rax; \ - jne 8f; \ - movw $GNAME(x),%rax; \ - 8: \ - movw %rax,AVECNAME(x); \ - jmpw *%rax -#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_ */ |