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