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