elf_machdep.h revision 1.9
1/*	$NetBSD: elf_machdep.h,v 1.9 2017/08/12 09:03:28 joerg Exp $	*/
2
3#define ELF32_MACHDEP_ENDIANNESS	ELFDATA2MSB
4#define	ELF32_MACHDEP_ID_CASES						\
5		case EM_SPARC:						\
6		case EM_SPARC32PLUS:					\
7			break;
8
9#define	ELF64_MACHDEP_ENDIANNESS	XXX	/* break compilation */
10#define	ELF64_MACHDEP_ID_CASES						\
11		/* no 64-bit ELF machine types supported */
12
13#define	ELF32_MACHDEP_ID	EM_SPARC
14
15#define ARCH_ELFSIZE		32	/* MD native binary size */
16
17#define R_SPARC_NONE		0
18#define R_SPARC_8		1
19#define R_SPARC_16		2
20#define R_SPARC_32		3
21#define R_SPARC_DISP8		4
22#define R_SPARC_DISP16		5
23#define R_SPARC_DISP32		6
24#define R_SPARC_WDISP30		7
25#define R_SPARC_WDISP22		8
26#define R_SPARC_HI22		9
27#define R_SPARC_22		10
28#define R_SPARC_13		11
29#define R_SPARC_LO10		12
30#define R_SPARC_GOT10		13
31#define R_SPARC_GOT13		14
32#define R_SPARC_GOT22		15
33#define R_SPARC_PC10		16
34#define R_SPARC_PC22		17
35#define R_SPARC_WPLT30		18
36#define R_SPARC_COPY		19
37#define R_SPARC_GLOB_DAT	20
38#define R_SPARC_JMP_SLOT	21
39#define R_SPARC_RELATIVE	22
40#define R_SPARC_UA32		23
41#define R_SPARC_PLT32		24
42#define R_SPARC_HIPLT22		25
43#define R_SPARC_LOPLT10		26
44#define R_SPARC_PCPLT32		27
45#define R_SPARC_PCPLT22		28
46#define R_SPARC_PCPLT10		29
47#define R_SPARC_10		30
48#define R_SPARC_11		31
49#define R_SPARC_64		32
50#define R_SPARC_OLO10		33
51#define R_SPARC_HH22		34
52#define R_SPARC_HM10		35
53#define R_SPARC_LM22		36
54#define R_SPARC_PC_HH22		37
55#define R_SPARC_PC_HM10		38
56#define R_SPARC_PC_LM22		39
57#define R_SPARC_WDISP16		40
58#define R_SPARC_WDISP19		41
59#define R_SPARC_GLOB_JMP	42
60#define R_SPARC_7		43
61#define R_SPARC_5		44
62#define R_SPARC_6		45
63
64/* TLS relocations */
65#define R_SPARC_TLS_GD_HI22	56
66#define R_SPARC_TLS_GD_LO10	57
67#define R_SPARC_TLS_GD_ADD	58
68#define R_SPARC_TLS_GD_CALL	59
69#define R_SPARC_TLS_LDM_HI22	60
70#define R_SPARC_TLS_LDM_LO10	61
71#define R_SPARC_TLS_LDM_ADD	62
72#define R_SPARC_TLS_LDM_CALL	63
73#define R_SPARC_TLS_LDO_HIX22	64
74#define R_SPARC_TLS_LDO_LOX10	65
75#define R_SPARC_TLS_LDO_ADD	66
76#define R_SPARC_TLS_IE_HI22	67
77#define R_SPARC_TLS_IE_LO10	68
78#define R_SPARC_TLS_IE_LD	69
79#define R_SPARC_TLS_IE_LDX	70
80#define R_SPARC_TLS_IE_ADD	71
81#define R_SPARC_TLS_LE_HIX22	72
82#define R_SPARC_TLS_LE_LOX10	73
83#define R_SPARC_TLS_DTPMOD32	74
84#define R_SPARC_TLS_DTPMOD64	75
85#define R_SPARC_TLS_DTPOFF32	76
86#define R_SPARC_TLS_DTPOFF64	77
87#define R_SPARC_TLS_TPOFF32	78
88#define R_SPARC_TLS_TPOFF64	79
89
90#define R_SPARC_JMP_IREL	248
91#define R_SPARC_IRELATIVE	249
92
93#define R_TYPE(name)		__CONCAT(R_SPARC_,name)
94