mirror of
https://github.com/RPCS3/llvm-mirror.git
synced 2024-11-24 11:42:57 +01:00
Updated ELF relocation test for .eh_frame section
Made sure we were looking a correct section Added Mips32/64 as an extra check Updated llvm-objdump to generate symbolic info for Mips relocations llvm-svn: 178190
This commit is contained in:
parent
09bc7a9c8d
commit
8ed2f31d8e
@ -1634,6 +1634,63 @@ error_code ELFObjectFile<ELFT>::getRelocationTypeName(
|
||||
res = "Unknown";
|
||||
}
|
||||
break;
|
||||
case ELF::EM_MIPS:
|
||||
switch (type) {
|
||||
LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_MIPS_NONE);
|
||||
LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_MIPS_16);
|
||||
LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_MIPS_32);
|
||||
LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_MIPS_REL32);
|
||||
LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_MIPS_26);
|
||||
LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_MIPS_HI16);
|
||||
LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_MIPS_LO16);
|
||||
LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_MIPS_GPREL16);
|
||||
LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_MIPS_LITERAL);
|
||||
LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_MIPS_GOT16);
|
||||
LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_MIPS_PC16);
|
||||
LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_MIPS_CALL16);
|
||||
LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_MIPS_GPREL32);
|
||||
LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_MIPS_SHIFT5);
|
||||
LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_MIPS_SHIFT6);
|
||||
LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_MIPS_64);
|
||||
LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_MIPS_GOT_DISP);
|
||||
LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_MIPS_GOT_PAGE);
|
||||
LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_MIPS_GOT_OFST);
|
||||
LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_MIPS_GOT_HI16);
|
||||
LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_MIPS_GOT_LO16);
|
||||
LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_MIPS_SUB);
|
||||
LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_MIPS_INSERT_A);
|
||||
LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_MIPS_INSERT_B);
|
||||
LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_MIPS_DELETE);
|
||||
LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_MIPS_HIGHER);
|
||||
LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_MIPS_HIGHEST);
|
||||
LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_MIPS_CALL_HI16);
|
||||
LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_MIPS_CALL_LO16);
|
||||
LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_MIPS_SCN_DISP);
|
||||
LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_MIPS_REL16);
|
||||
LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_MIPS_ADD_IMMEDIATE);
|
||||
LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_MIPS_PJUMP);
|
||||
LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_MIPS_RELGOT);
|
||||
LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_MIPS_JALR);
|
||||
LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_MIPS_TLS_DTPMOD32);
|
||||
LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_MIPS_TLS_DTPREL32);
|
||||
LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_MIPS_TLS_DTPMOD64);
|
||||
LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_MIPS_TLS_DTPREL64);
|
||||
LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_MIPS_TLS_GD);
|
||||
LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_MIPS_TLS_LDM);
|
||||
LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_MIPS_TLS_DTPREL_HI16);
|
||||
LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_MIPS_TLS_DTPREL_LO16);
|
||||
LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_MIPS_TLS_GOTTPREL);
|
||||
LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_MIPS_TLS_TPREL32);
|
||||
LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_MIPS_TLS_TPREL64);
|
||||
LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_MIPS_TLS_TPREL_HI16);
|
||||
LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_MIPS_TLS_TPREL_LO16);
|
||||
LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_MIPS_GLOB_DAT);
|
||||
LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_MIPS_COPY);
|
||||
LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_MIPS_JUMP_SLOT);
|
||||
default:
|
||||
res = "Unknown";
|
||||
}
|
||||
break;
|
||||
case ELF::EM_AARCH64:
|
||||
switch (type) {
|
||||
LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_AARCH64_NONE);
|
||||
|
@ -1,5 +1,18 @@
|
||||
// RUN: llvm-mc -filetype=obj %s -o - -triple x86_64-pc-linux | llvm-objdump -r - | FileCheck --check-prefix=X86-64 %s
|
||||
// RUN: llvm-mc -filetype=obj %s -o - -triple i686-pc-linux | llvm-objdump -r - | FileCheck --check-prefix=I686 %s
|
||||
// This just tests that a relocation of the specified type shows up as the first
|
||||
// relocation in the relocation section for .eh_frame when produced by the
|
||||
// assembler.
|
||||
|
||||
// RUN: llvm-mc -filetype=obj %s -o - -triple x86_64-pc-linux | \
|
||||
// RUN: llvm-objdump -r - | FileCheck --check-prefix=X86-64 %s
|
||||
|
||||
// RUN: llvm-mc -filetype=obj %s -o - -triple i686-pc-linux | \
|
||||
// RUN: llvm-objdump -r - | FileCheck --check-prefix=I686 %s
|
||||
|
||||
// RUN: llvm-mc -filetype=obj %s -o - -triple mips-unknown-unknown | \
|
||||
// RUN: llvm-objdump -r - | FileCheck --check-prefix=MIPS32 %s
|
||||
|
||||
// RUN: llvm-mc -filetype=obj %s -o - -triple mips64-unknown-unknown | \
|
||||
// RUN: llvm-objdump -r - | FileCheck --check-prefix=MIPS64 %s
|
||||
|
||||
// PR15448
|
||||
|
||||
@ -7,5 +20,14 @@ func:
|
||||
.cfi_startproc
|
||||
.cfi_endproc
|
||||
|
||||
// X86-64: R_X86_64_PC32
|
||||
// I686: R_386_PC32
|
||||
// X86-64: RELOCATION RECORDS FOR [.eh_frame]:
|
||||
// X86-64-NEXT: R_X86_64_PC32
|
||||
|
||||
// I686: RELOCATION RECORDS FOR [.eh_frame]:
|
||||
// I686-NEXT: R_386_PC32
|
||||
|
||||
// MIPS32: RELOCATION RECORDS FOR [.eh_frame]:
|
||||
// MIPS32-NEXT: R_MIPS_32
|
||||
|
||||
// MIPS64: RELOCATION RECORDS FOR [.eh_frame]:
|
||||
// MIPS64-NEXT: R_MIPS_64
|
||||
|
Loading…
Reference in New Issue
Block a user