about summary refs log tree commit diff
path: root/sysdeps/ia64/fpu/libm-symbols.h
blob: 4a551c9f17c37982ae97234e68b695c1441e2228 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
#ifndef _ISOMAC
# include <sysdep.h>
# undef ret	/* get rid of the stupid "ret" macro; it breaks br.ret */

# include <libm-alias-float.h>
# include <libm-alias-double.h>
# include <libm-alias-ldouble.h>

/* Support for compatible assembler handling.  */

# define ASM_SIZE_DIRECTIVE(name) .size name,.-name

# 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:;					\
   .type 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);			\
 .type __##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);			\
 .type __ieee754_##name, @function

# if defined ASSEMBLER && IS_IN (libc)
#  define __libm_error_support	HIDDEN_JUMPTARGET(__libm_error_support)
# endif
#endif