[BACK]Return to aarch64.h CVS log [TXT][DIR] Up to [cvs.NetBSD.org] / src / external / gpl3 / binutils.old / dist / elfcpp

Annotation of src/external/gpl3/binutils.old/dist/elfcpp/aarch64.h, Revision 1.4

1.1       christos    1: // aarch64.h -- ELF definitions specific to AARCH64  -*- C++ -*-
                      2:
1.4     ! christos    3: // Copyright (C) 2014-2018 Free Software Foundation, Inc.
1.1       christos    4: // Written by Jing Yu (jingyu@google.com)
                      5:
                      6: // This file is part of elfcpp.
                      7:
                      8: // This program is free software; you can redistribute it and/or
                      9: // modify it under the terms of the GNU Library General Public License
                     10: // as published by the Free Software Foundation; either version 2, or
                     11: // (at your option) any later version.
                     12:
                     13: // In addition to the permissions in the GNU Library General Public
                     14: // License, the Free Software Foundation gives you unlimited
                     15: // permission to link the compiled version of this file into
                     16: // combinations with other programs, and to distribute those
                     17: // combinations without any restriction coming from the use of this
                     18: // file.  (The Library Public License restrictions do apply in other
                     19: // respects; for example, they cover modification of the file, and
                     20: /// distribution when not linked into a combined executable.)
                     21:
                     22: // This program is distributed in the hope that it will be useful, but
                     23: // WITHOUT ANY WARRANTY; without even the implied warranty of
                     24: // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
                     25: // Library General Public License for more details.
                     26:
                     27: // You should have received a copy of the GNU Library General Public
                     28: // License along with this program; if not, write to the Free Software
                     29: // Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston, MA
                     30: // 02110-1301, USA.
                     31:
                     32: #ifndef ELFCPP_AARCH64_H
                     33: #define ELFCPP_AARCH64_H
                     34:
                     35: namespace elfcpp
                     36: {
                     37:
                     38: // The relocation type information is taken from:
                     39: //
                     40: //   ELF for the ARM 64-bit Architecture (AArch64)
                     41: //   Document number: ARM IHI 0056B, current through AArch64 ABI release 1.0
                     42: //   Date of Issue: 22nd May, 2013
                     43: //
                     44:
                     45: enum
                     46: {
                     47:   // Null relocation codes
                     48:   R_AARCH64_NONE = 0,          // None
                     49:   R_AARCH64_withdrawn = 256,   // Treat as R_AARCH64_NONE
                     50:
                     51:   // Static relocations
                     52:   R_AARCH64_ABS64 = 257,       // S + A
                     53:   R_AARCH64_ABS32 = 258,       // S + A
                     54:   R_AARCH64_ABS16 = 259,       // S + A
                     55:   R_AARCH64_PREL64 = 260,      // S + A - P
                     56:   R_AARCH64_PREL32 = 261,      // S + A - P
                     57:   R_AARCH64_PREL16 = 262,      // S + A - P
                     58:   R_AARCH64_MOVW_UABS_G0 = 263,                // S + A
                     59:   R_AARCH64_MOVW_UABS_G0_NC = 264,     // S + A
                     60:   R_AARCH64_MOVW_UABS_G1 = 265,                // S + A
                     61:   R_AARCH64_MOVW_UABS_G1_NC = 266,     // S + A
                     62:   R_AARCH64_MOVW_UABS_G2 = 267,                // S + A
                     63:   R_AARCH64_MOVW_UABS_G2_NC = 268,     // S + A
                     64:   R_AARCH64_MOVW_UABS_G3 = 269,                // S + A
                     65:   R_AARCH64_MOVW_SABS_G0 = 270,                // S + A
                     66:   R_AARCH64_MOVW_SABS_G1 = 271,                // S + A
                     67:   R_AARCH64_MOVW_SABS_G2 = 272,                // S + A
                     68:   R_AARCH64_LD_PREL_LO19 = 273,                // S + A - P
                     69:   R_AARCH64_ADR_PREL_LO21 = 274,       // S + A - P
                     70:   R_AARCH64_ADR_PREL_PG_HI21 = 275,    // Page(S+A) - Page(P)
                     71:   R_AARCH64_ADR_PREL_PG_HI21_NC = 276, // Page(S+A) - Page(P)
                     72:   R_AARCH64_ADD_ABS_LO12_NC = 277,     // S + A
                     73:   R_AARCH64_LDST8_ABS_LO12_NC = 278,   // S + A
                     74:   R_AARCH64_TSTBR14 = 279,             // S + A - P
                     75:   R_AARCH64_CONDBR19 = 280,            // S + A - P
                     76:   R_AARCH64_JUMP26 = 282,              // S + A - P
                     77:   R_AARCH64_CALL26 = 283,              // S + A - P
                     78:   R_AARCH64_LDST16_ABS_LO12_NC = 284,  // S + A
                     79:   R_AARCH64_LDST32_ABS_LO12_NC = 285,  // S + A
                     80:   R_AARCH64_LDST64_ABS_LO12_NC = 286,  // S + A
                     81:   R_AARCH64_MOVW_PREL_G0 = 287,                // S + A - P
                     82:   R_AARCH64_MOVW_PREL_G0_NC = 288,     // S + A - P
                     83:   R_AARCH64_MOVW_PREL_G1 = 289,                // S + A - P
                     84:   R_AARCH64_MOVW_PREL_G1_NC = 290,     // S + A - P
                     85:   R_AARCH64_MOVW_PREL_G2 = 291,                // S + A - P
                     86:   R_AARCH64_MOVW_PREL_G2_NC = 292,     // S + A - P
                     87:   R_AARCH64_MOVW_PREL_G3 = 293,                // S + A - P
                     88:   R_AARCH64_LDST128_ABS_LO12_NC = 299, // S + A
                     89:   R_AARCH64_MOVW_GOTOFF_G0 = 300,      // G(GDAT(S+A))-GOT
                     90:   R_AARCH64_MOVW_GOTOFF_G0_NC = 301,   // G(GDAT(S+A))-GOT
                     91:   R_AARCH64_MOVW_GOTOFF_G1 = 302,      // G(GDAT(S+A))-GOT
                     92:   R_AARCH64_MOVW_GOTOFF_G1_NC = 303,   // G(GDAT(S+A))-GOT
                     93:   R_AARCH64_MOVW_GOTOFF_G2 = 304,      // G(GDAT(S+A))-GOT
                     94:   R_AARCH64_MOVW_GOTOFF_G2_NC = 305,   // G(GDAT(S+A))-GOT
                     95:   R_AARCH64_MOVW_GOTOFF_G3 = 306,      // G(GDAT(S+A))-GOT
                     96:   R_AARCH64_GOTREL64 = 307,            // S + A - GOT
                     97:   R_AARCH64_GOTREL32 = 308,            // S + A - GOT
                     98:   R_AARCH64_GOT_LD_PREL19 = 309,       // G(GDAT(S+A))-P
                     99:   R_AARCH64_LD64_GOTOFF_LO15 = 310,    // G(GDAT(S+A))-GOT
                    100:   R_AARCH64_ADR_GOT_PAGE = 311,                // Page(G(GDAT(S+A)))-Page(P)
                    101:   R_AARCH64_LD64_GOT_LO12_NC = 312,    // G(GDAT(S+A))
                    102:   R_AARCH64_LD64_GOTPAGE_LO15 = 313,   // G(GDAT(S+A))-Page(GOT)
                    103:
                    104:   // Relocations for thread-local storage
                    105:   R_AARCH64_TLSGD_ADR_PREL21 = 512,            // G(GTLSIDX(S,A)) - P
                    106:   R_AARCH64_TLSGD_ADR_PAGE21 = 513,            // Page(G(GTLSIDX(S,A)))-Page(P)
                    107:   R_AARCH64_TLSGD_ADD_LO12_NC = 514,           // G(GTLSICX(S,A))
                    108:   R_AARCH64_TLSGD_MOVW_G1 = 515,               // G(GTLSIDX(S,A)) - GOT
                    109:   R_AARCH64_TLSGD_MOVW_G0_NC = 516,            // G(GTLSIDX(S,A)) - GOT
                    110:
                    111:   R_AARCH64_TLSLD_ADR_PREL21 = 517,            // G(GLDM(S)) - P
                    112:   R_AARCH64_TLSLD_ADR_PAGE21 = 518,            // Page(G(GLDM(S))) - Page(P)
                    113:   R_AARCH64_TLSLD_ADD_LO12_NC = 519,           // G(GLDM(S))
                    114:   R_AARCH64_TLSLD_MOVW_G1 = 520,               // G(GLDM(S)) - GOT
                    115:   R_AARCH64_TLSLD_MOVW_G0_NC = 521,            // G(GLDM(S)) - GOT
                    116:   R_AARCH64_TLSLD_LD_PREL19 = 522,             // G(GLDM(S)) - P
                    117:   R_AARCH64_TLSLD_MOVW_DTPREL_G2 = 523,                // DTPREL(S+A)
                    118:   R_AARCH64_TLSLD_MOVW_DTPREL_G1 = 524,                // DTPREL(S+A)
                    119:   R_AARCH64_TLSLD_MOVW_DTPREL_G1_NC = 525,     // DTPREL(S+A)
                    120:   R_AARCH64_TLSLD_MOVW_DTPREL_G0 = 526,                // DTPREL(S+A)
                    121:   R_AARCH64_TLSLD_MOVW_DTPREL_G0_NC = 527,     // DTPREL(S+A)
                    122:   R_AARCH64_TLSLD_ADD_DTPREL_HI12 = 528,       // DTPREL(S+A)
                    123:   R_AARCH64_TLSLD_ADD_DTPREL_LO12 = 529,       // DTPREL(S+A)
                    124:   R_AARCH64_TLSLD_ADD_DTPREL_LO12_NC = 530,    // DTPREL(S+A)
                    125:   R_AARCH64_TLSLD_LDST8_DTPREL_LO12 = 531,     // DTPREL(S+A)
                    126:   R_AARCH64_TLSLD_LDST8_DTPREL_LO12_NC = 532,  // DTPREL(S+A)
                    127:   R_AARCH64_TLSLD_LDST16_DTPREL_LO12 = 533,    // DTPREL(S+A)
                    128:   R_AARCH64_TLSLD_LDST16_DTPREL_LO12_NC = 534, // DTPREL(S+A)
                    129:   R_AARCH64_TLSLD_LDST32_DTPREL_LO12 = 535,    // DTPREL(S+A)
                    130:   R_AARCH64_TLSLD_LDST32_DTPREL_LO12_NC = 536, // DTPREL(S+A)
                    131:   R_AARCH64_TLSLD_LDST64_DTPREL_LO12 = 537,    // DTPREL(S+A)
                    132:   R_AARCH64_TLSLD_LDST64_DTPREL_LO12_NC = 538, // DTPREL(S+A)
                    133:   R_AARCH64_TLSIE_MOVW_GOTTPREL_G1 = 539,      // G(GTPREL(S+A)) - GOT
                    134:   R_AARCH64_TLSIE_MOVW_GOTTPREL_G0_NC = 540,   // G(GTPREL(S+A)) - GOT
                    135:   R_AARCH64_TLSIE_ADR_GOTTPREL_PAGE21 = 541,   // Page(G(GTPREL(S+A)))-Page(P)
                    136:   R_AARCH64_TLSIE_LD64_GOTTPREL_LO12_NC = 542, // G(GTPREL(S+A))
                    137:   R_AARCH64_TLSIE_LD_GOTTPREL_PREL19 = 543,    // G(GTPREL(S+A)) - P
                    138:   R_AARCH64_TLSLE_MOVW_TPREL_G2 = 544,         // TPREL(S+A)
                    139:   R_AARCH64_TLSLE_MOVW_TPREL_G1 = 545,         // TPREL(S+A)
                    140:   R_AARCH64_TLSLE_MOVW_TPREL_G1_NC = 546,      // TPREL(S+A)
                    141:   R_AARCH64_TLSLE_MOVW_TPREL_G0 = 547,         // TPREL(S+A)
                    142:   R_AARCH64_TLSLE_MOVW_TPREL_G0_NC = 548,      // TPREL(S+A)
                    143:   R_AARCH64_TLSLE_ADD_TPREL_HI12 = 549,                // TPREL(S+A)
                    144:   R_AARCH64_TLSLE_ADD_TPREL_LO12 = 550,                // TPREL(S+A)
                    145:   R_AARCH64_TLSLE_ADD_TPREL_LO12_NC = 551,     // TPREL(S+A)
                    146:   R_AARCH64_TLSLE_LDST8_TPREL_LO12 = 552,      // TPREL(S+A)
                    147:   R_AARCH64_TLSLE_LDST8_TPREL_LO12_NC = 553,   // TPREL(S+A)
                    148:   R_AARCH64_TLSLE_LDST16_TPREL_LO12 = 554,     // TPREL(S+A)
1.4     ! christos  149:   R_AARCH64_TLSLE_LDST16_TPREL_LO12_NC = 555,  // TPREL(S+A)
1.1       christos  150:   R_AARCH64_TLSLE_LDST32_TPREL_LO12 = 556,     // TPREL(S+A)
                    151:   R_AARCH64_TLSLE_LDST32_TPREL_LO12_NC = 557,  // TPREL(S+A)
                    152:   R_AARCH64_TLSLE_LDST64_TPREL_LO12 = 558,     // TPREL(S+A)
                    153:   R_AARCH64_TLSLE_LDST64_TPREL_LO12_NC = 559,  // TPREL(S+A)
                    154:   R_AARCH64_TLSDESC_LD_PREL19 = 560,   // G(GTLSDESC(S+A)) - P
                    155:   R_AARCH64_TLSDESC_ADR_PREL21 = 561,  // G(GTLSDESC(S+A)) - P
                    156:   R_AARCH64_TLSDESC_ADR_PAGE21 = 562,  // Page(G(GTLSDESC(S+A)))-Page(P)
                    157:   R_AARCH64_TLSDESC_LD64_LO12 = 563,   // G(GTLSDESC(S+A))
                    158:   R_AARCH64_TLSDESC_ADD_LO12 = 564,    // G(GTLSDESC(S+A))
                    159:   R_AARCH64_TLSDESC_OFF_G1 = 565,      // G(GTLSDESC(S+A)) - GOT
                    160:   R_AARCH64_TLSDESC_OFF_G0_NC = 566,   // G(GTLSDESC(S+A)) - GOT
                    161:   R_AARCH64_TLSDESC_LDR = 567,         // None
                    162:   R_AARCH64_TLSDESC_ADD = 568,         // None
                    163:   R_AARCH64_TLSDESC_CALL = 569,                // None
                    164:   R_AARCH64_TLSLE_LDST128_TPREL_LO12 = 570,    // TPREL(S+A)
                    165:   R_AARCH64_TLSLE_LDST128_TPREL_LO12_NC = 571, // TPREL(S+A)
                    166:   R_AARCH64_TLSLD_LDST128_DTPREL_LO12 = 572,   // DTPREL(S+A)
                    167:   R_AARCH64_TLSLD_LDST128_DTPREL_LO12_NC = 573,        // DTPREL(S+A)
                    168:
                    169:   // Dynamic relocations
                    170:   R_AARCH64_COPY = 1024,
                    171:   R_AARCH64_GLOB_DAT = 1025,           // S + A
                    172:   R_AARCH64_JUMP_SLOT = 1026,          // S + A
                    173:   R_AARCH64_RELATIVE = 1027,           // Delta(S) + A
                    174:   // Note (shenhan): the following 2 relocs are different from elf spec from
                    175:   // arm.  In elf docs, TLS_DTPMOD64 is defined as 1029, TLS_DTPREL64 1028.
                    176:   // While actually the bfd linker (and the dynamic linker) treates TLS_DTPMOD64
                    177:   // as 1028, TLS_DTPREL64 1029.  See binutils-gdb/include/elf/aarch64.h.
                    178:   R_AARCH64_TLS_DTPMOD64 = 1028,       // LDM(S)
                    179:   R_AARCH64_TLS_DTPREL64 = 1029,       // DTPREL(S+A)
                    180:   R_AARCH64_TLS_TPREL64 = 1030,                // TPREL(S+A)
                    181:   R_AARCH64_TLSDESC = 1031,            // TLSDESC(S+A)
                    182:   R_AARCH64_IRELATIVE = 1032,          // Indirect(Delta(S) + A)
                    183: };
                    184:
                    185: } // End namespace elfcpp.
                    186:
                    187: #endif // !defined(ELFCPP_AARCH64_H)

CVSweb <webmaster@jp.NetBSD.org>