diff options
author | Jakub Jelinek <jakub@redhat.com> | 2007-07-12 18:26:36 +0000 |
---|---|---|
committer | Jakub Jelinek <jakub@redhat.com> | 2007-07-12 18:26:36 +0000 |
commit | 0ecb606cb6cf65de1d9fc8a919bceb4be476c602 (patch) | |
tree | 2ea1f8305970753e4a657acb2ccc15ca3eec8e2c /sysdeps/ia64/fpu/libm-symbols.h | |
parent | 7d58530341304d403a6626d7f7a1913165fe2f32 (diff) | |
download | glibc-0ecb606cb6cf65de1d9fc8a919bceb4be476c602.tar.gz |
2.5-18.1
Diffstat (limited to 'sysdeps/ia64/fpu/libm-symbols.h')
-rw-r--r-- | sysdeps/ia64/fpu/libm-symbols.h | 64 |
1 files changed, 64 insertions, 0 deletions
diff --git a/sysdeps/ia64/fpu/libm-symbols.h b/sysdeps/ia64/fpu/libm-symbols.h new file mode 100644 index 0000000000..5b5e4b7d7b --- /dev/null +++ b/sysdeps/ia64/fpu/libm-symbols.h @@ -0,0 +1,64 @@ +#include <sysdep.h> +#undef ret /* get rid of the stupid "ret" macro; it breaks br.ret */ + +/* Support for compatible assembler handling. */ + +#ifdef __ELF__ +# define ASM_SIZE_DIRECTIVE(name) .size name,.-name +# define ASM_TYPE_DIRECTIVE(name,T) .type name,T +#else +# define ASM_SIZE_DIRECTIVE(name) +# define ASM_TYPE_DIRECTIVE(name,T) +#endif + +#define LOCAL_LIBM_ENTRY(name) \ + .proc name; \ + name: + +#define LOCAL_LIBM_END(name) \ + .endp name; \ + ASM_SIZE_DIRECTIVE(name) + + +#define RODATA .rodata +#define LOCAL_OBJECT_START(name) \ + name:; \ + ASM_TYPE_DIRECTIVE(name, @object) +#define LOCAL_OBJECT_END(name) \ + ASM_SIZE_DIRECTIVE(name) + +#define GLOBAL_LIBM_ENTRY(name) \ + LOCAL_LIBM_ENTRY(name); \ + .global name +#define GLOBAL_LIBM_END(name) LOCAL_LIBM_END(name) + +#define INTERNAL_LIBM_ENTRY(name) \ + GLOBAL_LIBM_ENTRY(__libm_##name); \ + .global __libm_##name +#define INTERNAL_LIBM_END(name) GLOBAL_LIBM_END(__libm_##name) + +#define WEAK_LIBM_ENTRY(name) \ + .align 32; \ + LOCAL_LIBM_ENTRY(__##name); \ + .global __##name; \ + __##name: +#define WEAK_LIBM_END(name) \ + weak_alias (__##name, name); \ + .hidden __##name; \ + LOCAL_LIBM_END(__##name); \ + ASM_SIZE_DIRECTIVE(__##name); \ + ASM_TYPE_DIRECTIVE(__##name, @function) + +#define GLOBAL_IEEE754_ENTRY(name) \ + WEAK_LIBM_ENTRY(name); \ + .global __ieee754_##name; \ + .hidden __ieee754_##name; \ + __ieee754_##name: +#define GLOBAL_IEEE754_END(name) \ + WEAK_LIBM_END(name); \ + ASM_SIZE_DIRECTIVE(__ieee754_##name); \ + ASM_TYPE_DIRECTIVE(__ieee754_##name, @function) + +#if defined ASSEMBLER && !defined NOT_IN_libc +# define __libm_error_support HIDDEN_JUMPTARGET(__libm_error_support) +#endif |