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