Author: Fangrui Song Date: 2022-02-04T15:16:21-08:00 New Revision: 31868bef9568751f64a1e3855bb0ef5cd9e93041
URL: https://github.com/llvm/llvm-project/commit/31868bef9568751f64a1e3855bb0ef5cd9e93041 DIFF: https://github.com/llvm/llvm-project/commit/31868bef9568751f64a1e3855bb0ef5cd9e93041.diff LOG: [yaml2obj] Support R_PPC_* relocation types (cherry picked from commit c161b30f5c23ef9fe246d6bdf875c5a08cf2df9f) Added: llvm/test/tools/llvm-readobj/ELF/reloc-types-ppc.test Modified: llvm/lib/ObjectYAML/ELFYAML.cpp Removed: ################################################################################ diff --git a/llvm/lib/ObjectYAML/ELFYAML.cpp b/llvm/lib/ObjectYAML/ELFYAML.cpp index d597148b98ab4..3d4cd4088e9fc 100644 --- a/llvm/lib/ObjectYAML/ELFYAML.cpp +++ b/llvm/lib/ObjectYAML/ELFYAML.cpp @@ -839,6 +839,9 @@ void ScalarEnumerationTraits<ELFYAML::ELF_REL>::enumeration( case ELF::EM_CSKY: #include "llvm/BinaryFormat/ELFRelocs/CSKY.def" break; + case ELF::EM_PPC: +#include "llvm/BinaryFormat/ELFRelocs/PowerPC.def" + break; case ELF::EM_PPC64: #include "llvm/BinaryFormat/ELFRelocs/PowerPC64.def" break; diff --git a/llvm/test/tools/llvm-readobj/ELF/reloc-types-ppc.test b/llvm/test/tools/llvm-readobj/ELF/reloc-types-ppc.test new file mode 100644 index 0000000000000..594d2da6c387a --- /dev/null +++ b/llvm/test/tools/llvm-readobj/ELF/reloc-types-ppc.test @@ -0,0 +1,163 @@ +## Test that llvm-readobj shows proper relocation type +## names and values for ppc target. + +# RUN: yaml2obj %s -o %t-ppc.o +# RUN: llvm-readobj -r --expand-relocs %t-ppc.o | FileCheck %s + +# CHECK: Type: R_PPC_NONE (0) +# CHECK: Type: R_PPC_ADDR32 (1) +# CHECK: Type: R_PPC_ADDR24 (2) +# CHECK: Type: R_PPC_ADDR16 (3) +# CHECK: Type: R_PPC_ADDR16_LO (4) +# CHECK: Type: R_PPC_ADDR16_HI (5) +# CHECK: Type: R_PPC_ADDR16_HA (6) +# CHECK: Type: R_PPC_ADDR14 (7) +# CHECK: Type: R_PPC_ADDR14_BRTAKEN (8) +# CHECK: Type: R_PPC_ADDR14_BRNTAKEN (9) +# CHECK: Type: R_PPC_REL24 (10) +# CHECK: Type: R_PPC_REL14 (11) +# CHECK: Type: R_PPC_REL14_BRTAKEN (12) +# CHECK: Type: R_PPC_REL14_BRNTAKEN (13) +# CHECK: Type: R_PPC_GOT16 (14) +# CHECK: Type: R_PPC_GOT16_LO (15) +# CHECK: Type: R_PPC_GOT16_HI (16) +# CHECK: Type: R_PPC_GOT16_HA (17) +# CHECK: Type: R_PPC_PLTREL24 (18) +# CHECK: Type: R_PPC_COPY (19) +# CHECK: Type: R_PPC_GLOB_DAT (20) +# CHECK: Type: R_PPC_JMP_SLOT (21) +# CHECK: Type: R_PPC_RELATIVE (22) +# CHECK: Type: R_PPC_LOCAL24PC (23) +# CHECK: Type: R_PPC_UADDR32 (24) +# CHECK: Type: R_PPC_UADDR16 (25) +# CHECK: Type: R_PPC_REL32 (26) +# CHECK: Type: R_PPC_PLT32 (27) +# CHECK: Type: R_PPC_PLTREL32 (28) +# CHECK: Type: R_PPC_PLT16_LO (29) +# CHECK: Type: R_PPC_PLT16_HI (30) +# CHECK: Type: R_PPC_PLT16_HA (31) +# CHECK: Type: R_PPC_SDAREL16 (32) +# CHECK: Type: R_PPC_SECTOFF (33) +# CHECK: Type: R_PPC_SECTOFF_LO (34) +# CHECK: Type: R_PPC_SECTOFF_HI (35) +# CHECK: Type: R_PPC_SECTOFF_HA (36) +# CHECK: Type: R_PPC_ADDR30 (37) +# CHECK: Type: R_PPC_TLS (67) +# CHECK: Type: R_PPC_DTPMOD32 (68) +# CHECK: Type: R_PPC_TPREL16 (69) +# CHECK: Type: R_PPC_TPREL16_LO (70) +# CHECK: Type: R_PPC_TPREL16_HI (71) +# CHECK: Type: R_PPC_TPREL16_HA (72) +# CHECK: Type: R_PPC_TPREL32 (73) +# CHECK: Type: R_PPC_DTPREL16 (74) +# CHECK: Type: R_PPC_DTPREL16_LO (75) +# CHECK: Type: R_PPC_DTPREL16_HI (76) +# CHECK: Type: R_PPC_DTPREL16_HA (77) +# CHECK: Type: R_PPC_DTPREL32 (78) +# CHECK: Type: R_PPC_GOT_TLSGD16 (79) +# CHECK: Type: R_PPC_GOT_TLSGD16_LO (80) +# CHECK: Type: R_PPC_GOT_TLSGD16_HI (81) +# CHECK: Type: R_PPC_GOT_TLSGD16_HA (82) +# CHECK: Type: R_PPC_GOT_TLSLD16 (83) +# CHECK: Type: R_PPC_GOT_TLSLD16_LO (84) +# CHECK: Type: R_PPC_GOT_TLSLD16_HI (85) +# CHECK: Type: R_PPC_GOT_TLSLD16_HA (86) +# CHECK: Type: R_PPC_GOT_TPREL16 (87) +# CHECK: Type: R_PPC_GOT_TPREL16_LO (88) +# CHECK: Type: R_PPC_GOT_TPREL16_HI (89) +# CHECK: Type: R_PPC_GOT_TPREL16_HA (90) +# CHECK: Type: R_PPC_GOT_DTPREL16 (91) +# CHECK: Type: R_PPC_GOT_DTPREL16_LO (92) +# CHECK: Type: R_PPC_GOT_DTPREL16_HI (93) +# CHECK: Type: R_PPC_GOT_DTPREL16_HA (94) +# CHECK: Type: R_PPC_TLSGD (95) +# CHECK: Type: R_PPC_TLSLD (96) +# CHECK: Type: R_PPC_IRELATIVE (248) +# CHECK: Type: R_PPC_REL16 (249) +# CHECK: Type: R_PPC_REL16_LO (250) +# CHECK: Type: R_PPC_REL16_HI (251) +# CHECK: Type: R_PPC_REL16_HA (252) + +--- !ELF +FileHeader: + Class: ELFCLASS32 + Data: ELFDATA2MSB + Type: ET_REL + Machine: EM_PPC +Sections: + - Name: .rela.text + Type: SHT_RELA + Relocations: + - Type: R_PPC_NONE + - Type: R_PPC_ADDR32 + - Type: R_PPC_ADDR24 + - Type: R_PPC_ADDR16 + - Type: R_PPC_ADDR16_LO + - Type: R_PPC_ADDR16_HI + - Type: R_PPC_ADDR16_HA + - Type: R_PPC_ADDR14 + - Type: R_PPC_ADDR14_BRTAKEN + - Type: R_PPC_ADDR14_BRNTAKEN + - Type: R_PPC_REL24 + - Type: R_PPC_REL14 + - Type: R_PPC_REL14_BRTAKEN + - Type: R_PPC_REL14_BRNTAKEN + - Type: R_PPC_GOT16 + - Type: R_PPC_GOT16_LO + - Type: R_PPC_GOT16_HI + - Type: R_PPC_GOT16_HA + - Type: R_PPC_PLTREL24 + - Type: R_PPC_COPY + - Type: R_PPC_GLOB_DAT + - Type: R_PPC_JMP_SLOT + - Type: R_PPC_RELATIVE + - Type: R_PPC_LOCAL24PC + - Type: R_PPC_UADDR32 + - Type: R_PPC_UADDR16 + - Type: R_PPC_REL32 + - Type: R_PPC_PLT32 + - Type: R_PPC_PLTREL32 + - Type: R_PPC_PLT16_LO + - Type: R_PPC_PLT16_HI + - Type: R_PPC_PLT16_HA + - Type: R_PPC_SDAREL16 + - Type: R_PPC_SECTOFF + - Type: R_PPC_SECTOFF_LO + - Type: R_PPC_SECTOFF_HI + - Type: R_PPC_SECTOFF_HA + - Type: R_PPC_ADDR30 + - Type: R_PPC_TLS + - Type: R_PPC_DTPMOD32 + - Type: R_PPC_TPREL16 + - Type: R_PPC_TPREL16_LO + - Type: R_PPC_TPREL16_HI + - Type: R_PPC_TPREL16_HA + - Type: R_PPC_TPREL32 + - Type: R_PPC_DTPREL16 + - Type: R_PPC_DTPREL16_LO + - Type: R_PPC_DTPREL16_HI + - Type: R_PPC_DTPREL16_HA + - Type: R_PPC_DTPREL32 + - Type: R_PPC_GOT_TLSGD16 + - Type: R_PPC_GOT_TLSGD16_LO + - Type: R_PPC_GOT_TLSGD16_HI + - Type: R_PPC_GOT_TLSGD16_HA + - Type: R_PPC_GOT_TLSLD16 + - Type: R_PPC_GOT_TLSLD16_LO + - Type: R_PPC_GOT_TLSLD16_HI + - Type: R_PPC_GOT_TLSLD16_HA + - Type: R_PPC_GOT_TPREL16 + - Type: R_PPC_GOT_TPREL16_LO + - Type: R_PPC_GOT_TPREL16_HI + - Type: R_PPC_GOT_TPREL16_HA + - Type: R_PPC_GOT_DTPREL16 + - Type: R_PPC_GOT_DTPREL16_LO + - Type: R_PPC_GOT_DTPREL16_HI + - Type: R_PPC_GOT_DTPREL16_HA + - Type: R_PPC_TLSGD + - Type: R_PPC_TLSLD + - Type: R_PPC_IRELATIVE + - Type: R_PPC_REL16 + - Type: R_PPC_REL16_LO + - Type: R_PPC_REL16_HI + - Type: R_PPC_REL16_HA _______________________________________________ llvm-branch-commits mailing list llvm-branch-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-branch-commits