1*a9fa9459Szrj/* ARC relocation types 2*a9fa9459Szrj Copyright (C) 2015-2016 Free Software Foundation, Inc. 3*a9fa9459Szrj 4*a9fa9459Szrj This file is part of BFD, the Binary File Descriptor library. 5*a9fa9459Szrj 6*a9fa9459Szrj This program is free software; you can redistribute it and/or modify 7*a9fa9459Szrj it under the terms of the GNU General Public License as published by 8*a9fa9459Szrj the Free Software Foundation; either version 3 of the License, or 9*a9fa9459Szrj (at your option) any later version. 10*a9fa9459Szrj 11*a9fa9459Szrj This program is distributed in the hope that it will be useful, 12*a9fa9459Szrj but WITHOUT ANY WARRANTY; without even the implied warranty of 13*a9fa9459Szrj MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 14*a9fa9459Szrj GNU General Public License for more details. 15*a9fa9459Szrj 16*a9fa9459Szrj GAS/GDB is free software; you can redistribute it and/or modify 17*a9fa9459Szrj it under the terms of the GNU General Public License as published by 18*a9fa9459Szrj the Free Software Foundation; either version 3, or (at your option) 19*a9fa9459Szrj any later version. 20*a9fa9459Szrj 21*a9fa9459Szrj GAS/GDB is distributed in the hope that it will be useful, 22*a9fa9459Szrj but WITHOUT ANY WARRANTY; without even the implied warranty of 23*a9fa9459Szrj MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 24*a9fa9459Szrj GNU General Public License for more details. 25*a9fa9459Szrj 26*a9fa9459Szrj You should have received a copy of the GNU General Public License 27*a9fa9459Szrj along with GAS or GDB; see the file COPYING3. If not, write to 28*a9fa9459Szrj the Free Software Foundation, 51 Franklin Street - Fifth Floor, Boston, 29*a9fa9459Szrj MA 02110-1301, USA. */ 30*a9fa9459Szrj 31*a9fa9459Szrj 32*a9fa9459SzrjARC_RELOC_HOWTO(ARC_NONE, 0, \ 33*a9fa9459Szrj 2, \ 34*a9fa9459Szrj 32, \ 35*a9fa9459Szrj replace_none, \ 36*a9fa9459Szrj bitfield, \ 37*a9fa9459Szrj 0) 38*a9fa9459Szrj 39*a9fa9459SzrjARC_RELOC_HOWTO(ARC_8, 1, \ 40*a9fa9459Szrj 0, \ 41*a9fa9459Szrj 8, \ 42*a9fa9459Szrj replace_bits8, \ 43*a9fa9459Szrj bitfield, \ 44*a9fa9459Szrj ( S + A )) 45*a9fa9459Szrj 46*a9fa9459SzrjARC_RELOC_HOWTO(ARC_16, 2, \ 47*a9fa9459Szrj 1, \ 48*a9fa9459Szrj 16, \ 49*a9fa9459Szrj replace_bits16, \ 50*a9fa9459Szrj bitfield, \ 51*a9fa9459Szrj ( S + A )) 52*a9fa9459Szrj 53*a9fa9459SzrjARC_RELOC_HOWTO(ARC_24, 3, \ 54*a9fa9459Szrj 2, \ 55*a9fa9459Szrj 24, \ 56*a9fa9459Szrj replace_bits24, \ 57*a9fa9459Szrj bitfield, \ 58*a9fa9459Szrj ( S + A )) 59*a9fa9459Szrj 60*a9fa9459SzrjARC_RELOC_HOWTO(ARC_32, 4, \ 61*a9fa9459Szrj 2, \ 62*a9fa9459Szrj 32, \ 63*a9fa9459Szrj replace_word32, \ 64*a9fa9459Szrj bitfield, \ 65*a9fa9459Szrj ( S + A )) 66*a9fa9459Szrj 67*a9fa9459SzrjARC_RELOC_HOWTO(ARC_N8, 8, \ 68*a9fa9459Szrj 0, \ 69*a9fa9459Szrj 8, \ 70*a9fa9459Szrj replace_bits8, \ 71*a9fa9459Szrj bitfield, \ 72*a9fa9459Szrj ( S - A )) 73*a9fa9459Szrj 74*a9fa9459SzrjARC_RELOC_HOWTO(ARC_N16, 9, \ 75*a9fa9459Szrj 1, \ 76*a9fa9459Szrj 16, \ 77*a9fa9459Szrj replace_bits16, \ 78*a9fa9459Szrj bitfield, \ 79*a9fa9459Szrj ( S - A )) 80*a9fa9459Szrj 81*a9fa9459SzrjARC_RELOC_HOWTO(ARC_N24, 10, \ 82*a9fa9459Szrj 2, \ 83*a9fa9459Szrj 24, \ 84*a9fa9459Szrj replace_bits24, \ 85*a9fa9459Szrj bitfield, \ 86*a9fa9459Szrj ( S - A )) 87*a9fa9459Szrj 88*a9fa9459SzrjARC_RELOC_HOWTO(ARC_N32, 11, \ 89*a9fa9459Szrj 2, \ 90*a9fa9459Szrj 32, \ 91*a9fa9459Szrj replace_word32, \ 92*a9fa9459Szrj bitfield, \ 93*a9fa9459Szrj ( S - A )) 94*a9fa9459Szrj 95*a9fa9459SzrjARC_RELOC_HOWTO(ARC_SDA, 12, \ 96*a9fa9459Szrj 2, \ 97*a9fa9459Szrj 9, \ 98*a9fa9459Szrj replace_disp9, \ 99*a9fa9459Szrj bitfield, \ 100*a9fa9459Szrj ( S + A )) 101*a9fa9459Szrj 102*a9fa9459SzrjARC_RELOC_HOWTO(ARC_SECTOFF, 13, \ 103*a9fa9459Szrj 2, \ 104*a9fa9459Szrj 32, \ 105*a9fa9459Szrj replace_word32, \ 106*a9fa9459Szrj bitfield, \ 107*a9fa9459Szrj ( ( S - SECTSTART ) + A )) 108*a9fa9459Szrj 109*a9fa9459SzrjARC_RELOC_HOWTO(ARC_S21H_PCREL, 14, \ 110*a9fa9459Szrj 2, \ 111*a9fa9459Szrj 20, \ 112*a9fa9459Szrj replace_disp21h, \ 113*a9fa9459Szrj signed, \ 114*a9fa9459Szrj ( ME ( ( ( ( S + A ) - P ) >> 1 ) ) )) 115*a9fa9459Szrj 116*a9fa9459SzrjARC_RELOC_HOWTO(ARC_S21W_PCREL, 15, \ 117*a9fa9459Szrj 2, \ 118*a9fa9459Szrj 19, \ 119*a9fa9459Szrj replace_disp21w, \ 120*a9fa9459Szrj signed, \ 121*a9fa9459Szrj ( ME ( ( ( ( S + A ) - P ) >> 2 ) ) )) 122*a9fa9459Szrj 123*a9fa9459SzrjARC_RELOC_HOWTO(ARC_S25H_PCREL, 16, \ 124*a9fa9459Szrj 2, \ 125*a9fa9459Szrj 24, \ 126*a9fa9459Szrj replace_disp25h, \ 127*a9fa9459Szrj signed, \ 128*a9fa9459Szrj ( ME ( ( ( ( S + A ) - P ) >> 1 ) ) )) 129*a9fa9459Szrj 130*a9fa9459SzrjARC_RELOC_HOWTO(ARC_S25W_PCREL, 17, \ 131*a9fa9459Szrj 2, \ 132*a9fa9459Szrj 23, \ 133*a9fa9459Szrj replace_disp25w, \ 134*a9fa9459Szrj signed, \ 135*a9fa9459Szrj ( ME ( ( ( ( S + A ) - P ) >> 2 ) ) )) 136*a9fa9459Szrj 137*a9fa9459SzrjARC_RELOC_HOWTO(ARC_SDA32, 18, \ 138*a9fa9459Szrj 2, \ 139*a9fa9459Szrj 32, \ 140*a9fa9459Szrj replace_word32, \ 141*a9fa9459Szrj signed, \ 142*a9fa9459Szrj ( ME ( ( ( S + A ) - _SDA_BASE_ ) ) )) 143*a9fa9459Szrj 144*a9fa9459SzrjARC_RELOC_HOWTO(ARC_SDA_LDST, 19, \ 145*a9fa9459Szrj 2, \ 146*a9fa9459Szrj 9, \ 147*a9fa9459Szrj replace_disp9ls, \ 148*a9fa9459Szrj signed, \ 149*a9fa9459Szrj ( ME ( ( ( S + A ) - _SDA_BASE_ ) ) )) 150*a9fa9459Szrj 151*a9fa9459SzrjARC_RELOC_HOWTO(ARC_SDA_LDST1, 20, \ 152*a9fa9459Szrj 2, \ 153*a9fa9459Szrj 9, \ 154*a9fa9459Szrj replace_disp9ls, \ 155*a9fa9459Szrj signed, \ 156*a9fa9459Szrj ( ME ( ( ( ( S + A ) - _SDA_BASE_ ) >> 1 ) ) )) 157*a9fa9459Szrj 158*a9fa9459SzrjARC_RELOC_HOWTO(ARC_SDA_LDST2, 21, \ 159*a9fa9459Szrj 2, \ 160*a9fa9459Szrj 9, \ 161*a9fa9459Szrj replace_disp9ls, \ 162*a9fa9459Szrj signed, \ 163*a9fa9459Szrj ( ME ( ( ( ( S + A ) - _SDA_BASE_ ) >> 2 ) ) )) 164*a9fa9459Szrj 165*a9fa9459SzrjARC_RELOC_HOWTO(ARC_SDA16_LD, 22, \ 166*a9fa9459Szrj 1, \ 167*a9fa9459Szrj 9, \ 168*a9fa9459Szrj replace_disp9s, \ 169*a9fa9459Szrj signed, \ 170*a9fa9459Szrj ( ( ( S + A ) - _SDA_BASE_ ) )) 171*a9fa9459Szrj 172*a9fa9459SzrjARC_RELOC_HOWTO(ARC_SDA16_LD1, 23, \ 173*a9fa9459Szrj 1, \ 174*a9fa9459Szrj 9, \ 175*a9fa9459Szrj replace_disp9s, \ 176*a9fa9459Szrj signed, \ 177*a9fa9459Szrj ( ( ( ( S + A ) - _SDA_BASE_ ) >> 1 ) )) 178*a9fa9459Szrj 179*a9fa9459SzrjARC_RELOC_HOWTO(ARC_SDA16_LD2, 24, \ 180*a9fa9459Szrj 1, \ 181*a9fa9459Szrj 9, \ 182*a9fa9459Szrj replace_disp9s, \ 183*a9fa9459Szrj signed, \ 184*a9fa9459Szrj ( ( ( ( S + A ) - _SDA_BASE_ ) >> 2 ) )) 185*a9fa9459Szrj 186*a9fa9459SzrjARC_RELOC_HOWTO(ARC_S13_PCREL, 25, \ 187*a9fa9459Szrj 1, \ 188*a9fa9459Szrj 11, \ 189*a9fa9459Szrj replace_disp13s, \ 190*a9fa9459Szrj signed, \ 191*a9fa9459Szrj ( ( ( ( S + A ) - P ) >> 2 ) )) 192*a9fa9459Szrj 193*a9fa9459SzrjARC_RELOC_HOWTO(ARC_W, 26, \ 194*a9fa9459Szrj 2, \ 195*a9fa9459Szrj 32, \ 196*a9fa9459Szrj replace_word32, \ 197*a9fa9459Szrj bitfield, \ 198*a9fa9459Szrj ( ( S + A ) & ( ~3 ) )) 199*a9fa9459Szrj 200*a9fa9459SzrjARC_RELOC_HOWTO(ARC_32_ME, 27, \ 201*a9fa9459Szrj 2, \ 202*a9fa9459Szrj 32, \ 203*a9fa9459Szrj replace_limm, \ 204*a9fa9459Szrj signed, \ 205*a9fa9459Szrj ( ME ( ( S + A ) ) )) 206*a9fa9459Szrj 207*a9fa9459SzrjARC_RELOC_HOWTO(ARC_32_ME_S, 105, \ 208*a9fa9459Szrj 2, \ 209*a9fa9459Szrj 32, \ 210*a9fa9459Szrj replace_limms, \ 211*a9fa9459Szrj signed, \ 212*a9fa9459Szrj ( ME ( ( S + A ) ) )) 213*a9fa9459Szrj 214*a9fa9459SzrjARC_RELOC_HOWTO(ARC_N32_ME, 28, \ 215*a9fa9459Szrj 2, \ 216*a9fa9459Szrj 32, \ 217*a9fa9459Szrj replace_word32, \ 218*a9fa9459Szrj bitfield, \ 219*a9fa9459Szrj ( ME ( ( S - A ) ) )) 220*a9fa9459Szrj 221*a9fa9459SzrjARC_RELOC_HOWTO(ARC_SECTOFF_ME, 29, \ 222*a9fa9459Szrj 2, \ 223*a9fa9459Szrj 32, \ 224*a9fa9459Szrj replace_word32, \ 225*a9fa9459Szrj bitfield, \ 226*a9fa9459Szrj ( ME ( ( ( S - SECTSTART ) + A ) ) )) 227*a9fa9459Szrj 228*a9fa9459SzrjARC_RELOC_HOWTO(ARC_SDA32_ME, 30, \ 229*a9fa9459Szrj 2, \ 230*a9fa9459Szrj 32, \ 231*a9fa9459Szrj replace_limm, \ 232*a9fa9459Szrj signed, \ 233*a9fa9459Szrj ( ME ( ( ( S + A ) - _SDA_BASE_ ) ) )) 234*a9fa9459Szrj 235*a9fa9459SzrjARC_RELOC_HOWTO(ARC_W_ME, 31, \ 236*a9fa9459Szrj 2, \ 237*a9fa9459Szrj 32, \ 238*a9fa9459Szrj replace_word32, \ 239*a9fa9459Szrj bitfield, \ 240*a9fa9459Szrj ( ME ( ( ( S + A ) & ( ~3 ) ) ) )) 241*a9fa9459Szrj 242*a9fa9459SzrjARC_RELOC_HOWTO(AC_SECTOFF_U8, 35, \ 243*a9fa9459Szrj 2, \ 244*a9fa9459Szrj 9, \ 245*a9fa9459Szrj replace_disp9ls, \ 246*a9fa9459Szrj bitfield, \ 247*a9fa9459Szrj ( ( S + A ) - SECTSTART )) 248*a9fa9459Szrj 249*a9fa9459SzrjARC_RELOC_HOWTO(AC_SECTOFF_U8_1, 36, \ 250*a9fa9459Szrj 2, \ 251*a9fa9459Szrj 9, \ 252*a9fa9459Szrj replace_disp9ls, \ 253*a9fa9459Szrj bitfield, \ 254*a9fa9459Szrj ( ( ( S + A ) - SECTSTART ) >> 1 )) 255*a9fa9459Szrj 256*a9fa9459SzrjARC_RELOC_HOWTO(AC_SECTOFF_U8_2, 37, \ 257*a9fa9459Szrj 2, \ 258*a9fa9459Szrj 9, \ 259*a9fa9459Szrj replace_disp9ls, \ 260*a9fa9459Szrj bitfield, \ 261*a9fa9459Szrj ( ( ( S + A ) - SECTSTART ) >> 2 )) 262*a9fa9459Szrj 263*a9fa9459SzrjARC_RELOC_HOWTO(AC_SECTFOFF_S9, 38, \ 264*a9fa9459Szrj 2, \ 265*a9fa9459Szrj 9, \ 266*a9fa9459Szrj replace_disp9ls, \ 267*a9fa9459Szrj bitfield, \ 268*a9fa9459Szrj ( ( S + A ) - SECTSTART )) 269*a9fa9459Szrj 270*a9fa9459SzrjARC_RELOC_HOWTO(AC_SECTFOFF_S9_1, 39, \ 271*a9fa9459Szrj 2, \ 272*a9fa9459Szrj 9, \ 273*a9fa9459Szrj replace_disp9ls, \ 274*a9fa9459Szrj bitfield, \ 275*a9fa9459Szrj ( ( ( S + A ) - SECTSTART ) >> 1 )) 276*a9fa9459Szrj 277*a9fa9459SzrjARC_RELOC_HOWTO(AC_SECTFOFF_S9_2, 40, \ 278*a9fa9459Szrj 2, \ 279*a9fa9459Szrj 9, \ 280*a9fa9459Szrj replace_disp9ls, \ 281*a9fa9459Szrj bitfield, \ 282*a9fa9459Szrj ( ( ( S + A ) - SECTSTART ) >> 2 )) 283*a9fa9459Szrj 284*a9fa9459SzrjARC_RELOC_HOWTO(ARC_SECTOFF_ME_1, 41, \ 285*a9fa9459Szrj 2, \ 286*a9fa9459Szrj 32, \ 287*a9fa9459Szrj replace_word32, \ 288*a9fa9459Szrj bitfield, \ 289*a9fa9459Szrj ( ME ( ( ( ( S - SECTSTART ) + A ) >> 1 ) ) )) 290*a9fa9459Szrj 291*a9fa9459SzrjARC_RELOC_HOWTO(ARC_SECTOFF_ME_2, 42, \ 292*a9fa9459Szrj 2, \ 293*a9fa9459Szrj 32, \ 294*a9fa9459Szrj replace_word32, \ 295*a9fa9459Szrj bitfield, \ 296*a9fa9459Szrj ( ME ( ( ( ( S - SECTSTART ) + A ) >> 2 ) ) )) 297*a9fa9459Szrj 298*a9fa9459SzrjARC_RELOC_HOWTO(ARC_SECTOFF_1, 43, \ 299*a9fa9459Szrj 2, \ 300*a9fa9459Szrj 32, \ 301*a9fa9459Szrj replace_word32, \ 302*a9fa9459Szrj bitfield, \ 303*a9fa9459Szrj ( ( ( S - SECTSTART ) + A ) >> 1 )) 304*a9fa9459Szrj 305*a9fa9459SzrjARC_RELOC_HOWTO(ARC_SECTOFF_2, 44, \ 306*a9fa9459Szrj 2, \ 307*a9fa9459Szrj 32, \ 308*a9fa9459Szrj replace_word32, \ 309*a9fa9459Szrj bitfield, \ 310*a9fa9459Szrj ( ( ( S - SECTSTART ) + A ) >> 2 )) 311*a9fa9459Szrj 312*a9fa9459SzrjARC_RELOC_HOWTO(ARC_SDA16_ST2, 48, \ 313*a9fa9459Szrj 1, \ 314*a9fa9459Szrj 9, \ 315*a9fa9459Szrj replace_disp9s1, \ 316*a9fa9459Szrj signed, \ 317*a9fa9459Szrj ( ( ( S + A ) - _SDA_BASE_ ) >> 2 )) 318*a9fa9459Szrj 319*a9fa9459SzrjARC_RELOC_HOWTO(ARC_32_PCREL, 49, \ 320*a9fa9459Szrj 2, \ 321*a9fa9459Szrj 32, \ 322*a9fa9459Szrj replace_word32, \ 323*a9fa9459Szrj signed, \ 324*a9fa9459Szrj ( ( S + A ) - PDATA )) 325*a9fa9459Szrj 326*a9fa9459SzrjARC_RELOC_HOWTO(ARC_PC32, 50, \ 327*a9fa9459Szrj 2, \ 328*a9fa9459Szrj 32, \ 329*a9fa9459Szrj replace_word32, \ 330*a9fa9459Szrj signed, \ 331*a9fa9459Szrj ( ME ( ( ( S + A ) - P ) ) )) 332*a9fa9459Szrj 333*a9fa9459SzrjARC_RELOC_HOWTO(ARC_GOT32, 59, \ 334*a9fa9459Szrj 2, \ 335*a9fa9459Szrj 32, \ 336*a9fa9459Szrj replace_word32, \ 337*a9fa9459Szrj dont, \ 338*a9fa9459Szrj ( G + A )) 339*a9fa9459Szrj 340*a9fa9459SzrjARC_RELOC_HOWTO(ARC_GOTPC32, 51, \ 341*a9fa9459Szrj 2, \ 342*a9fa9459Szrj 32, \ 343*a9fa9459Szrj replace_word32, \ 344*a9fa9459Szrj signed, \ 345*a9fa9459Szrj ( ME ( ( ( ( GOT + G ) + A ) - P ) ) )) 346*a9fa9459Szrj 347*a9fa9459SzrjARC_RELOC_HOWTO(ARC_PLT32, 52, \ 348*a9fa9459Szrj 2, \ 349*a9fa9459Szrj 32, \ 350*a9fa9459Szrj replace_word32, \ 351*a9fa9459Szrj signed, \ 352*a9fa9459Szrj ( ME ( ( ( L + A ) - P ) ) )) 353*a9fa9459Szrj 354*a9fa9459SzrjARC_RELOC_HOWTO(ARC_COPY, 53, \ 355*a9fa9459Szrj 2, \ 356*a9fa9459Szrj 0, \ 357*a9fa9459Szrj replace_none, \ 358*a9fa9459Szrj signed, \ 359*a9fa9459Szrj none) 360*a9fa9459Szrj 361*a9fa9459SzrjARC_RELOC_HOWTO(ARC_GLOB_DAT, 54, \ 362*a9fa9459Szrj 2, \ 363*a9fa9459Szrj 32, \ 364*a9fa9459Szrj replace_word32, \ 365*a9fa9459Szrj signed, \ 366*a9fa9459Szrj S) 367*a9fa9459Szrj 368*a9fa9459SzrjARC_RELOC_HOWTO(ARC_JMP_SLOT, 55, \ 369*a9fa9459Szrj 2, \ 370*a9fa9459Szrj 32, \ 371*a9fa9459Szrj replace_word32, \ 372*a9fa9459Szrj signed, \ 373*a9fa9459Szrj ( ME ( S ) )) 374*a9fa9459Szrj 375*a9fa9459SzrjARC_RELOC_HOWTO(ARC_RELATIVE, 56, \ 376*a9fa9459Szrj 2, \ 377*a9fa9459Szrj 32, \ 378*a9fa9459Szrj replace_word32, \ 379*a9fa9459Szrj signed, \ 380*a9fa9459Szrj ( ME ( ( B + A ) ) )) 381*a9fa9459Szrj 382*a9fa9459SzrjARC_RELOC_HOWTO(ARC_GOTOFF, 57, \ 383*a9fa9459Szrj 2, \ 384*a9fa9459Szrj 32, \ 385*a9fa9459Szrj replace_word32, \ 386*a9fa9459Szrj signed, \ 387*a9fa9459Szrj ( ME ( ( ( S + A ) - GOT ) ) )) 388*a9fa9459Szrj 389*a9fa9459SzrjARC_RELOC_HOWTO(ARC_GOTPC, 58, \ 390*a9fa9459Szrj 2, \ 391*a9fa9459Szrj 32, \ 392*a9fa9459Szrj replace_word32, \ 393*a9fa9459Szrj signed, \ 394*a9fa9459Szrj ( ME ( ( GOT_BEGIN - P ) ) )) 395*a9fa9459Szrj 396*a9fa9459SzrjARC_RELOC_HOWTO(ARC_S21W_PCREL_PLT, 60, \ 397*a9fa9459Szrj 2, \ 398*a9fa9459Szrj 19, \ 399*a9fa9459Szrj replace_disp21w, \ 400*a9fa9459Szrj signed, \ 401*a9fa9459Szrj ( ME ( ( ( ( L + A ) - P ) >> 2 ) ) )) 402*a9fa9459Szrj 403*a9fa9459SzrjARC_RELOC_HOWTO(ARC_S25H_PCREL_PLT, 61, \ 404*a9fa9459Szrj 2, \ 405*a9fa9459Szrj 24, \ 406*a9fa9459Szrj replace_disp25h, \ 407*a9fa9459Szrj signed, \ 408*a9fa9459Szrj ( ME ( ( ( ( L + A ) - P ) >> 1 ) ) )) 409*a9fa9459Szrj 410*a9fa9459SzrjARC_RELOC_HOWTO(ARC_TLS_DTPMOD, 66, \ 411*a9fa9459Szrj 2, \ 412*a9fa9459Szrj 32, \ 413*a9fa9459Szrj replace_word32, \ 414*a9fa9459Szrj dont, \ 415*a9fa9459Szrj 0) 416*a9fa9459Szrj 417*a9fa9459SzrjARC_RELOC_HOWTO(ARC_TLS_TPOFF, 68, \ 418*a9fa9459Szrj 2, \ 419*a9fa9459Szrj 32, \ 420*a9fa9459Szrj replace_word32, \ 421*a9fa9459Szrj dont, \ 422*a9fa9459Szrj 0) 423*a9fa9459Szrj 424*a9fa9459SzrjARC_RELOC_HOWTO(ARC_TLS_GD_GOT, 69, \ 425*a9fa9459Szrj 2, \ 426*a9fa9459Szrj 32, \ 427*a9fa9459Szrj replace_word32, \ 428*a9fa9459Szrj dont, \ 429*a9fa9459Szrj ( ME ( ( ( G + GOT ) - P ) ) )) 430*a9fa9459Szrj 431*a9fa9459SzrjARC_RELOC_HOWTO(ARC_TLS_GD_LD, 70, \ 432*a9fa9459Szrj 2, \ 433*a9fa9459Szrj 0, \ 434*a9fa9459Szrj replace_none, \ 435*a9fa9459Szrj dont, \ 436*a9fa9459Szrj 0) 437*a9fa9459Szrj 438*a9fa9459SzrjARC_RELOC_HOWTO(ARC_TLS_GD_CALL, 71, \ 439*a9fa9459Szrj 2, \ 440*a9fa9459Szrj 32, \ 441*a9fa9459Szrj replace_word32, \ 442*a9fa9459Szrj dont, \ 443*a9fa9459Szrj 0) 444*a9fa9459Szrj 445*a9fa9459SzrjARC_RELOC_HOWTO(ARC_TLS_IE_GOT, 72, \ 446*a9fa9459Szrj 2, \ 447*a9fa9459Szrj 32, \ 448*a9fa9459Szrj replace_word32, \ 449*a9fa9459Szrj dont, \ 450*a9fa9459Szrj ( ME ( ( ( G + GOT ) - P ) ) )) 451*a9fa9459Szrj 452*a9fa9459SzrjARC_RELOC_HOWTO(ARC_TLS_DTPOFF, 67, \ 453*a9fa9459Szrj 2, \ 454*a9fa9459Szrj 32, \ 455*a9fa9459Szrj replace_word32, \ 456*a9fa9459Szrj dont, \ 457*a9fa9459Szrj ( ME ( ( S - TLS_REL ) ) )) 458*a9fa9459Szrj 459*a9fa9459SzrjARC_RELOC_HOWTO(ARC_TLS_DTPOFF_S9, 73, \ 460*a9fa9459Szrj 2, \ 461*a9fa9459Szrj 32, \ 462*a9fa9459Szrj replace_word32, \ 463*a9fa9459Szrj dont, \ 464*a9fa9459Szrj ( ME ( ( S - TLS_REL ) ) )) 465*a9fa9459Szrj 466*a9fa9459SzrjARC_RELOC_HOWTO(ARC_TLS_LE_S9, 74, \ 467*a9fa9459Szrj 2, \ 468*a9fa9459Szrj 32, \ 469*a9fa9459Szrj replace_word32, \ 470*a9fa9459Szrj dont, \ 471*a9fa9459Szrj ( ME ( ( ( S + TCB_SIZE ) - TLS_REL ) ) )) 472*a9fa9459Szrj 473*a9fa9459SzrjARC_RELOC_HOWTO(ARC_TLS_LE_32, 75, \ 474*a9fa9459Szrj 2, \ 475*a9fa9459Szrj 32, \ 476*a9fa9459Szrj replace_word32, \ 477*a9fa9459Szrj dont, \ 478*a9fa9459Szrj ( ME ( ( ( ( S + A ) + TCB_SIZE ) - TLS_REL ) ) )) 479*a9fa9459Szrj 480*a9fa9459SzrjARC_RELOC_HOWTO(ARC_S25W_PCREL_PLT, 76, \ 481*a9fa9459Szrj 2, \ 482*a9fa9459Szrj 23, \ 483*a9fa9459Szrj replace_disp25w, \ 484*a9fa9459Szrj signed, \ 485*a9fa9459Szrj ( ME ( ( ( ( L + A ) - P ) >> 2 ) ) )) 486*a9fa9459Szrj 487*a9fa9459SzrjARC_RELOC_HOWTO(ARC_S21H_PCREL_PLT, 77, \ 488*a9fa9459Szrj 2, \ 489*a9fa9459Szrj 20, \ 490*a9fa9459Szrj replace_disp21h, \ 491*a9fa9459Szrj signed, \ 492*a9fa9459Szrj ( ME ( ( ( ( L + A ) - P ) >> 1 ) ) )) 493*a9fa9459Szrj 494*a9fa9459SzrjARC_RELOC_HOWTO(ARC_NPS_CMEM16, 78, \ 495*a9fa9459Szrj 2, \ 496*a9fa9459Szrj 16, \ 497*a9fa9459Szrj replace_bits16, \ 498*a9fa9459Szrj dont, \ 499*a9fa9459Szrj ( ME ( S + A ))) 500