1  #ifndef _ISOMAC
       2  # include <sysdep.h>
       3  # undef ret	/* get rid of the stupid "ret" macro; it breaks br.ret */
       4  
       5  # include <libm-alias-float.h>
       6  # include <libm-alias-double.h>
       7  # include <libm-alias-ldouble.h>
       8  # include <math-narrow-alias.h>
       9  
      10  /* Support for compatible assembler handling.  */
      11  
      12  # define ASM_SIZE_DIRECTIVE(name) .size name,.-name
      13  
      14  # define LOCAL_LIBM_ENTRY(name)			\
      15  	.proc name;				\
      16   name:
      17  
      18  # define LOCAL_LIBM_END(name)			\
      19  	.endp name;				\
      20   ASM_SIZE_DIRECTIVE(name)
      21  
      22  
      23  # define RODATA		.rodata
      24  # define LOCAL_OBJECT_START(name)		\
      25     name:;					\
      26     .type name, @object
      27  # define LOCAL_OBJECT_END(name)			\
      28     ASM_SIZE_DIRECTIVE(name)
      29  
      30  # define GLOBAL_LIBM_ENTRY(name)		\
      31  	LOCAL_LIBM_ENTRY(name);			\
      32  	.global name
      33  # define GLOBAL_LIBM_END(name)		LOCAL_LIBM_END(name)
      34  
      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)
      39  
      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   .type __##name, @function
      51  
      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   .type __ieee754_##name, @function
      61  
      62  # if defined ASSEMBLER && IS_IN (libc)
      63  #  define __libm_error_support	HIDDEN_JUMPTARGET(__libm_error_support)
      64  # endif
      65  #endif