Back to index

glibc  2.9
libm-symbols.h
Go to the documentation of this file.
00001 #include <sysdep.h>
00002 #undef ret    /* get rid of the stupid "ret" macro; it breaks br.ret */
00003 
00004 /* Support for compatible assembler handling.  */
00005 
00006 #ifdef __ELF__
00007 # define ASM_SIZE_DIRECTIVE(name) .size name,.-name
00008 # define ASM_TYPE_DIRECTIVE(name,T) .type name,T
00009 #else
00010 # define ASM_SIZE_DIRECTIVE(name)
00011 # define ASM_TYPE_DIRECTIVE(name,T)
00012 #endif
00013 
00014 #define LOCAL_LIBM_ENTRY(name)                   \
00015        .proc name;                        \
00016  name:
00017 
00018 #define LOCAL_LIBM_END(name)                     \
00019        .endp name;                        \
00020  ASM_SIZE_DIRECTIVE(name)
00021 
00022 
00023 #define RODATA              .rodata
00024 #define LOCAL_OBJECT_START(name)          \
00025    name:;                                 \
00026    ASM_TYPE_DIRECTIVE(name, @object)
00027 #define LOCAL_OBJECT_END(name)                   \
00028    ASM_SIZE_DIRECTIVE(name)
00029 
00030 #define GLOBAL_LIBM_ENTRY(name)                  \
00031        LOCAL_LIBM_ENTRY(name);                   \
00032        .global name
00033 #define GLOBAL_LIBM_END(name)             LOCAL_LIBM_END(name)
00034 
00035 #define INTERNAL_LIBM_ENTRY(name)         \
00036        GLOBAL_LIBM_ENTRY(__libm_##name);  \
00037        .global __libm_##name
00038 #define INTERNAL_LIBM_END(name)           GLOBAL_LIBM_END(__libm_##name)
00039 
00040 #define WEAK_LIBM_ENTRY(name)                    \
00041        .align 32;                         \
00042        LOCAL_LIBM_ENTRY(__##name);        \
00043        .global __##name;                  \
00044  __##name:
00045 #define WEAK_LIBM_END(name)               \
00046  weak_alias (__##name, name);                    \
00047  .hidden __##name;                        \
00048        LOCAL_LIBM_END(__##name);          \
00049  ASM_SIZE_DIRECTIVE(__##name);                   \
00050  ASM_TYPE_DIRECTIVE(__##name, @function)
00051 
00052 #define GLOBAL_IEEE754_ENTRY(name)        \
00053        WEAK_LIBM_ENTRY(name);                    \
00054        .global __ieee754_##name;          \
00055        .hidden __ieee754_##name;          \
00056  __ieee754_##name:
00057 #define GLOBAL_IEEE754_END(name)                 \
00058        WEAK_LIBM_END(name);                      \
00059  ASM_SIZE_DIRECTIVE(__ieee754_##name);                  \
00060  ASM_TYPE_DIRECTIVE(__ieee754_##name, @function)
00061 
00062 #if defined ASSEMBLER && !defined NOT_IN_libc
00063 # define __libm_error_support      HIDDEN_JUMPTARGET(__libm_error_support)
00064 #endif