xref: /netbsd/sys/arch/hppa/include/elf_machdep.h (revision 8ad7f8ea)
1 /*	$NetBSD: elf_machdep.h,v 1.4 2017/11/06 03:47:46 christos Exp $	*/
2 
3 #define	ELF32_MACHDEP_ENDIANNESS	ELFDATA2MSB
4 #define	ELF32_MACHDEP_ID_CASES						\
5 		case EM_PARISC:						\
6 			break;
7 
8 #define	ELF64_MACHDEP_ENDIANNESS	XXX	/* break compilation */
9 #define	ELF64_MACHDEP_ID_CASES						\
10 		/* no 64-bit ELF machine types supported */
11 
12 #define	ELF32_MACHDEP_ID	EM_PARISC
13 
14 #define	KERN_ELFSIZE		32
15 #define ARCH_ELFSIZE		32	/* MD native binary size */
16 
17 /* hppa relocation types */
18 #define R_PARISC_NONE	         0 /* No reloc */
19 #define R_PARISC_DIR32	   	 1
20 #define R_PARISC_DIR21L	   	 2
21 #define R_PARISC_DIR17R	   	 3
22 #define R_PARISC_DIR17F	   	 4
23 #define R_PARISC_DIR14R	   	 6
24 #define R_PARISC_DIR14F	   	 7
25 #define R_PARISC_PCREL12F  	 8
26 #define R_PARISC_PCREL32   	 9
27 #define R_PARISC_PCREL21L  	10
28 #define R_PARISC_PCREL17R  	11
29 #define R_PARISC_PCREL17F  	12
30 #define R_PARISC_PCREL17C  	13
31 #define R_PARISC_PCREL14R  	14
32 #define R_PARISC_PCREL14F  	15
33 #define R_PARISC_DPREL21L  	18
34 #define R_PARISC_DPREL14WR 	19
35 #define R_PARISC_DPREL14DR 	20
36 #define R_PARISC_DPREL14R  	22
37 #define R_PARISC_DPREL14F  	23
38 #define R_PARISC_DLTREL21L     	26
39 #define R_PARISC_DLTREL14R     	30
40 #define R_PARISC_DLTREL14F     	31
41 #define R_PARISC_DLTIND21L     	34
42 #define R_PARISC_DLTIND14R     	38
43 #define R_PARISC_DLTIND14F     	39
44 #define R_PARISC_SETBASE       	40
45 #define R_PARISC_SECREL32      	41
46 #define R_PARISC_BASEREL21L    	42
47 #define R_PARISC_BASEREL17R    	43
48 #define R_PARISC_BASEREL17F    	44
49 #define R_PARISC_BASEREL14R    	46
50 #define R_PARISC_BASEREL14F    	47
51 #define R_PARISC_SEGBASE       	48
52 #define R_PARISC_SEGREL32      	49
53 #define R_PARISC_PLTOFF21L     	50
54 #define R_PARISC_PLTOFF14R     	54
55 #define R_PARISC_PLTOFF14F     	55
56 #define R_PARISC_LTOFF_FPTR32  	57
57 #define R_PARISC_LTOFF_FPTR21L 	58
58 #define R_PARISC_LTOFF_FPTR14R 	62
59 #define R_PARISC_FPTR64        	64
60 #define R_PARISC_PLABEL32      	65
61 #define R_PARISC_PLABEL21L     	66
62 #define R_PARISC_PLABEL14R     	70
63 #define R_PARISC_PCREL64       	72
64 #define R_PARISC_PCREL22C      	73
65 #define R_PARISC_PCREL22F      	74
66 #define R_PARISC_PCREL14WR     	75
67 #define R_PARISC_PCREL14DR     	76
68 #define R_PARISC_PCREL16F      	77
69 #define R_PARISC_PCREL16WF     	78
70 #define R_PARISC_PCREL16DF     	79
71 #define R_PARISC_DIR64         	80
72 #define R_PARISC_DIR64WR       	81
73 #define R_PARISC_DIR64DR       	82
74 #define R_PARISC_DIR14WR       	83
75 #define R_PARISC_DIR14DR       	84
76 #define R_PARISC_DIR16F        	85
77 #define R_PARISC_DIR16WF       	86
78 #define R_PARISC_DIR16DF       	87
79 #define R_PARISC_GPREL64       	88
80 #define R_PARISC_DLTREL14WR    	91
81 #define R_PARISC_DLTREL14DR    	92
82 #define R_PARISC_GPREL16F      	93
83 #define R_PARISC_GPREL16WF     	94
84 #define R_PARISC_GPREL16DF     	95
85 #define R_PARISC_LTOFF64      	96
86 #define R_PARISC_DLTIND14WR   	99
87 #define R_PARISC_DLTIND14DR     100
88 #define R_PARISC_LTOFF16F       101
89 #define R_PARISC_LTOFF16WF      102
90 #define R_PARISC_LTOFF16DF      103
91 #define R_PARISC_SECREL64       104
92 #define R_PARISC_BASEREL14WR    107
93 #define R_PARISC_BASEREL14DR    108
94 #define R_PARISC_SEGREL64       112
95 #define R_PARISC_PLTOFF14WR     115
96 #define R_PARISC_PLTOFF14DR     116
97 #define R_PARISC_PLTOFF16F      117
98 #define R_PARISC_PLTOFF16WF     118
99 #define R_PARISC_PLTOFF16DF     119
100 #define R_PARISC_LTOFF_FPTR64   120
101 #define R_PARISC_LTOFF_FPTR14WR 123
102 #define R_PARISC_LTOFF_FPTR14DR 124
103 #define R_PARISC_LTOFF_FPTR16F  125
104 #define R_PARISC_LTOFF_FPTR16WF 126
105 #define R_PARISC_LTOFF_FPTR16DF 127
106 #define R_PARISC_COPY 	       128
107 #define R_PARISC_IPLT 	       129
108 #define R_PARISC_EPLT 	       130
109 #define R_PARISC_TPREL32        153
110 #define R_PARISC_TPREL21L       154
111 #define R_PARISC_TPREL14R       158
112 #define R_PARISC_LTOFF_TP21L    162
113 #define R_PARISC_LTOFF_TP14R    166
114 #define R_PARISC_LTOFF_TP14F    167
115 #define R_PARISC_TPREL64        216
116 #define R_PARISC_TPREL14WR      219
117 #define R_PARISC_TPREL14DR      220
118 #define R_PARISC_TPREL16F       221
119 #define R_PARISC_TPREL16WF      222
120 #define R_PARISC_TPREL16DF      223
121 #define R_PARISC_LTOFF_TP64     224
122 #define R_PARISC_LTOFF_TP14WR   227
123 #define R_PARISC_LTOFF_TP14DR   228
124 #define R_PARISC_LTOFF_TP16F    229
125 #define R_PARISC_LTOFF_TP16WF   230
126 #define R_PARISC_LTOFF_TP16DF   231
127 #define R_PARISC_GNU_VTENTRY    232
128 #define R_PARISC_GNU_VTINHERIT  233
129 
130 /* TLS relocations */
131 #define R_PARISC_TLS_GD21L	234
132 #define R_PARISC_TLS_GD14R	235
133 #define R_PARISC_TLS_GDCALL	236
134 #define R_PARISC_TLS_LDM21L	237
135 #define R_PARISC_TLS_LDM14R	238
136 #define R_PARISC_TLS_LDMCALL	239
137 #define R_PARISC_TLS_LDO21L	240
138 #define R_PARISC_TLS_LDO14R	241
139 #define R_PARISC_TLS_DTPMOD32	242
140 #define R_PARISC_TLS_DTPMOD64	243
141 #define R_PARISC_TLS_DTPOFF32	244
142 #define R_PARISC_TLS_DTPOFF64	245
143 
144 #define R_PARISC_TLS_LE21L	R_PARISC_TPREL21L
145 #define R_PARISC_TLS_LE14R	R_PARISC_TPREL14R
146 #define R_PARISC_TLS_IE21L	R_PARISC_LTOFF_TP21L
147 #define R_PARISC_TLS_IE14R	R_PARISC_LTOFF_TP14R
148 #define R_PARISC_TLS_TPREL32	R_PARISC_TPREL32
149 #define R_PARISC_TLS_TPREL64	R_PARISC_TPREL64
150 
151 #define	R_TYPE(name)	__CONCAT(R_PARISC_,name)
152