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