2.9
[glibc/nacl-glibc.git] / sysdeps / ia64 / fpu / libm-symbols.h
blob5b5e4b7d7b73470c5fd241132963b5491c5fea05
1 #include <sysdep.h>
2 #undef ret /* get rid of the stupid "ret" macro; it breaks br.ret */
4 /* Support for compatible assembler handling. */
6 #ifdef __ELF__
7 # define ASM_SIZE_DIRECTIVE(name) .size name,.-name
8 # define ASM_TYPE_DIRECTIVE(name,T) .type name,T
9 #else
10 # define ASM_SIZE_DIRECTIVE(name)
11 # define ASM_TYPE_DIRECTIVE(name,T)
12 #endif
14 #define LOCAL_LIBM_ENTRY(name) \
15 .proc name; \
16 name:
18 #define LOCAL_LIBM_END(name) \
19 .endp name; \
20 ASM_SIZE_DIRECTIVE(name)
23 #define RODATA .rodata
24 #define LOCAL_OBJECT_START(name) \
25 name:; \
26 ASM_TYPE_DIRECTIVE(name, @object)
27 #define LOCAL_OBJECT_END(name) \
28 ASM_SIZE_DIRECTIVE(name)
30 #define GLOBAL_LIBM_ENTRY(name) \
31 LOCAL_LIBM_ENTRY(name); \
32 .global name
33 #define GLOBAL_LIBM_END(name) LOCAL_LIBM_END(name)
35 #define INTERNAL_LIBM_ENTRY(name) \
36 GLOBAL_LIBM_ENTRY(__libm_##name); \
37 .global __libm_##name
38 #define INTERNAL_LIBM_END(name) GLOBAL_LIBM_END(__libm_##name)
40 #define WEAK_LIBM_ENTRY(name) \
41 .align 32; \
42 LOCAL_LIBM_ENTRY(__##name); \
43 .global __##name; \
44 __##name:
45 #define WEAK_LIBM_END(name) \
46 weak_alias (__##name, name); \
47 .hidden __##name; \
48 LOCAL_LIBM_END(__##name); \
49 ASM_SIZE_DIRECTIVE(__##name); \
50 ASM_TYPE_DIRECTIVE(__##name, @function)
52 #define GLOBAL_IEEE754_ENTRY(name) \
53 WEAK_LIBM_ENTRY(name); \
54 .global __ieee754_##name; \
55 .hidden __ieee754_##name; \
56 __ieee754_##name:
57 #define GLOBAL_IEEE754_END(name) \
58 WEAK_LIBM_END(name); \
59 ASM_SIZE_DIRECTIVE(__ieee754_##name); \
60 ASM_TYPE_DIRECTIVE(__ieee754_##name, @function)
62 #if defined ASSEMBLER && !defined NOT_IN_libc
63 # define __libm_error_support HIDDEN_JUMPTARGET(__libm_error_support)
64 #endif