summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--llvm/test/DebugInfo/X86/DW_AT_location-reference.ll2
-rw-r--r--llvm/test/MC/Sparc/sparc-tls-relocations.s12
-rw-r--r--llvm/test/MC/X86/abs8.s2
-rw-r--r--llvm/test/Object/X86/objdump-disassembly-inline-relocations.test6
-rw-r--r--llvm/test/Object/objdump-relocations.test10
-rw-r--r--llvm/test/Object/objdump-shndx.test2
-rw-r--r--llvm/tools/llvm-objdump/llvm-objdump.cpp82
7 files changed, 27 insertions, 89 deletions
diff --git a/llvm/test/DebugInfo/X86/DW_AT_location-reference.ll b/llvm/test/DebugInfo/X86/DW_AT_location-reference.ll
index 06633a8437e..7c12e1223c5 100644
--- a/llvm/test/DebugInfo/X86/DW_AT_location-reference.ll
+++ b/llvm/test/DebugInfo/X86/DW_AT_location-reference.ll
@@ -49,7 +49,7 @@
; Check we have a relocation for the debug_loc entry in Linux output.
; LINUX: RELOCATION RECORDS FOR [.rela.debug_info]
; LINUX-NOT: RELOCATION RECORDS
-; LINUX: R_X86_64{{.*}} .debug_loc+0
+; LINUX: R_X86_64{{.*}} .debug_loc
; ModuleID = 'simple.c'
target datalayout = "e-p:32:32:32-i1:8:8-i8:8:8-i16:16:16-i32:32:32-i64:64:64-f32:32:32-f64:64:64-v64:64:64-v128:128:128-a0:0:64-n32"
diff --git a/llvm/test/MC/Sparc/sparc-tls-relocations.s b/llvm/test/MC/Sparc/sparc-tls-relocations.s
index 3d1b80b5f19..3b248aada63 100644
--- a/llvm/test/MC/Sparc/sparc-tls-relocations.s
+++ b/llvm/test/MC/Sparc/sparc-tls-relocations.s
@@ -28,13 +28,13 @@ foo:
! First sequence uses LE_HIX22/LE_LOX10
! OBJDUMP: {{[0-9,a-f]+}}: 31 00 00 00 sethi 0, %i0
-! OBJDUMP: {{[0-9,a-f]+}}: R_SPARC_TLS_LE_HIX22 Unknown
+! OBJDUMP: {{[0-9,a-f]+}}: R_SPARC_TLS_LE_HIX22 Head
! ASM: sethi %tle_hix22(Head), %i0 ! encoding: [0x31,0x00,0x00,0x00]
! ASM: ! fixup A - offset: 0, value: %tle_hix22(Head), kind: fixup_sparc_tls_le_hix22
sethi %tle_hix22(Head), %i0
! OBJDUMP: {{[0-9,a-f]+}}: b0 1e 20 00 xor %i0, 0, %i0
-! OBJDUMP: {{[0-9,a-f]+}}: R_SPARC_TLS_LE_LOX10 Unknown
+! OBJDUMP: {{[0-9,a-f]+}}: R_SPARC_TLS_LE_LOX10 Head
! ASM: xor %i0, %tle_lox10(Head), %i0 ! encoding: [0xb0,0x1e,0x20,0x00]
! ASM: ! fixup A - offset: 0, value: %tle_lox10(Head), kind: fixup_sparc_tls_le_lox10
xor %i0, %tle_lox10(Head), %i0
@@ -44,19 +44,19 @@ foo:
! It uses LDO_HIX22/LDO_LOX10/LDO_ADD/LDM_HI22/LDM_LO10/LDM_ADD/LDM_CALL
! OBJDUMP: {{[0-9,a-f]+}}: 33 00 00 00 sethi 0, %i1
-! OBJDUMP: {{[0-9,a-f]+}}: R_SPARC_TLS_LDO_HIX22 Unknown
+! OBJDUMP: {{[0-9,a-f]+}}: R_SPARC_TLS_LDO_HIX22 Head
! ASM: sethi %tldo_hix22(Head), %i1 ! encoding: [0x33,0b00AAAAAA,A,A]
! ASM: ! fixup A - offset: 0, value: %tldo_hix22(Head), kind: fixup_sparc_tls_ldo_hix22
sethi %tldo_hix22(Head), %i1
! OBJDUMP: {{[0-9,a-f]+}}: 35 00 00 00 sethi 0, %i2
-! OBJDUMP: {{[0-9,a-f]+}}: R_SPARC_TLS_LDM_HI22 Unknown
+! OBJDUMP: {{[0-9,a-f]+}}: R_SPARC_TLS_LDM_HI22 Head
! ASM: sethi %tldm_hi22(Head), %i2 ! encoding: [0x35,0b00AAAAAA,A,A]
! ASM: ! fixup A - offset: 0, value: %tldm_hi22(Head), kind: fixup_sparc_tls_ldm_hi22
sethi %tldm_hi22(Head), %i2
! OBJDUMP: {{[0-9,a-f]+}}: b4 06 a0 00 add %i2, 0, %i2
-! OBJDUMP: {{[0-9,a-f]+}}: R_SPARC_TLS_LDM_LO10 Unknown
+! OBJDUMP: {{[0-9,a-f]+}}: R_SPARC_TLS_LDM_LO10 Head
! ASM: add %i2, %tldm_lo10(Head), %i2 ! encoding: [0xb4,0x06,0b101000AA,A]
! ASM: ! fixup A - offset: 0, value: %tldm_lo10(Head), kind: fixup_sparc_tls_ldm_lo10
add %i2, %tldm_lo10(Head), %i2
@@ -65,7 +65,7 @@ foo:
! add %i0, %i2, %o0, %tldm_add(Head)
! OBJDUMP: {{[0-9,a-f]+}}: b0 1e 60 00 xor %i1, 0, %i0
-! OBJDUMP: {{[0-9,a-f]+}}: R_SPARC_TLS_LDO_LOX10 Unknown
+! OBJDUMP: {{[0-9,a-f]+}}: R_SPARC_TLS_LDO_LOX10 Head
! ASM: xor %i1, %tldo_lox10(Head), %i0 ! encoding: [0xb0,0x1e,0b011000AA,A]
! ASM: ! fixup A - offset: 0, value: %tldo_lox10(Head), kind: fixup_sparc_tls_ldo_lox10
xor %i1, %tldo_lox10(Head), %i0
diff --git a/llvm/test/MC/X86/abs8.s b/llvm/test/MC/X86/abs8.s
index 1172fb08d4e..02abc478ecf 100644
--- a/llvm/test/MC/X86/abs8.s
+++ b/llvm/test/MC/X86/abs8.s
@@ -4,5 +4,5 @@
// 32: 0: 83 ff 00 cmpl $0, %edi
// 32: 00000002: R_386_8 foo
// 64: 0: 83 ff 00 cmpl $0, %edi
-// 64: 0000000000000002: R_X86_64_8 foo+0
+// 64: 0000000000000002: R_X86_64_8 foo
cmp $foo@ABS8, %edi
diff --git a/llvm/test/Object/X86/objdump-disassembly-inline-relocations.test b/llvm/test/Object/X86/objdump-disassembly-inline-relocations.test
index 3871bcbf0b5..e417ec4c163 100644
--- a/llvm/test/Object/X86/objdump-disassembly-inline-relocations.test
+++ b/llvm/test/Object/X86/objdump-disassembly-inline-relocations.test
@@ -91,12 +91,12 @@ ELF-x86-64: main:
ELF-x86-64: 0: 48 83 ec 08 subq $8, %rsp
ELF-x86-64: 4: c7 44 24 04 00 00 00 00 movl $0, 4(%rsp)
ELF-x86-64: c: bf 00 00 00 00 movl $0, %edi
-ELF-x86-64: d: R_X86_64_32S .rodata.str1.1+0
+ELF-x86-64: d: R_X86_64_32S .rodata.str1.1
ELF-x86-64: 11: e8 00 00 00 00 callq 0
-ELF-x86-64: 12: R_X86_64_PC32 puts-4-P
+ELF-x86-64: 12: R_X86_64_PC32 puts-4
ELF-x86-64: 16: 30 c0 xorb %al, %al
ELF-x86-64: 18: e8 00 00 00 00 callq 0
-ELF-x86-64: 19: R_X86_64_PC32 SomeOtherFunction-4-P
+ELF-x86-64: 19: R_X86_64_PC32 SomeOtherFunction-4
ELF-x86-64: 1d: 8b 44 24 04 movl 4(%rsp), %eax
ELF-x86-64: 21: 48 83 c4 08 addq $8, %rsp
ELF-x86-64: 25: c3 ret
diff --git a/llvm/test/Object/objdump-relocations.test b/llvm/test/Object/objdump-relocations.test
index 580a2a47be6..24fd4a32efa 100644
--- a/llvm/test/Object/objdump-relocations.test
+++ b/llvm/test/Object/objdump-relocations.test
@@ -60,9 +60,9 @@ ELF-MIPSEL: R_MIPS_CALL16 puts
ELF-MIPSEL: R_MIPS_CALL16 SomeOtherFunction
WASM: CODE
-WASM-NEXT: R_WEBASSEMBLY_MEMORY_ADDR_SLEB .L.str+0
-WASM-NEXT: R_WEBASSEMBLY_FUNCTION_INDEX_LEB puts+0
-WASM-NEXT: R_WEBASSEMBLY_FUNCTION_INDEX_LEB SomeOtherFunction+0
+WASM-NEXT: R_WEBASSEMBLY_MEMORY_ADDR_SLEB .L.str
+WASM-NEXT: R_WEBASSEMBLY_FUNCTION_INDEX_LEB puts
+WASM-NEXT: R_WEBASSEMBLY_FUNCTION_INDEX_LEB SomeOtherFunction
ELF-complex-x86-64: .text
ELF-complex-x86-64-NEXT: R_X86_64_8 .data-4
@@ -70,6 +70,6 @@ ELF-complex-x86-64-NEXT: R_X86_64_16 .data-4
ELF-complex-x86-64-NEXT: R_X86_64_32 .data-4
ELF-complex-x86-64-NEXT: R_X86_64_32S .data-4
ELF-complex-x86-64-NEXT: R_X86_64_64 .data-4
-ELF-complex-x86-64-NEXT: R_X86_64_PC32 .data-4-P
-ELF-complex-x86-64-NEXT: R_X86_64_32 .data+0
+ELF-complex-x86-64-NEXT: R_X86_64_PC32 .data-4
+ELF-complex-x86-64-NEXT: R_X86_64_32 .data
ELF-complex-x86-64-NEXT: R_X86_64_32 .data+4
diff --git a/llvm/test/Object/objdump-shndx.test b/llvm/test/Object/objdump-shndx.test
index dcdb3c2f093..41b61632750 100644
--- a/llvm/test/Object/objdump-shndx.test
+++ b/llvm/test/Object/objdump-shndx.test
@@ -5,4 +5,4 @@ symbol that has st_shndx == SHN_XINDEX. To print the section name llvm-objdump
has to use the shndx section.
CHECK: RELOCATION RECORDS FOR [.rela.text]:
-CHECK-NEXT: 0000000000000000 R_X86_64_32 bar+0
+CHECK-NEXT: 0000000000000000 R_X86_64_32 bar
diff --git a/llvm/tools/llvm-objdump/llvm-objdump.cpp b/llvm/tools/llvm-objdump/llvm-objdump.cpp
index 48018c36526..a17d7d1758b 100644
--- a/llvm/tools/llvm-objdump/llvm-objdump.cpp
+++ b/llvm/tools/llvm-objdump/llvm-objdump.cpp
@@ -430,8 +430,6 @@ static std::error_code getRelocationValueString(const ELFObjectFile<ELFT> *Obj,
if (!StrTabOrErr)
return errorToErrorCode(StrTabOrErr.takeError());
StringRef StrTab = *StrTabOrErr;
- uint8_t type = RelRef.getType();
- StringRef res;
int64_t addend = 0;
switch (Sec->sh_type) {
default:
@@ -464,76 +462,16 @@ static std::error_code getRelocationValueString(const ELFObjectFile<ELFT> *Obj,
return errorToErrorCode(SymName.takeError());
Target = *SymName;
}
- switch (EF.getHeader()->e_machine) {
- case ELF::EM_X86_64:
- switch (type) {
- case ELF::R_X86_64_PC8:
- case ELF::R_X86_64_PC16:
- case ELF::R_X86_64_PC32: {
- std::string fmtbuf;
- raw_string_ostream fmt(fmtbuf);
- fmt << Target << (addend < 0 ? "" : "+") << addend << "-P";
- fmt.flush();
- Result.append(fmtbuf.begin(), fmtbuf.end());
- } break;
- case ELF::R_X86_64_8:
- case ELF::R_X86_64_16:
- case ELF::R_X86_64_32:
- case ELF::R_X86_64_32S:
- case ELF::R_X86_64_64: {
- std::string fmtbuf;
- raw_string_ostream fmt(fmtbuf);
- fmt << Target << (addend < 0 ? "" : "+") << addend;
- fmt.flush();
- Result.append(fmtbuf.begin(), fmtbuf.end());
- } break;
- default:
- res = "Unknown";
- }
- break;
- case ELF::EM_LANAI:
- case ELF::EM_AVR:
- case ELF::EM_AARCH64: {
- std::string fmtbuf;
- raw_string_ostream fmt(fmtbuf);
- fmt << Target;
- if (addend != 0)
- fmt << (addend < 0 ? "" : "+") << addend;
- fmt.flush();
- Result.append(fmtbuf.begin(), fmtbuf.end());
- break;
- }
- case ELF::EM_386:
- case ELF::EM_IAMCU:
- case ELF::EM_ARM:
- case ELF::EM_HEXAGON:
- case ELF::EM_MIPS:
- case ELF::EM_BPF:
- case ELF::EM_RISCV:
- res = Target;
- break;
- case ELF::EM_WEBASSEMBLY:
- switch (type) {
- case ELF::R_WEBASSEMBLY_DATA: {
- std::string fmtbuf;
- raw_string_ostream fmt(fmtbuf);
- fmt << Target << (addend < 0 ? "" : "+") << addend;
- fmt.flush();
- Result.append(fmtbuf.begin(), fmtbuf.end());
- break;
- }
- case ELF::R_WEBASSEMBLY_FUNCTION:
- res = Target;
- break;
- default:
- res = "Unknown";
- }
- break;
- default:
- res = "Unknown";
- }
- if (Result.empty())
- Result.append(res.begin(), res.end());
+
+ // Default scheme is to print Target, as well as "+ <addend>" for nonzero
+ // addend. Should be acceptable for all normal purposes.
+ std::string fmtbuf;
+ raw_string_ostream fmt(fmtbuf);
+ fmt << Target;
+ if (addend != 0)
+ fmt << (addend < 0 ? "" : "+") << addend;
+ fmt.flush();
+ Result.append(fmtbuf.begin(), fmtbuf.end());
return std::error_code();
}
OpenPOWER on IntegriCloud