xref: /netbsd-src/sys/arch/sparc/include/elf_machdep.h (revision dc2ac295848fdbeb08478f3a5bb113efa716e9ad)
1*dc2ac295Schristos /*	$NetBSD: elf_machdep.h,v 1.10 2017/11/06 03:47:48 christos Exp $	*/
20e097578Scgd 
3522cbf02Skleink #define ELF32_MACHDEP_ENDIANNESS	ELFDATA2MSB
40e097578Scgd #define	ELF32_MACHDEP_ID_CASES						\
5522cbf02Skleink 		case EM_SPARC:						\
6522cbf02Skleink 		case EM_SPARC32PLUS:					\
70e097578Scgd 			break;
80e097578Scgd 
968068a92Smartin #define	ELF64_MACHDEP_ENDIANNESS	XXX	/* break compilation */
100e097578Scgd #define	ELF64_MACHDEP_ID_CASES						\
110e097578Scgd 		/* no 64-bit ELF machine types supported */
1228260456Stv 
1368068a92Smartin #define	ELF32_MACHDEP_ID	EM_SPARC
1451535d4bSthorpej 
15*dc2ac295Schristos #define	KERN_ELFSIZE		32
1678b10569Sminoura #define ARCH_ELFSIZE		32	/* MD native binary size */
1778b10569Sminoura 
1828260456Stv #define R_SPARC_NONE		0
1928260456Stv #define R_SPARC_8		1
2028260456Stv #define R_SPARC_16		2
2128260456Stv #define R_SPARC_32		3
2228260456Stv #define R_SPARC_DISP8		4
2328260456Stv #define R_SPARC_DISP16		5
2428260456Stv #define R_SPARC_DISP32		6
2528260456Stv #define R_SPARC_WDISP30		7
2628260456Stv #define R_SPARC_WDISP22		8
2728260456Stv #define R_SPARC_HI22		9
2828260456Stv #define R_SPARC_22		10
2928260456Stv #define R_SPARC_13		11
3028260456Stv #define R_SPARC_LO10		12
3128260456Stv #define R_SPARC_GOT10		13
3228260456Stv #define R_SPARC_GOT13		14
3328260456Stv #define R_SPARC_GOT22		15
3428260456Stv #define R_SPARC_PC10		16
3528260456Stv #define R_SPARC_PC22		17
3628260456Stv #define R_SPARC_WPLT30		18
3728260456Stv #define R_SPARC_COPY		19
3828260456Stv #define R_SPARC_GLOB_DAT	20
3928260456Stv #define R_SPARC_JMP_SLOT	21
4028260456Stv #define R_SPARC_RELATIVE	22
4128260456Stv #define R_SPARC_UA32		23
4228260456Stv #define R_SPARC_PLT32		24
4328260456Stv #define R_SPARC_HIPLT22		25
4428260456Stv #define R_SPARC_LOPLT10		26
4528260456Stv #define R_SPARC_PCPLT32		27
4628260456Stv #define R_SPARC_PCPLT22		28
4728260456Stv #define R_SPARC_PCPLT10		29
4828260456Stv #define R_SPARC_10		30
4928260456Stv #define R_SPARC_11		31
5028260456Stv #define R_SPARC_64		32
5128260456Stv #define R_SPARC_OLO10		33
5228260456Stv #define R_SPARC_HH22		34
5328260456Stv #define R_SPARC_HM10		35
5428260456Stv #define R_SPARC_LM22		36
5528260456Stv #define R_SPARC_PC_HH22		37
5628260456Stv #define R_SPARC_PC_HM10		38
5728260456Stv #define R_SPARC_PC_LM22		39
5828260456Stv #define R_SPARC_WDISP16		40
5928260456Stv #define R_SPARC_WDISP19		41
6028260456Stv #define R_SPARC_GLOB_JMP	42
6128260456Stv #define R_SPARC_7		43
6228260456Stv #define R_SPARC_5		44
6328260456Stv #define R_SPARC_6		45
6428260456Stv 
65e0397662Sskrll /* TLS relocations */
66e0397662Sskrll #define R_SPARC_TLS_GD_HI22	56
67e0397662Sskrll #define R_SPARC_TLS_GD_LO10	57
68e0397662Sskrll #define R_SPARC_TLS_GD_ADD	58
69e0397662Sskrll #define R_SPARC_TLS_GD_CALL	59
70e0397662Sskrll #define R_SPARC_TLS_LDM_HI22	60
71e0397662Sskrll #define R_SPARC_TLS_LDM_LO10	61
72e0397662Sskrll #define R_SPARC_TLS_LDM_ADD	62
73e0397662Sskrll #define R_SPARC_TLS_LDM_CALL	63
74e0397662Sskrll #define R_SPARC_TLS_LDO_HIX22	64
75e0397662Sskrll #define R_SPARC_TLS_LDO_LOX10	65
76e0397662Sskrll #define R_SPARC_TLS_LDO_ADD	66
77e0397662Sskrll #define R_SPARC_TLS_IE_HI22	67
78e0397662Sskrll #define R_SPARC_TLS_IE_LO10	68
79e0397662Sskrll #define R_SPARC_TLS_IE_LD	69
80e0397662Sskrll #define R_SPARC_TLS_IE_LDX	70
81e0397662Sskrll #define R_SPARC_TLS_IE_ADD	71
82e0397662Sskrll #define R_SPARC_TLS_LE_HIX22	72
83e0397662Sskrll #define R_SPARC_TLS_LE_LOX10	73
84e0397662Sskrll #define R_SPARC_TLS_DTPMOD32	74
85e0397662Sskrll #define R_SPARC_TLS_DTPMOD64	75
86e0397662Sskrll #define R_SPARC_TLS_DTPOFF32	76
87e0397662Sskrll #define R_SPARC_TLS_DTPOFF64	77
88e0397662Sskrll #define R_SPARC_TLS_TPOFF32	78
89e0397662Sskrll #define R_SPARC_TLS_TPOFF64	79
90e0397662Sskrll 
91610e531eSjoerg #define R_SPARC_JMP_IREL	248
92610e531eSjoerg #define R_SPARC_IRELATIVE	249
93610e531eSjoerg 
9428260456Stv #define R_TYPE(name)		__CONCAT(R_SPARC_,name)
95