From f7d5278fb32b84b6218a222346202ab3af17057c Mon Sep 17 00:00:00 2001 From: Jason W Kim Date: Tue, 19 Oct 2010 17:39:10 +0000 Subject: [PATCH] Fixing r116753 r116756 r116777 The failures in r116753 r116756 were caused by a python issue - Python likes to append 'L' suffix to stringified numbers if the number is larger than a machine int. Unfortunately, this causes a divergence of behavior between 32 and 64 bit python versions. I re-crafted elf-dump/common_dump to take care of these issues by: 1. always printing 0x (makes for easy sed/regex) 2. always print fixed length (exactly 2 + numBits/4 digits long) by mod ((2^numBits) - 1) 3. left-padded with '0' There is a residual common routine that is also used by macho-dump (dataToHex) , so I left the 'section_data' test values alone. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@116823 91177308-0d34-0410-b5e6-96231b3b80d8 --- test/MC/ELF/alias.s | 124 +++++++++++++++++------------------ test/MC/ELF/align-bss.s | 20 +++--- test/MC/ELF/align-nops.s | 36 +++++----- test/MC/ELF/align-size.s | 12 ++-- test/MC/ELF/align-text.s | 20 +++--- test/MC/ELF/align.s | 44 ++++++------- test/MC/ELF/basic-elf.ll | 112 +++++++++++++++---------------- test/MC/ELF/common.s | 52 +++++++-------- test/MC/ELF/common2.s | 4 +- test/MC/ELF/diff.s | 10 +-- test/MC/ELF/empty.s | 116 ++++++++++++++++---------------- test/MC/ELF/entsize.ll | 24 +++---- test/MC/ELF/entsize.s | 42 ++++++------ test/MC/ELF/file.s | 32 ++++----- test/MC/ELF/got.s | 12 ++-- test/MC/ELF/local-reloc.s | 24 +++---- test/MC/ELF/merge.s | 66 +++++++++---------- test/MC/ELF/norelocation.s | 20 +++--- test/MC/ELF/pic-diff.s | 26 ++++---- test/MC/ELF/plt.s | 4 +- test/MC/ELF/relax.s | 34 +++++----- test/MC/ELF/relocation-386.s | 48 +++++++------- test/MC/ELF/relocation.s | 68 +++++++++---------- test/MC/ELF/section.s | 6 +- test/MC/ELF/size.s | 6 +- test/MC/ELF/sleb.s | 4 +- test/MC/ELF/uleb.s | 4 +- test/MC/ELF/undef.s | 44 ++++++------- test/MC/ELF/undef2.s | 6 +- test/MC/ELF/weak.s | 32 ++++----- test/MC/ELF/zero.s | 20 +++--- test/Scripts/common_dump.py | 33 ++++++++++ test/Scripts/elf-dump | 98 +++++++++++++-------------- 33 files changed, 619 insertions(+), 584 deletions(-) diff --git a/test/MC/ELF/alias.s b/test/MC/ELF/alias.s index 4842d2746a6..84b558822da 100644 --- a/test/MC/ELF/alias.s +++ b/test/MC/ELF/alias.s @@ -15,70 +15,70 @@ bar3 = foo3 foo4: bar4 = foo4 -// CHECK: # Symbol 1 -// CHECK-NEXT: (('st_name', 5) # 'bar' -// CHECK-NEXT: ('st_bind', 0) -// CHECK-NEXT: ('st_type', 0) -// CHECK-NEXT: ('st_other', 0) -// CHECK-NEXT: ('st_shndx', 1) -// CHECK-NEXT: ('st_value', 0) -// CHECK-NEXT: ('st_size', 0) +// CHECK: # Symbol 0x00000001 +// CHECK-NEXT: (('st_name', 0x00000005) # 'bar' +// CHECK-NEXT: ('st_bind', 0x00000000) +// CHECK-NEXT: ('st_type', 0x00000000) +// CHECK-NEXT: ('st_other', 0x00000000) +// CHECK-NEXT: ('st_shndx', 0x00000001) +// CHECK-NEXT: ('st_value', 0x00000000) +// CHECK-NEXT: ('st_size', 0x00000000) // CHECK-NEXT: ), -// CHECK-NEXT: # Symbol 2 -// CHECK-NEXT: (('st_name', 29) # 'bar4' -// CHECK-NEXT: ('st_bind', 0) -// CHECK-NEXT: ('st_type', 2) -// CHECK-NEXT: ('st_other', 0) -// CHECK-NEXT: ('st_shndx', 1) -// CHECK-NEXT: ('st_value', 0) -// CHECK-NEXT: ('st_size', 0) +// CHECK-NEXT: # Symbol 0x00000002 +// CHECK-NEXT: (('st_name', 0x0000001d) # 'bar4' +// CHECK-NEXT: ('st_bind', 0x00000000) +// CHECK-NEXT: ('st_type', 0x00000002) +// CHECK-NEXT: ('st_other', 0x00000000) +// CHECK-NEXT: ('st_shndx', 0x00000001) +// CHECK-NEXT: ('st_value', 0x00000000) +// CHECK-NEXT: ('st_size', 0x00000000) // CHECK-NEXT: ), -// CHECK-NEXT: # Symbol 3 -// CHECK-NEXT: (('st_name', 1) # 'foo' -// CHECK-NEXT: ('st_bind', 0) -// CHECK-NEXT: ('st_type', 0) -// CHECK-NEXT: ('st_other', 0) -// CHECK-NEXT: ('st_shndx', 1) -// CHECK-NEXT: ('st_value', 0) -// CHECK-NEXT: ('st_size', 0) +// CHECK-NEXT: # Symbol 0x00000003 +// CHECK-NEXT: (('st_name', 0x00000001) # 'foo' +// CHECK-NEXT: ('st_bind', 0x00000000) +// CHECK-NEXT: ('st_type', 0x00000000) +// CHECK-NEXT: ('st_other', 0x00000000) +// CHECK-NEXT: ('st_shndx', 0x00000001) +// CHECK-NEXT: ('st_value', 0x00000000) +// CHECK-NEXT: ('st_size', 0x00000000) // CHECK-NEXT: ), -// CHECK-NEXT: # Symbol 4 -// CHECK-NEXT: (('st_name', 14) # 'foo3' -// CHECK-NEXT: ('st_bind', 0) -// CHECK-NEXT: ('st_type', 0) -// CHECK-NEXT: ('st_other', 0) -// CHECK-NEXT: ('st_shndx', 1) -// CHECK-NEXT: ('st_value', 0) -// CHECK-NEXT: ('st_size', 0) +// CHECK-NEXT: # Symbol 0x00000004 +// CHECK-NEXT: (('st_name', 0x0000000e) # 'foo3' +// CHECK-NEXT: ('st_bind', 0x00000000) +// CHECK-NEXT: ('st_type', 0x00000000) +// CHECK-NEXT: ('st_other', 0x00000000) +// CHECK-NEXT: ('st_shndx', 0x00000001) +// CHECK-NEXT: ('st_value', 0x00000000) +// CHECK-NEXT: ('st_size', 0x00000000) // CHECK-NEXT: ), -// CHECK-NEXT: # Symbol 5 -// CHECK-NEXT: (('st_name', 24) # 'foo4' -// CHECK-NEXT: ('st_bind', 0) -// CHECK-NEXT: ('st_type', 2) -// CHECK-NEXT: ('st_other', 0) -// CHECK-NEXT: ('st_shndx', 1) -// CHECK-NEXT: ('st_value', 0) -// CHECK-NEXT: ('st_size', 0) +// CHECK-NEXT: # Symbol 0x00000005 +// CHECK-NEXT: (('st_name', 0x00000018) # 'foo4' +// CHECK-NEXT: ('st_bind', 0x00000000) +// CHECK-NEXT: ('st_type', 0x00000002) +// CHECK-NEXT: ('st_other', 0x00000000) +// CHECK-NEXT: ('st_shndx', 0x00000001) +// CHECK-NEXT: ('st_value', 0x00000000) +// CHECK-NEXT: ('st_size', 0x00000000) // CHECK-NEXT: ), -// CHECK-NEXT: # Symbol 6 -// CHECK-NEXT: (('st_name', 0) # '' -// CHECK: # Symbol 7 -// CHECK-NEXT: (('st_name', 0) # '' -// CHECK: # Symbol 8 -// CHECK-NEXT: (('st_name', 0) # '' -// CHECK: # Symbol 9 -// CHECK-NEXT: (('st_name', 19) # 'bar3' -// CHECK-NEXT: ('st_bind', 1) -// CHECK-NEXT: ('st_type', 0) -// CHECK-NEXT: ('st_other', 0) -// CHECK-NEXT: ('st_shndx', 1) -// CHECK-NEXT: ('st_value', 0) -// CHECK-NEXT: ('st_size', 0) -// CHECK: # Symbol 10 -// CHECK-NEXT: (('st_name', 9) # 'bar2' -// CHECK-NEXT: ('st_bind', 1) -// CHECK-NEXT: ('st_type', 0) -// CHECK-NEXT: ('st_other', 0) -// CHECK-NEXT: ('st_shndx', 0) -// CHECK-NEXT: ('st_value', 0) -// CHECK-NEXT: ('st_size', 0) +// CHECK-NEXT: # Symbol 0x00000006 +// CHECK-NEXT: (('st_name', 0x00000000) # '' +// CHECK: # Symbol 0x00000007 +// CHECK-NEXT: (('st_name', 0x00000000) # '' +// CHECK: # Symbol 0x00000008 +// CHECK-NEXT: (('st_name', 0x00000000) # '' +// CHECK: # Symbol 0x00000009 +// CHECK-NEXT: (('st_name', 0x00000013) # 'bar3' +// CHECK-NEXT: ('st_bind', 0x00000001) +// CHECK-NEXT: ('st_type', 0x00000000) +// CHECK-NEXT: ('st_other', 0x00000000) +// CHECK-NEXT: ('st_shndx', 0x00000001) +// CHECK-NEXT: ('st_value', 0x00000000) +// CHECK-NEXT: ('st_size', 0x00000000) +// CHECK: # Symbol 0x0000000a +// CHECK-NEXT: (('st_name', 0x00000009) # 'bar2' +// CHECK-NEXT: ('st_bind', 0x00000001) +// CHECK-NEXT: ('st_type', 0x00000000) +// CHECK-NEXT: ('st_other', 0x00000000) +// CHECK-NEXT: ('st_shndx', 0x00000000) +// CHECK-NEXT: ('st_value', 0x00000000) +// CHECK-NEXT: ('st_size', 0x00000000) diff --git a/test/MC/ELF/align-bss.s b/test/MC/ELF/align-bss.s index b6a3ba8cc42..4f73a29f8e2 100644 --- a/test/MC/ELF/align-bss.s +++ b/test/MC/ELF/align-bss.s @@ -5,13 +5,13 @@ .local foo .comm foo,2048,16 -// CHECK: ('sh_name', 13) # '.bss' -// CHECK-NEXT: ('sh_type', 8) -// CHECK-NEXT: ('sh_flags', 3) -// CHECK-NEXT: ('sh_addr', 0) -// CHECK-NEXT: ('sh_offset', 64) -// CHECK-NEXT: ('sh_size', 2048) -// CHECK-NEXT: ('sh_link', 0) -// CHECK-NEXT: ('sh_info', 0) -// CHECK-NEXT: ('sh_addralign', 16) -// CHECK-NEXT: ('sh_entsize', 0) +// CHECK: ('sh_name', 0x0000000d) # '.bss' +// CHECK-NEXT: ('sh_type', 0x00000008) +// CHECK-NEXT: ('sh_flags', 0x00000003) +// CHECK-NEXT: ('sh_addr', 0x00000000) +// CHECK-NEXT: ('sh_offset', 0x00000040) +// CHECK-NEXT: ('sh_size', 0x00000800) +// CHECK-NEXT: ('sh_link', 0x00000000) +// CHECK-NEXT: ('sh_info', 0x00000000) +// CHECK-NEXT: ('sh_addralign', 0x00000010) +// CHECK-NEXT: ('sh_entsize', 0x00000000) diff --git a/test/MC/ELF/align-nops.s b/test/MC/ELF/align-nops.s index b6793ecb675..28d4b895f5d 100644 --- a/test/MC/ELF/align-nops.s +++ b/test/MC/ELF/align-nops.s @@ -4,37 +4,37 @@ .text f0: .long 0 - .align 8, 0x90 + .align 8, 0x00000090 .long 0 .align 8 // But not in another section .data .long 0 - .align 8, 0x90 + .align 8, 0x00000090 .long 0 .align 8 -// CHECK: (('sh_name', 1) # '.text' -// CHECK-NEXT: ('sh_type', 1) -// CHECK-NEXT: ('sh_flags', 6) +// CHECK: (('sh_name', 0x00000001) # '.text' +// CHECK-NEXT: ('sh_type', 0x00000001) +// CHECK-NEXT: ('sh_flags', 0x00000006) // CHECK-NEXT: ('sh_addr', // CHECK-NEXT: ('sh_offset', -// CHECK-NEXT: ('sh_size', 16) -// CHECK-NEXT: ('sh_link', 0) -// CHECK-NEXT: ('sh_info', 0) -// CHECK-NEXT: ('sh_addralign', 8) -// CHECK-NEXT: ('sh_entsize', 0) +// CHECK-NEXT: ('sh_size', 0x00000010) +// CHECK-NEXT: ('sh_link', 0x00000000) +// CHECK-NEXT: ('sh_info', 0x00000000) +// CHECK-NEXT: ('sh_addralign', 0x00000008) +// CHECK-NEXT: ('sh_entsize', 0x00000000) // CHECK-NEXT: ('_section_data', '00000000 0f1f4000 00000000 0f1f4000') -// CHECK: (('sh_name', 7) # '.data' -// CHECK-NEXT: ('sh_type', 1) -// CHECK-NEXT: ('sh_flags', 3) +// CHECK: (('sh_name', 0x00000007) # '.data' +// CHECK-NEXT: ('sh_type', 0x00000001) +// CHECK-NEXT: ('sh_flags', 0x00000003) // CHECK-NEXT: ('sh_addr', // CHECK-NEXT: ('sh_offset', -// CHECK-NEXT: ('sh_size', 16) -// CHECK-NEXT: ('sh_link', 0) -// CHECK-NEXT: ('sh_info', 0) -// CHECK-NEXT: ('sh_addralign', 8) -// CHECK-NEXT: ('sh_entsize', 0) +// CHECK-NEXT: ('sh_size', 0x00000010) +// CHECK-NEXT: ('sh_link', 0x00000000) +// CHECK-NEXT: ('sh_info', 0x00000000) +// CHECK-NEXT: ('sh_addralign', 0x00000008) +// CHECK-NEXT: ('sh_entsize', 0x00000000) // CHECK-NEXT: ('_section_data', '00000000 90909090 00000000 00000000') diff --git a/test/MC/ELF/align-size.s b/test/MC/ELF/align-size.s index 4d705cf77b0..85331d7ae91 100644 --- a/test/MC/ELF/align-size.s +++ b/test/MC/ELF/align-size.s @@ -5,9 +5,9 @@ .zero 4 .align 8 -// CHECK: (('sh_name', 1) # '.text' -// CHECK-NEXT: ('sh_type', 1) -// CHECK-NEXT: ('sh_flags', 6) -// CHECK-NEXT: ('sh_addr', 0) -// CHECK-NEXT: ('sh_offset', 64) -// CHECK-NEXT: ('sh_size', 8) +// CHECK: (('sh_name', 0x00000001) # '.text' +// CHECK-NEXT: ('sh_type', 0x00000001) +// CHECK-NEXT: ('sh_flags', 0x00000006) +// CHECK-NEXT: ('sh_addr', 0x00000000) +// CHECK-NEXT: ('sh_offset', 0x00000040) +// CHECK-NEXT: ('sh_size', 0x00000008) diff --git a/test/MC/ELF/align-text.s b/test/MC/ELF/align-text.s index 4f4497c82ba..1d2dacb3a06 100644 --- a/test/MC/ELF/align-text.s +++ b/test/MC/ELF/align-text.s @@ -6,14 +6,14 @@ .text .zero 1 -// CHECK: (('sh_name', 1) # '.text' -// CHECK-NEXT: ('sh_type', 1) -// CHECK-NEXT: ('sh_flags', 6) -// CHECK-NEXT: ('sh_addr', 0) -// CHECK-NEXT: ('sh_offset', 64) -// CHECK-NEXT: ('sh_size', 2) -// CHECK-NEXT: ('sh_link', 0) -// CHECK-NEXT: ('sh_info', 0) -// CHECK-NEXT: ('sh_addralign', 4) -// CHECK-NEXT: ('sh_entsize', 0) +// CHECK: (('sh_name', 0x00000001) # '.text' +// CHECK-NEXT: ('sh_type', 0x00000001) +// CHECK-NEXT: ('sh_flags', 0x00000006) +// CHECK-NEXT: ('sh_addr', 0x00000000) +// CHECK-NEXT: ('sh_offset', 0x00000040) +// CHECK-NEXT: ('sh_size', 0x00000002) +// CHECK-NEXT: ('sh_link', 0x00000000) +// CHECK-NEXT: ('sh_info', 0x00000000) +// CHECK-NEXT: ('sh_addralign', 0x00000004) +// CHECK-NEXT: ('sh_entsize', 0x00000000) // CHECK-NEXT: ), diff --git a/test/MC/ELF/align.s b/test/MC/ELF/align.s index d375c4aa4f8..c3912a7c67b 100644 --- a/test/MC/ELF/align.s +++ b/test/MC/ELF/align.s @@ -7,26 +7,26 @@ .section .rodata,"a",@progbits .align 8 -// CHECK: # Section 3 -// CHECK-NEXT: (('sh_name', 13) # '.bss' -// CHECK-NEXT: ('sh_type', 8) -// CHECK-NEXT: ('sh_flags', 3) -// CHECK-NEXT: ('sh_addr', 0) -// CHECK-NEXT: ('sh_offset', 68) -// CHECK-NEXT: ('sh_size', 0) -// CHECK-NEXT: ('sh_link', 0) -// CHECK-NEXT: ('sh_info', 0) -// CHECK-NEXT: ('sh_addralign', 4) -// CHECK-NEXT: ('sh_entsize', 0) +// CHECK: # Section 0x00000003 +// CHECK-NEXT: (('sh_name', 0x0000000d) # '.bss' +// CHECK-NEXT: ('sh_type', 0x00000008) +// CHECK-NEXT: ('sh_flags', 0x00000003) +// CHECK-NEXT: ('sh_addr', 0x00000000) +// CHECK-NEXT: ('sh_offset', 0x00000044) +// CHECK-NEXT: ('sh_size', 0x00000000) +// CHECK-NEXT: ('sh_link', 0x00000000) +// CHECK-NEXT: ('sh_info', 0x00000000) +// CHECK-NEXT: ('sh_addralign', 0x00000004) +// CHECK-NEXT: ('sh_entsize', 0x00000000) // CHECK-NEXT: ), -// CHECK-NEXT: # Section 4 -// CHECK-NEXT: (('sh_name', 18) # '.rodata' -// CHECK-NEXT: ('sh_type', 1) -// CHECK-NEXT: ('sh_flags', 2) -// CHECK-NEXT: ('sh_addr', 0) -// CHECK-NEXT: ('sh_offset', 72) -// CHECK-NEXT: ('sh_size', 0) -// CHECK-NEXT: ('sh_link', 0) -// CHECK-NEXT: ('sh_info', 0) -// CHECK-NEXT: ('sh_addralign', 8) -// CHECK-NEXT: ('sh_entsize', 0) +// CHECK-NEXT: # Section 0x00000004 +// CHECK-NEXT: (('sh_name', 0x00000012) # '.rodata' +// CHECK-NEXT: ('sh_type', 0x00000001) +// CHECK-NEXT: ('sh_flags', 0x00000002) +// CHECK-NEXT: ('sh_addr', 0x00000000) +// CHECK-NEXT: ('sh_offset', 0x00000048) +// CHECK-NEXT: ('sh_size', 0x00000000) +// CHECK-NEXT: ('sh_link', 0x00000000) +// CHECK-NEXT: ('sh_info', 0x00000000) +// CHECK-NEXT: ('sh_addralign', 0x00000008) +// CHECK-NEXT: ('sh_entsize', 0x00000000) diff --git a/test/MC/ELF/basic-elf.ll b/test/MC/ELF/basic-elf.ll index f130ced7bbb..f478b3235c7 100644 --- a/test/MC/ELF/basic-elf.ll +++ b/test/MC/ELF/basic-elf.ll @@ -12,100 +12,100 @@ define i32 @main() nounwind { declare i32 @puts(i8* nocapture) nounwind -; 32: ('e_indent[EI_CLASS]', 1) -; 32: ('e_indent[EI_DATA]', 1) -; 32: ('e_indent[EI_VERSION]', 1) +; 32: ('e_indent[EI_CLASS]', 0x00000001) +; 32: ('e_indent[EI_DATA]', 0x00000001) +; 32: ('e_indent[EI_VERSION]', 0x00000001) ; 32: ('_sections', [ ; 32: # Section 0 -; 32: (('sh_name', 0) # '' +; 32: (('sh_name', 0x00000000) # '' ; 32: # '.text' -; 32: ('st_bind', 0) -; 32: ('st_type', 3) +; 32: ('st_bind', 0x00000000) +; 32: ('st_type', 0x00000003) -; 32: ('st_bind', 0) -; 32: ('st_type', 3) +; 32: ('st_bind', 0x00000000) +; 32: ('st_type', 0x00000003) -; 32: ('st_bind', 0) -; 32: ('st_type', 3) +; 32: ('st_bind', 0x00000000) +; 32: ('st_type', 0x00000003) ; 32: # 'main' -; 32: ('st_bind', 1) -; 32-NEXT: ('st_type', 2) +; 32: ('st_bind', 0x00000001) +; 32-NEXT: ('st_type', 0x00000002) ; 32: # 'puts' -; 32: ('st_bind', 1) -; 32-NEXT: ('st_type', 0) +; 32: ('st_bind', 0x00000001) +; 32-NEXT: ('st_type', 0x00000000) ; 32: # '.rel.text' ; 32: ('_relocations', [ -; 32: # Relocation 0 -; 32: (('r_offset', 6) -; 32: ('r_type', 1) +; 32: # Relocation 0x00000000 +; 32: (('r_offset', 0x00000006) +; 32: ('r_type', 0x00000001) ; 32: ), -; 32: # Relocation 1 -; 32: (('r_offset', 11) -; 32: ('r_type', 2) +; 32: # Relocation 0x00000001 +; 32: (('r_offset', 0x0000000b) +; 32: ('r_type', 0x00000002) ; 32: ), -; 32: # Relocation 2 -; 32: (('r_offset', 18) -; 32: ('r_type', 1) +; 32: # Relocation 0x00000002 +; 32: (('r_offset', 0x00000012) +; 32: ('r_type', 0x00000001) ; 32: ), -; 32: # Relocation 3 -; 32: (('r_offset', 23) -; 32: ('r_type', 2) +; 32: # Relocation 0x00000003 +; 32: (('r_offset', 0x00000017) +; 32: ('r_type', 0x00000002) ; 32: ), ; 32: ]) -; 64: ('e_indent[EI_CLASS]', 2) -; 64: ('e_indent[EI_DATA]', 1) -; 64: ('e_indent[EI_VERSION]', 1) +; 64: ('e_indent[EI_CLASS]', 0x00000002) +; 64: ('e_indent[EI_DATA]', 0x00000001) +; 64: ('e_indent[EI_VERSION]', 0x00000001) ; 64: ('_sections', [ ; 64: # Section 0 -; 64: (('sh_name', 0) # '' +; 64: (('sh_name', 0x00000000) # '' ; 64: # '.text' -; 64: ('st_bind', 0) -; 64: ('st_type', 3) +; 64: ('st_bind', 0x00000000) +; 64: ('st_type', 0x00000003) -; 64: ('st_bind', 0) -; 64: ('st_type', 3) +; 64: ('st_bind', 0x00000000) +; 64: ('st_type', 0x00000003) -; 64: ('st_bind', 0) -; 64: ('st_type', 3) +; 64: ('st_bind', 0x00000000) +; 64: ('st_type', 0x00000003) ; 64: # 'main' -; 64-NEXT: ('st_bind', 1) -; 64-NEXT: ('st_type', 2) +; 64-NEXT: ('st_bind', 0x00000001) +; 64-NEXT: ('st_type', 0x00000002) ; 64: # 'puts' -; 64-NEXT: ('st_bind', 1) -; 64-NEXT: ('st_type', 0) +; 64-NEXT: ('st_bind', 0x00000001) +; 64-NEXT: ('st_type', 0x00000000) ; 64: # '.rela.text' ; 64: ('_relocations', [ -; 64: # Relocation 0 -; 64: (('r_offset', 5) -; 64: ('r_type', 10) -; 64: ('r_addend', 0) +; 64: # Relocation 0x00000000 +; 64: (('r_offset', 0x00000005) +; 64: ('r_type', 0x0000000a) +; 64: ('r_addend', 0x00000000) ; 64: ), -; 64: # Relocation 1 -; 64: (('r_offset', 10) -; 64: ('r_type', 2) -; 64: ('r_addend', -4) +; 64: # Relocation 0x00000001 +; 64: (('r_offset', 0x0000000a) +; 64: ('r_type', 0x00000002) +; 64: ('r_addend', 0xfffffffc) ; 64: ), -; 64: # Relocation 2 -; 64: (('r_offset', 15) -; 64: ('r_type', 10) -; 64: ('r_addend', 6) +; 64: # Relocation 0x00000002 +; 64: (('r_offset', 0x0000000f) +; 64: ('r_type', 0x0000000a) +; 64: ('r_addend', 0x00000006) ; 64: ), -; 64: # Relocation 3 -; 64: (('r_offset', 20) -; 64: ('r_type', 2) -; 64: ('r_addend', -4) +; 64: # Relocation 0x00000003 +; 64: (('r_offset', 0x00000014) +; 64: ('r_type', 0x00000002) +; 64: ('r_addend', 0xfffffffc) ; 64: ), ; 64: ]) diff --git a/test/MC/ELF/common.s b/test/MC/ELF/common.s index 18b3af5afa6..9aa0c06298e 100644 --- a/test/MC/ELF/common.s +++ b/test/MC/ELF/common.s @@ -8,13 +8,13 @@ .local common1 .comm common1,1,1 -// CHECK: ('st_name', 1) # 'common1' -// CHECK-NEXT: ('st_bind', 0) -// CHECK-NEXT: ('st_type', 1) -// CHECK-NEXT: ('st_other', 0) +// CHECK: ('st_name', 0x00000001) # 'common1' +// CHECK-NEXT: ('st_bind', 0x00000000) +// CHECK-NEXT: ('st_type', 0x00000001) +// CHECK-NEXT: ('st_other', 0x00000000) // CHECK-NEXT: ('st_shndx', -// CHECK-NEXT: ('st_value', 0) -// CHECK-NEXT: ('st_size', 1) +// CHECK-NEXT: ('st_value', 0x00000000) +// CHECK-NEXT: ('st_size', 0x00000001) // Same as common1, but with directives in a different order. @@ -22,25 +22,25 @@ .type common2,@object .comm common2,1,1 -// CHECK: ('st_name', 9) # 'common2' -// CHECK-NEXT: ('st_bind', 0) -// CHECK-NEXT: ('st_type', 1) -// CHECK-NEXT: ('st_other', 0) +// CHECK: ('st_name', 0x00000009) # 'common2' +// CHECK-NEXT: ('st_bind', 0x00000000) +// CHECK-NEXT: ('st_type', 0x00000001) +// CHECK-NEXT: ('st_other', 0x00000000) // CHECK-NEXT: ('st_shndx', -// CHECK-NEXT: ('st_value', 1) -// CHECK-NEXT: ('st_size', 1) +// CHECK-NEXT: ('st_value', 0x00000001) +// CHECK-NEXT: ('st_size', 0x00000001) // Test that without an explicit .local we produce a global. .type common3,@object .comm common3,4,4 -// CHECK: ('st_name', 17) # 'common3' -// CHECK-NEXT: ('st_bind', 1) -// CHECK-NEXT: ('st_type', 1) -// CHECK-NEXT: ('st_other', 0) -// CHECK-NEXT: ('st_shndx', 65522) -// CHECK-NEXT: ('st_value', 4) -// CHECK-NEXT: ('st_size', 4) +// CHECK: ('st_name', 0x00000011) # 'common3' +// CHECK-NEXT: ('st_bind', 0x00000001) +// CHECK-NEXT: ('st_type', 0x00000001) +// CHECK-NEXT: ('st_other', 0x00000000) +// CHECK-NEXT: ('st_shndx', 0x0000fff2) +// CHECK-NEXT: ('st_value', 0x00000004) +// CHECK-NEXT: ('st_size', 0x00000004) // Test that without an explicit .local we produce a global, even if the first @@ -54,10 +54,10 @@ foo: .type common4,@object .comm common4,40,16 -// CHECK: ('st_name', 29) # 'common4' -// CHECK-NEXT: ('st_bind', 1) -// CHECK-NEXT: ('st_type', 1) -// CHECK-NEXT: ('st_other', 0) -// CHECK-NEXT: ('st_shndx', 65522) -// CHECK-NEXT: ('st_value', 16) -// CHECK-NEXT: ('st_size', 40) +// CHECK: ('st_name', 0x0000001d) # 'common4' +// CHECK-NEXT: ('st_bind', 0x00000001) +// CHECK-NEXT: ('st_type', 0x00000001) +// CHECK-NEXT: ('st_other', 0x00000000) +// CHECK-NEXT: ('st_shndx', 0x0000fff2) +// CHECK-NEXT: ('st_value', 0x00000010) +// CHECK-NEXT: ('st_size', 0x00000028) diff --git a/test/MC/ELF/common2.s b/test/MC/ELF/common2.s index a95daa518f6..b54cdfe143f 100644 --- a/test/MC/ELF/common2.s +++ b/test/MC/ELF/common2.s @@ -9,12 +9,12 @@ .zero 1 .align 8 -// CHECK: (('sh_name', 13) # '.bss' +// CHECK: (('sh_name', 0x0000000d) # '.bss' // CHECK-NEXT: ('sh_type', // CHECK-NEXT: ('sh_flags' // CHECK-NEXT: ('sh_addr', // CHECK-NEXT: ('sh_offset', -// CHECK-NEXT: ('sh_size', 9) +// CHECK-NEXT: ('sh_size', 0x00000009) // CHECK-NEXT: ('sh_link', // CHECK-NEXT: ('sh_info', // CHECK-NEXT: ('sh_addralign', diff --git a/test/MC/ELF/diff.s b/test/MC/ELF/diff.s index 671652cf4a3..1879a39e8b9 100644 --- a/test/MC/ELF/diff.s +++ b/test/MC/ELF/diff.s @@ -8,8 +8,8 @@ bar: zed: mov zed+(bar-foo), %eax -// CHECK: # Relocation 0 -// CHECK-NEXT: (('r_offset', 5) -// CHECK-NEXT: ('r_sym', 6) -// CHECK-NEXT: ('r_type', 11) -// CHECK-NEXT: ('r_addend', 1) +// CHECK: # Relocation 0x00000000 +// CHECK-NEXT: (('r_offset', 0x00000005) +// CHECK-NEXT: ('r_sym', 0x00000006) +// CHECK-NEXT: ('r_type', 0x0000000b) +// CHECK-NEXT: ('r_addend', 0x00000001) diff --git a/test/MC/ELF/empty.s b/test/MC/ELF/empty.s index 62cbb275e08..e351936b901 100644 --- a/test/MC/ELF/empty.s +++ b/test/MC/ELF/empty.s @@ -3,68 +3,68 @@ // Test that like gnu as we create text, data and bss by default. Also test // that shstrtab, symtab and strtab are listed in that order. -// CHECK: ('sh_name', 1) # '.text' -// CHECK-NEXT: ('sh_type', 1) -// CHECK-NEXT: ('sh_flags', 6) -// CHECK-NEXT: ('sh_addr', 0) -// CHECK-NEXT: ('sh_offset', 64) -// CHECK-NEXT: ('sh_size', 0) -// CHECK-NEXT: ('sh_link', 0) -// CHECK-NEXT: ('sh_info', 0) -// CHECK-NEXT: ('sh_addralign', 4) -// CHECK-NEXT: ('sh_entsize', 0) +// CHECK: ('sh_name', 0x00000001) # '.text' +// CHECK-NEXT: ('sh_type', 0x00000001) +// CHECK-NEXT: ('sh_flags', 0x00000006) +// CHECK-NEXT: ('sh_addr', 0x00000000) +// CHECK-NEXT: ('sh_offset', 0x00000040) +// CHECK-NEXT: ('sh_size', 0x00000000) +// CHECK-NEXT: ('sh_link', 0x00000000) +// CHECK-NEXT: ('sh_info', 0x00000000) +// CHECK-NEXT: ('sh_addralign', 0x00000004) +// CHECK-NEXT: ('sh_entsize', 0x00000000) -// CHECK: ('sh_name', 7) # '.data' -// CHECK-NEXT: ('sh_type', 1) -// CHECK-NEXT: ('sh_flags', 3) -// CHECK-NEXT: ('sh_addr', 0) -// CHECK-NEXT: ('sh_offset', 64) -// CHECK-NEXT: ('sh_size', 0) -// CHECK-NEXT: ('sh_link', 0) -// CHECK-NEXT: ('sh_info', 0) -// CHECK-NEXT: ('sh_addralign', 4) -// CHECK-NEXT: ('sh_entsize', 0) +// CHECK: ('sh_name', 0x00000007) # '.data' +// CHECK-NEXT: ('sh_type', 0x00000001) +// CHECK-NEXT: ('sh_flags', 0x00000003) +// CHECK-NEXT: ('sh_addr', 0x00000000) +// CHECK-NEXT: ('sh_offset', 0x00000040) +// CHECK-NEXT: ('sh_size', 0x00000000) +// CHECK-NEXT: ('sh_link', 0x00000000) +// CHECK-NEXT: ('sh_info', 0x00000000) +// CHECK-NEXT: ('sh_addralign', 0x00000004) +// CHECK-NEXT: ('sh_entsize', 0x00000000) -// CHECK: ('sh_name', 13) # '.bss' -// CHECK-NEXT: ('sh_type', 8) -// CHECK-NEXT: ('sh_flags', 3) -// CHECK-NEXT: ('sh_addr', 0) -// CHECK-NEXT: ('sh_offset', 64) -// CHECK-NEXT: ('sh_size', 0) -// CHECK-NEXT: ('sh_link', 0) -// CHECK-NEXT: ('sh_info', 0) -// CHECK-NEXT: ('sh_addralign', 4) -// CHECK-NEXT: ('sh_entsize', 0) +// CHECK: ('sh_name', 0x0000000d) # '.bss' +// CHECK-NEXT: ('sh_type', 0x00000008) +// CHECK-NEXT: ('sh_flags', 0x00000003) +// CHECK-NEXT: ('sh_addr', 0x00000000) +// CHECK-NEXT: ('sh_offset', 0x00000040) +// CHECK-NEXT: ('sh_size', 0x00000000) +// CHECK-NEXT: ('sh_link', 0x00000000) +// CHECK-NEXT: ('sh_info', 0x00000000) +// CHECK-NEXT: ('sh_addralign', 0x00000004) +// CHECK-NEXT: ('sh_entsize', 0x00000000) -// CHECK: ('sh_name', 18) # '.shstrtab' -// CHECK-NEXT: ('sh_type', 3) -// CHECK-NEXT: ('sh_flags', 0) -// CHECK-NEXT: ('sh_addr', 0) -// CHECK-NEXT: ('sh_offset', 64) -// CHECK-NEXT: ('sh_size', 44) -// CHECK-NEXT: ('sh_link', 0) -// CHECK-NEXT: ('sh_info', 0) -// CHECK-NEXT: ('sh_addralign', 1) -// CHECK-NEXT: ('sh_entsize', 0) +// CHECK: ('sh_name', 0x00000012) # '.shstrtab' +// CHECK-NEXT: ('sh_type', 0x00000003) +// CHECK-NEXT: ('sh_flags', 0x00000000) +// CHECK-NEXT: ('sh_addr', 0x00000000) +// CHECK-NEXT: ('sh_offset', 0x00000040) +// CHECK-NEXT: ('sh_size', 0x0000002c) +// CHECK-NEXT: ('sh_link', 0x00000000) +// CHECK-NEXT: ('sh_info', 0x00000000) +// CHECK-NEXT: ('sh_addralign', 0x00000001) +// CHECK-NEXT: ('sh_entsize', 0x00000000) -// CHECK: ('sh_name', 28) # '.symtab' -// CHECK-NEXT: ('sh_type', 2) -// CHECK-NEXT: ('sh_flags', 0) -// CHECK-NEXT: ('sh_addr', 0) +// CHECK: ('sh_name', 0x0000001c) # '.symtab' +// CHECK-NEXT: ('sh_type', 0x00000002) +// CHECK-NEXT: ('sh_flags', 0x00000000) +// CHECK-NEXT: ('sh_addr', 0x00000000) // CHECK-NEXT: ('sh_offset', -// CHECK-NEXT: ('sh_size', 96) -// CHECK-NEXT: ('sh_link', 6) -// CHECK-NEXT: ('sh_info', 4) -// CHECK-NEXT: ('sh_addralign', 8) -// CHECK-NEXT: ('sh_entsize', 24) +// CHECK-NEXT: ('sh_size', 0x00000060) +// CHECK-NEXT: ('sh_link', 0x00000006) +// CHECK-NEXT: ('sh_info', 0x00000004) +// CHECK-NEXT: ('sh_addralign', 0x00000008) +// CHECK-NEXT: ('sh_entsize', 0x00000018) -// CHECK: ('sh_name', 36) # '.strtab' -// CHECK-NEXT: ('sh_type', 3) -// CHECK-NEXT: ('sh_flags', 0) -// CHECK-NEXT: ('sh_addr', 0) +// CHECK: ('sh_name', 0x00000024) # '.strtab' +// CHECK-NEXT: ('sh_type', 0x00000003) +// CHECK-NEXT: ('sh_flags', 0x00000000) +// CHECK-NEXT: ('sh_addr', 0x00000000) // CHECK-NEXT: ('sh_offset', -// CHECK-NEXT: ('sh_size', 1) -// CHECK-NEXT: ('sh_link', 0) -// CHECK-NEXT: ('sh_info', 0) -// CHECK-NEXT: ('sh_addralign', 1) -// CHECK-NEXT: ('sh_entsize', 0) +// CHECK-NEXT: ('sh_size', 0x00000001) +// CHECK-NEXT: ('sh_link', 0x00000000) +// CHECK-NEXT: ('sh_info', 0x00000000) +// CHECK-NEXT: ('sh_addralign', 0x00000001) +// CHECK-NEXT: ('sh_entsize', 0x00000000) diff --git a/test/MC/ELF/entsize.ll b/test/MC/ELF/entsize.ll index bb289d359d4..62683af0353 100644 --- a/test/MC/ELF/entsize.ll +++ b/test/MC/ELF/entsize.ll @@ -20,25 +20,25 @@ declare void @foo(i64* nocapture) nounwind ;;;;; -; 64: (('sh_name', 18) # '.rodata.str1.1' -; 64-NEXT: ('sh_type', 1) -; 64-NEXT: ('sh_flags', 50) +; 64: (('sh_name', 0x00000012) # '.rodata.str1.1' +; 64-NEXT: ('sh_type', 0x00000001) +; 64-NEXT: ('sh_flags', 0x00000032) ; 64-NEXT: ('sh_addr', ; 64-NEXT: ('sh_offset', -; 64-NEXT: ('sh_size', 13) +; 64-NEXT: ('sh_size', 0x0000000d) ; 64-NEXT: ('sh_link', ; 64-NEXT: ('sh_info', -; 64-NEXT: ('sh_addralign', 1) -; 64-NEXT: ('sh_entsize', 1) +; 64-NEXT: ('sh_addralign', 0x00000001) +; 64-NEXT: ('sh_entsize', 0x00000001) -; 64: (('sh_name', 33) # '.rodata.cst8' -; 64-NEXT: ('sh_type', 1) -; 64-NEXT: ('sh_flags', 18) +; 64: (('sh_name', 0x00000021) # '.rodata.cst8' +; 64-NEXT: ('sh_type', 0x00000001) +; 64-NEXT: ('sh_flags', 0x00000012) ; 64-NEXT: ('sh_addr', ; 64-NEXT: ('sh_offset', -; 64-NEXT: ('sh_size', 16) +; 64-NEXT: ('sh_size', 0x00000010) ; 64-NEXT: ('sh_link', ; 64-NEXT: ('sh_info', -; 64-NEXT: ('sh_addralign', 8) -; 64-NEXT: ('sh_entsize', 8) +; 64-NEXT: ('sh_addralign', 0x00000008) +; 64-NEXT: ('sh_entsize', 0x00000008) diff --git a/test/MC/ELF/entsize.s b/test/MC/ELF/entsize.s index 0a30fde6a86..e8eb62eb2ea 100644 --- a/test/MC/ELF/entsize.s +++ b/test/MC/ELF/entsize.s @@ -32,38 +32,38 @@ .quad 42 .quad 42 -// CHECK: # Section 4 -// CHECK-NEXT: ('sh_name', 18) # '.rodata.str1.1' -// CHECK-NEXT: ('sh_type', 1) -// CHECK-NEXT: ('sh_flags', 50) +// CHECK: # Section 0x00000004 +// CHECK-NEXT: ('sh_name', 0x00000012) # '.rodata.str1.1' +// CHECK-NEXT: ('sh_type', 0x00000001) +// CHECK-NEXT: ('sh_flags', 0x00000032) // CHECK-NEXT: ('sh_addr', // CHECK-NEXT: ('sh_offset', -// CHECK-NEXT: ('sh_size', 13) +// CHECK-NEXT: ('sh_size', 0x0000000d) // CHECK-NEXT: ('sh_link', // CHECK-NEXT: ('sh_info', -// CHECK-NEXT: ('sh_addralign', 1) -// CHECK-NEXT: ('sh_entsize', 1) +// CHECK-NEXT: ('sh_addralign', 0x00000001) +// CHECK-NEXT: ('sh_entsize', 0x00000001) -// CHECK: # Section 5 -// CHECK-NEXT: ('sh_name', 33) # '.rodata.str2.1' -// CHECK-NEXT: ('sh_type', 1) -// CHECK-NEXT: ('sh_flags', 50) +// CHECK: # Section 0x00000005 +// CHECK-NEXT: ('sh_name', 0x00000021) # '.rodata.str2.1' +// CHECK-NEXT: ('sh_type', 0x00000001) +// CHECK-NEXT: ('sh_flags', 0x00000032) // CHECK-NEXT: ('sh_addr', // CHECK-NEXT: ('sh_offset', -// CHECK-NEXT: ('sh_size', 16) +// CHECK-NEXT: ('sh_size', 0x00000010) // CHECK-NEXT: ('sh_link', // CHECK-NEXT: ('sh_info', -// CHECK-NEXT: ('sh_addralign', 1) -// CHECK-NEXT: ('sh_entsize', 2) +// CHECK-NEXT: ('sh_addralign', 0x00000001) +// CHECK-NEXT: ('sh_entsize', 0x00000002) -// CHECK: # Section 6 -// CHECK-NEXT: ('sh_name', 48) # '.rodata.cst8 -// CHECK-NEXT: ('sh_type', 1) -// CHECK-NEXT: ('sh_flags', 18) +// CHECK: # Section 0x00000006 +// CHECK-NEXT: ('sh_name', 0x00000030) # '.rodata.cst8 +// CHECK-NEXT: ('sh_type', 0x00000001) +// CHECK-NEXT: ('sh_flags', 0x00000012) // CHECK-NEXT: ('sh_addr', // CHECK-NEXT: ('sh_offset', -// CHECK-NEXT: ('sh_size', 16) +// CHECK-NEXT: ('sh_size', 0x00000010) // CHECK-NEXT: ('sh_link', // CHECK-NEXT: ('sh_info', -// CHECK-NEXT: ('sh_addralign', 1) -// CHECK-NEXT: ('sh_entsize', 8) +// CHECK-NEXT: ('sh_addralign', 0x00000001) +// CHECK-NEXT: ('sh_entsize', 0x00000008) diff --git a/test/MC/ELF/file.s b/test/MC/ELF/file.s index 1e10531c204..8dd72a70ceb 100644 --- a/test/MC/ELF/file.s +++ b/test/MC/ELF/file.s @@ -4,20 +4,20 @@ .file "foo" foa: -// CHECK: # Symbol 1 -// CHECK-NEXT: (('st_name', 1) # 'foo' -// CHECK-NEXT: ('st_bind', 0) -// CHECK-NEXT: ('st_type', 4) -// CHECK-NEXT: ('st_other', 0) -// CHECK-NEXT: ('st_shndx', 65521) -// CHECK-NEXT: ('st_value', 0) -// CHECK-NEXT: ('st_size', 0) +// CHECK: # Symbol 0x00000001 +// CHECK-NEXT: (('st_name', 0x00000001) # 'foo' +// CHECK-NEXT: ('st_bind', 0x00000000) +// CHECK-NEXT: ('st_type', 0x00000004) +// CHECK-NEXT: ('st_other', 0x00000000) +// CHECK-NEXT: ('st_shndx', 0x0000fff1) +// CHECK-NEXT: ('st_value', 0x00000000) +// CHECK-NEXT: ('st_size', 0x00000000) // CHECK-NEXT: ), -// CHECK-NEXT: # Symbol 2 -// CHECK-NEXT: (('st_name', 5) # 'foa' -// CHECK-NEXT: ('st_bind', 0) -// CHECK-NEXT: ('st_type', 0) -// CHECK-NEXT: ('st_other', 0) -// CHECK-NEXT: ('st_shndx', 1) -// CHECK-NEXT: ('st_value', 0) -// CHECK-NEXT: ('st_size', 0) +// CHECK-NEXT: # Symbol 0x00000002 +// CHECK-NEXT: (('st_name', 0x00000005) # 'foa' +// CHECK-NEXT: ('st_bind', 0x00000000) +// CHECK-NEXT: ('st_type', 0x00000000) +// CHECK-NEXT: ('st_other', 0x00000000) +// CHECK-NEXT: ('st_shndx', 0x00000001) +// CHECK-NEXT: ('st_value', 0x00000000) +// CHECK-NEXT: ('st_size', 0x00000000) diff --git a/test/MC/ELF/got.s b/test/MC/ELF/got.s index 866d25b8e05..798150e0f5f 100644 --- a/test/MC/ELF/got.s +++ b/test/MC/ELF/got.s @@ -6,20 +6,20 @@ movl foo@GOT, %eax movl foo@GOTPCREL(%rip), %eax -// CHECK: (('st_name', 5) # '_GLOBAL_OFFSET_TABLE_' -// CHECK-NEXT: ('st_bind', 1) +// CHECK: (('st_name', 0x00000005) # '_GLOBAL_OFFSET_TABLE_' +// CHECK-NEXT: ('st_bind', 0x00000001) // CHECK: ('_relocations', [ -// CHECK-NEXT: # Relocation 0 +// CHECK-NEXT: # Relocation 0x00000000 // CHECK-NEXT: (('r_offset', // CHECK-NEXT: ('r_sym', -// CHECK-NEXT: ('r_type', 3) +// CHECK-NEXT: ('r_type', 0x00000003) // CHECK-NEXT: ('r_addend', // CHECK-NEXT: ), -// CHECK-NEXT: # Relocation 1 +// CHECK-NEXT: # Relocation 0x00000001 // CHECK-NEXT: (('r_offset', // CHECK-NEXT: ('r_sym', -// CHECK-NEXT: ('r_type', 9) +// CHECK-NEXT: ('r_type', 0x00000009) // CHECK-NEXT: ('r_addend', // CHECK-NEXT: ), // CHECK-NEXT: ]) diff --git a/test/MC/ELF/local-reloc.s b/test/MC/ELF/local-reloc.s index 30c0f68455d..d275646b759 100644 --- a/test/MC/ELF/local-reloc.s +++ b/test/MC/ELF/local-reloc.s @@ -7,24 +7,24 @@ foo: // Section number 1 is .text -// CHECK: # Section 1 -// CHECK-next: (('sh_name', 1) # '.text' +// CHECK: # Section 0x00000001 +// CHECK-next: (('sh_name', 0x00000001) # '.text' // Symbol number 2 is section number 1 -// CHECK: # Symbol 2 -// CHECK-NEXT: (('st_name', 0) # '' -// CHECK-NEXT: ('st_bind', 0) -// CHECK-NEXT: ('st_type', 3) -// CHECK-NEXT: ('st_other', 0) -// CHECK-NEXT: ('st_shndx', 1) -// CHECK-NEXT: ('st_value', 0) -// CHECK-NEXT: ('st_size', 0) +// CHECK: # Symbol 0x00000002 +// CHECK-NEXT: (('st_name', 0x00000000) # '' +// CHECK-NEXT: ('st_bind', 0x00000000) +// CHECK-NEXT: ('st_type', 0x00000003) +// CHECK-NEXT: ('st_other', 0x00000000) +// CHECK-NEXT: ('st_shndx', 0x00000001) +// CHECK-NEXT: ('st_value', 0x00000000) +// CHECK-NEXT: ('st_size', 0x00000000) // Relocation refers to symbol number 2 // CHECK: ('_relocations', [ -// CHECK-NEXT: # Relocation 0 +// CHECK-NEXT: # Relocation 0x00000000 // CHECK-NEXT: (('r_offset', -// CHECK-NEXT: ('r_sym', 2) +// CHECK-NEXT: ('r_sym', 0x00000002) // CHECK-NEXT: ('r_type', // CHECK-NEXT: ('r_addend', // CHECK-NEXT: ), diff --git a/test/MC/ELF/merge.s b/test/MC/ELF/merge.s index f9cbc1eb797..ec022289007 100644 --- a/test/MC/ELF/merge.s +++ b/test/MC/ELF/merge.s @@ -23,75 +23,75 @@ zed: foo: // Section 4 is "sec1" -// CHECK: # Section 4 -// CHECK-NEXT: (('sh_name', 18) # '.sec1' +// CHECK: # Section 0x00000004 +// CHECK-NEXT: (('sh_name', 0x00000012) # '.sec1' // Symbol number 1 is .Lfoo -// CHECK: # Symbol 1 -// CHECK-NEXT: (('st_name', 1) # '.Lfoo' +// CHECK: # Symbol 0x00000001 +// CHECK-NEXT: (('st_name', 0x00000001) # '.Lfoo' // Symbol number 2 is foo -// CHECK: # Symbol 2 -// CHECK-NEXT: (('st_name', 7) # 'foo' +// CHECK: # Symbol 0x00000002 +// CHECK-NEXT: (('st_name', 0x00000007) # 'foo' // Symbol number 6 is section 4 -// CHECK: # Symbol 6 -// CHECK-NEXT: (('st_name', 0) # '' -// CHECK-NEXT: ('st_bind', 0) -// CHECK-NEXT: ('st_type', 3) -// CHECK-NEXT: ('st_other', 0) -// CHECK-NEXT: ('st_shndx', 4) +// CHECK: # Symbol 0x00000006 +// CHECK-NEXT: (('st_name', 0x00000000) # '' +// CHECK-NEXT: ('st_bind', 0x00000000) +// CHECK-NEXT: ('st_type', 0x00000003) +// CHECK-NEXT: ('st_other', 0x00000000) +// CHECK-NEXT: ('st_shndx', 0x00000004) // Symbol number 8 is zed -// CHECK: # Symbol 8 -// CHECK-NEXT: (('st_name', 11) # 'zed' +// CHECK: # Symbol 0x00000008 +// CHECK-NEXT: (('st_name', 0x0000000b) # 'zed' // Relocation 0 refers to symbol 1 // CHECK: ('_relocations', [ // CHECK-NEXT: # Relocation 0 // CHECK-NEXT: (('r_offset', -// CHECK-NEXT: ('r_sym', 1) -// CHECK-NEXT: ('r_type', 2 +// CHECK-NEXT: ('r_sym', 0x00000001) +// CHECK-NEXT: ('r_type', 0x00000002 // CHECK-NEXT: ('r_addend', // CHECK-NEXT: ), // Relocation 1 refers to symbol 6 -// CHECK-NEXT: # Relocation 1 +// CHECK-NEXT: # Relocation 0x00000001 // CHECK-NEXT: (('r_offset', -// CHECK-NEXT: ('r_sym', 6) -// CHECK-NEXT: ('r_type', 10) +// CHECK-NEXT: ('r_sym', 0x00000006) +// CHECK-NEXT: ('r_type', 0x0000000a) // CHECK-NEXT: ('r_addend', // CHECK-NEXT: ), // Relocation 2 refers to symbol 1 -// CHECK-NEXT: # Relocation 2 +// CHECK-NEXT: # Relocation 0x00000002 // CHECK-NEXT: (('r_offset', -// CHECK-NEXT: ('r_sym', 1) -// CHECK-NEXT: ('r_type', 10 +// CHECK-NEXT: ('r_sym', 0x00000001) +// CHECK-NEXT: ('r_type', 0x0000000a // CHECK-NEXT: ('r_addend', // CHECK-NEXT: ), // Relocation 3 refers to symbol 2 -// CHECK-NEXT: # Relocation 3 +// CHECK-NEXT: # Relocation 0x00000003 // CHECK-NEXT: (('r_offset', -// CHECK-NEXT: ('r_sym', 2) -// CHECK-NEXT: ('r_type', 4 +// CHECK-NEXT: ('r_sym', 0x00000002) +// CHECK-NEXT: ('r_type', 0x00000004 // CHECK-NEXT: ('r_addend', // CHECK-NEXT: ), // Relocation 4 refers to symbol 2 -// CHECK-NEXT: # Relocation 4 +// CHECK-NEXT: # Relocation 0x00000004 // CHECK-NEXT: (('r_offset', -// CHECK-NEXT: ('r_sym', 2) -// CHECK-NEXT: ('r_type', 9 +// CHECK-NEXT: ('r_sym', 0x00000002) +// CHECK-NEXT: ('r_type', 0x00000009 // CHECK-NEXT: ('r_addend', // CHECK-NEXT: ), // Relocation 5 refers to symbol 8 -// CHECK-NEXT: # Relocation 5 -// CHECK-NEXT: (('r_offset', 35) -// CHECK-NEXT: ('r_sym', 8) -// CHECK-NEXT: ('r_type', 11) -// CHECK-NEXT: ('r_addend', 0) +// CHECK-NEXT: # Relocation 0x00000005 +// CHECK-NEXT: (('r_offset', 0x00000023) +// CHECK-NEXT: ('r_sym', 0x00000008) +// CHECK-NEXT: ('r_type', 0x0000000b) +// CHECK-NEXT: ('r_addend', 0x00000000) // CHECK-NEXT: ), // CHECK-NEXT: ]) diff --git a/test/MC/ELF/norelocation.s b/test/MC/ELF/norelocation.s index 3e9f6e09443..0a0efe1ed6d 100644 --- a/test/MC/ELF/norelocation.s +++ b/test/MC/ELF/norelocation.s @@ -3,16 +3,16 @@ call bar bar: -// CHECK: ('sh_name', 1) # '.text' -// CHECK-NEXT: ('sh_type', 1) -// CHECK-NEXT: ('sh_flags', 6) -// CHECK-NEXT: ('sh_addr', 0) -// CHECK-NEXT: ('sh_offset', 64) -// CHECK-NEXT: ('sh_size', 5) -// CHECK-NEXT: ('sh_link', 0) -// CHECK-NEXT: ('sh_info', 0) -// CHECK-NEXT: ('sh_addralign', 4) -// CHECK-NEXT: ('sh_entsize', 0) +// CHECK: ('sh_name', 0x00000001) # '.text' +// CHECK-NEXT: ('sh_type', 0x00000001) +// CHECK-NEXT: ('sh_flags', 0x00000006) +// CHECK-NEXT: ('sh_addr', 0x00000000) +// CHECK-NEXT: ('sh_offset', 0x00000040) +// CHECK-NEXT: ('sh_size', 0x00000005) +// CHECK-NEXT: ('sh_link', 0x00000000) +// CHECK-NEXT: ('sh_info', 0x00000000) +// CHECK-NEXT: ('sh_addralign', 0x00000004) +// CHECK-NEXT: ('sh_entsize', 0x00000000) // CHECK-NEXT: ('_section_data', 'e8000000 00') // CHECK-NOT: .rela.text // CHECK: shstrtab diff --git a/test/MC/ELF/pic-diff.s b/test/MC/ELF/pic-diff.s index 50117d420bf..b47c4135df0 100644 --- a/test/MC/ELF/pic-diff.s +++ b/test/MC/ELF/pic-diff.s @@ -1,21 +1,21 @@ // RUN: llvm-mc -filetype=obj -triple x86_64-pc-linux-gnu %s -o - | elf-dump | FileCheck %s -// CHECK: # Symbol 5 -// CHECK-NEXT: (('st_name', 5) # 'baz' -// CHECK-NEXT: ('st_bind', 1) -// CHECK-NEXT: ('st_type', 0) -// CHECK-NEXT: ('st_other', 0) -// CHECK-NEXT: ('st_shndx', 0) -// CHECK-NEXT: ('st_value', 0) -// CHECK-NEXT: ('st_size', 0) +// CHECK: # Symbol 0x00000005 +// CHECK-NEXT: (('st_name', 0x00000005) # 'baz' +// CHECK-NEXT: ('st_bind', 0x00000001) +// CHECK-NEXT: ('st_type', 0x00000000) +// CHECK-NEXT: ('st_other', 0x00000000) +// CHECK-NEXT: ('st_shndx', 0x00000000) +// CHECK-NEXT: ('st_value', 0x00000000) +// CHECK-NEXT: ('st_size', 0x00000000) // CHECK-NEXT: ), // CHECK: ('_relocations', [ -// CHECK-NEXT: # Relocation 0 -// CHECK-NEXT: (('r_offset', 12) -// CHECK-NEXT: ('r_sym', 5) -// CHECK-NEXT: ('r_type', 2) -// CHECK-NEXT: ('r_addend', 8) +// CHECK-NEXT: # Relocation 0x00000000 +// CHECK-NEXT: (('r_offset', 0x0000000c) +// CHECK-NEXT: ('r_sym', 0x00000005) +// CHECK-NEXT: ('r_type', 0x00000002) +// CHECK-NEXT: ('r_addend', 0x00000008) // CHECK-NEXT: ), // CHECK-NEXT: ]) diff --git a/test/MC/ELF/plt.s b/test/MC/ELF/plt.s index 2cbcf5a816b..7d0073c400d 100644 --- a/test/MC/ELF/plt.s +++ b/test/MC/ELF/plt.s @@ -5,10 +5,10 @@ jmp foo@PLT // CHECK: ('_relocations', [ -// CHECK-NEXT: # Relocation 0 +// CHECK-NEXT: # Relocation 0x00000000 // CHECK-NEXT: (('r_offset', // CHECK-NEXT: ('r_sym', -// CHECK-NEXT: ('r_type', 4) +// CHECK-NEXT: ('r_type', 0x00000004) // CHECK-NEXT: ('r_addend', // CHECK-NEXT: ), // CHECK-NEXT: ]) diff --git a/test/MC/ELF/relax.s b/test/MC/ELF/relax.s index 5c5e7e30dac..48b9c4e18c4 100644 --- a/test/MC/ELF/relax.s +++ b/test/MC/ELF/relax.s @@ -12,27 +12,27 @@ foo: jmp bar jmp foo -// CHECK: ('sh_name', 1) # '.text' -// CHECK-NEXT: ('sh_type', 1) -// CHECK-NEXT: ('sh_flags', 6) -// CHECK-NEXT: ('sh_addr', 0) -// CHECK-NEXT: ('sh_offset', 64) -// CHECK-NEXT: ('sh_size', 7) -// CHECK-NEXT: ('sh_link', 0) -// CHECK-NEXT: ('sh_info', 0) -// CHECK-NEXT: ('sh_addralign', 4) -// CHECK-NEXT: ('sh_entsize', 0) +// CHECK: ('sh_name', 0x00000001) # '.text' +// CHECK-NEXT: ('sh_type', 0x00000001) +// CHECK-NEXT: ('sh_flags', 0x00000006) +// CHECK-NEXT: ('sh_addr', 0x00000000) +// CHECK-NEXT: ('sh_offset', 0x00000040) +// CHECK-NEXT: ('sh_size', 0x00000007) +// CHECK-NEXT: ('sh_link', 0x00000000) +// CHECK-NEXT: ('sh_info', 0x00000000) +// CHECK-NEXT: ('sh_addralign', 0x00000004) +// CHECK-NEXT: ('sh_entsize', 0x00000000) // CHECK-NEXT: ('_section_data', 'ebfee900 000000') -// CHECK: # Symbol 5 -// CHECK-NEXT: (('st_name', 5) # 'foo' +// CHECK: # Symbol 0x00000005 +// CHECK-NEXT: (('st_name', 0x00000005) # 'foo' // CHECK: .rela.text // CHECK: ('_relocations', [ -// CHECK-NEXT: Relocation 0 -// CHECK-NEXT: (('r_offset', 3) -// CHECK-NEXT: ('r_sym', 5) -// CHECK-NEXT: ('r_type', 2) -// CHECK-NEXT: ('r_addend', -4) +// CHECK-NEXT: Relocation 0x00000000 +// CHECK-NEXT: (('r_offset', 0x00000003) +// CHECK-NEXT: ('r_sym', 0x00000005) +// CHECK-NEXT: ('r_type', 0x00000002) +// CHECK-NEXT: ('r_addend', 0xfffffffc) // CHECK-NEXT: ), // CHECK-NEXT: ]) diff --git a/test/MC/ELF/relocation-386.s b/test/MC/ELF/relocation-386.s index 43a9befcecb..06885fdf309 100644 --- a/test/MC/ELF/relocation-386.s +++ b/test/MC/ELF/relocation-386.s @@ -4,50 +4,50 @@ // to .Lfoo uses the symbol and not the section. // Section 3 is bss -// CHECK: # Section 3 -// CHECK-NEXT: (('sh_name', 13) # '.bss' +// CHECK: # Section 0x00000003 +// CHECK-NEXT: (('sh_name', 0x0000000d) # '.bss' -// CHECK: # Symbol 1 -// CHECK-NEXT: (('st_name', 5) # '.Lfoo' +// CHECK: # Symbol 0x00000001 +// CHECK-NEXT: (('st_name', 0x00000005) # '.Lfoo' // Symbol 6 is section 3 -// CHECK: # Symbol 6 -// CHECK-NEXT: (('st_name', 0) # '' -// CHECK-NEXT: ('st_value', 0) -// CHECK-NEXT: ('st_size', 0) -// CHECK-NEXT: ('st_bind', 0) -// CHECK-NEXT: ('st_type', 3) -// CHECK-NEXT: ('st_other', 0) -// CHECK-NEXT: ('st_shndx', 3) +// CHECK: # Symbol 0x00000006 +// CHECK-NEXT: (('st_name', 0x00000000) # '' +// CHECK-NEXT: ('st_value', 0x00000000) +// CHECK-NEXT: ('st_size', 0x00000000) +// CHECK-NEXT: ('st_bind', 0x00000000) +// CHECK-NEXT: ('st_type', 0x00000003) +// CHECK-NEXT: ('st_other', 0x00000000) +// CHECK-NEXT: ('st_shndx', 0x00000003) -// CHECK: # Relocation 0 -// CHECK-NEXT: (('r_offset', 2) -// CHECK-NEXT: ('r_sym', 1) -// CHECK-NEXT: ('r_type', 9) +// CHECK: # Relocation 0x00000000 +// CHECK-NEXT: (('r_offset', 0x00000002) +// CHECK-NEXT: ('r_sym', 0x00000001) +// CHECK-NEXT: ('r_type', 0x00000009) // CHECK-NEXT: ), -// CHECK-NEXT: # Relocation 1 +// CHECK-NEXT: # Relocation 0x00000001 // CHECK-NEXT: (('r_offset', // CHECK-NEXT: ('r_sym', -// CHECK-NEXT: ('r_type', 4) +// CHECK-NEXT: ('r_type', 0x00000004) // CHECK-NEXT: ), -// CHECK-NEXT: # Relocation 2 +// CHECK-NEXT: # Relocation 0x00000002 // CHECK-NEXT: (('r_offset', // CHECK-NEXT: ('r_sym', -// CHECK-NEXT: ('r_type', 10) +// CHECK-NEXT: ('r_type', 0x0000000a) // CHECK-NEXT: ), // Relocation 3 (bar3@GOTOFF) is done with symbol 6 (bss) -// CHECK-NEXT: # Relocation 3 +// CHECK-NEXT: # Relocation 0x00000003 // CHECK-NEXT: (('r_offset', -// CHECK-NEXT: ('r_sym', 6 +// CHECK-NEXT: ('r_sym', 0x00000006 // CHECK-NEXT: ('r_type', // CHECK-NEXT: ), // Relocation 4 (bar2@GOT) is of type R_386_GOT32 -// CHECK-NEXT: # Relocation 4 +// CHECK-NEXT: # Relocation 0x00000004 // CHECK-NEXT: (('r_offset', // CHECK-NEXT: ('r_sym', -// CHECK-NEXT: ('r_type', 3 +// CHECK-NEXT: ('r_type', 0x00000003 // CHECK-NEXT: ), .text diff --git a/test/MC/ELF/relocation.s b/test/MC/ELF/relocation.s index 45c863e6de5..99d2bba63b3 100644 --- a/test/MC/ELF/relocation.s +++ b/test/MC/ELF/relocation.s @@ -10,48 +10,48 @@ bar: movq bar, %rdx // R_X86_64_32S .long bar // R_X86_64_32 -// CHECK: # Section 1 -// CHECK: (('sh_name', 1) # '.text' - -// CHECK: # Symbol 2 -// CHECK: (('st_name', 0) # '' -// CHECK: ('st_bind', 0) -// CHECK ('st_type', 3) -// CHECK: ('st_other', 0) -// CHECK: ('st_shndx', 1) - -// CHECK: # Relocation 0 -// CHECK-NEXT: (('r_offset', 1) -// CHECK-NEXT: ('r_sym', 2) -// CHECK-NEXT: ('r_type', 10) +// CHECK: # Section 0x00000001 +// CHECK: (('sh_name', 0x00000001) # '.text' + +// CHECK: # Symbol 0x00000002 +// CHECK: (('st_name', 0x00000000) # '' +// CHECK: ('st_bind', 0x00000000) +// CHECK ('st_type', 0x00000003) +// CHECK: ('st_other', 0x00000000) +// CHECK: ('st_shndx', 0x00000001) + +// CHECK: # Relocation 0x00000000 +// CHECK-NEXT: (('r_offset', 0x00000001) +// CHECK-NEXT: ('r_sym', 0x00000002) +// CHECK-NEXT: ('r_type', 0x0000000a) // CHECK-NEXT: ('r_addend', -// CHECK: # Relocation 1 -// CHECK-NEXT: (('r_offset', 8) -// CHECK-NEXT: ('r_sym', 2) -// CHECK-NEXT: ('r_type', 11) +// CHECK: # Relocation 0x00000001 +// CHECK-NEXT: (('r_offset', 0x00000008) +// CHECK-NEXT: ('r_sym', 0x00000002) +// CHECK-NEXT: ('r_type', 0x0000000b) // CHECK-NEXT: ('r_addend', -// CHECK: # Relocation 2 -// CHECK-NEXT: (('r_offset', 19) -// CHECK-NEXT: ('r_sym', 2) -// CHECK-NEXT: ('r_type', 11) +// CHECK: # Relocation 0x00000002 +// CHECK-NEXT: (('r_offset', 0x00000013) +// CHECK-NEXT: ('r_sym', 0x00000002) +// CHECK-NEXT: ('r_type', 0x0000000b) // CHECK-NEXT: ('r_addend', -// CHECK: # Relocation 3 -// CHECK-NEXT: (('r_offset', 26) -// CHECK-NEXT: ('r_sym', 2) -// CHECK-NEXT: ('r_type', 11) +// CHECK: # Relocation 0x00000003 +// CHECK-NEXT: (('r_offset', 0x0000001a) +// CHECK-NEXT: ('r_sym', 0x00000002) +// CHECK-NEXT: ('r_type', 0x0000000b) // CHECK-NEXT: ('r_addend', -// CHECK: # Relocation 4 -// CHECK-NEXT: (('r_offset', 34) -// CHECK-NEXT: ('r_sym', 2) -// CHECK-NEXT: ('r_type', 11) +// CHECK: # Relocation 0x00000004 +// CHECK-NEXT: (('r_offset', 0x00000022) +// CHECK-NEXT: ('r_sym', 0x00000002) +// CHECK-NEXT: ('r_type', 0x0000000b) // CHECK-NEXT: ('r_addend', -// CHECK: # Relocation 5 -// CHECK-NEXT: (('r_offset', 38) -// CHECK-NEXT: ('r_sym', 2) -// CHECK-NEXT: ('r_type', 10) +// CHECK: # Relocation 0x00000005 +// CHECK-NEXT: (('r_offset', 0x00000026) +// CHECK-NEXT: ('r_sym', 0x00000002) +// CHECK-NEXT: ('r_type', 0x0000000a) // CHECK-NEXT: ('r_addend', diff --git a/test/MC/ELF/section.s b/test/MC/ELF/section.s index 4622cb41592..cc6fa4c3142 100644 --- a/test/MC/ELF/section.s +++ b/test/MC/ELF/section.s @@ -6,6 +6,6 @@ .section .note.GNU-,"",@progbits .section -.note.GNU,"",@progbits -// CHECK: ('sh_name', 18) # '.note.GNU-stack' -// CHECK: ('sh_name', 34) # '.note.GNU-' -// CHECK: ('sh_name', 45) # '-.note.GNU' +// CHECK: ('sh_name', 0x00000012) # '.note.GNU-stack' +// CHECK: ('sh_name', 0x00000022) # '.note.GNU-' +// CHECK: ('sh_name', 0x0000002d) # '-.note.GNU' diff --git a/test/MC/ELF/size.s b/test/MC/ELF/size.s index a19bce08f1a..7ad13361b7e 100644 --- a/test/MC/ELF/size.s +++ b/test/MC/ELF/size.s @@ -2,8 +2,8 @@ // Mostly a test that this doesn't crash anymore. -// CHECK: # Symbol 4 -// CHECK-NEXT: (('st_name', 1) # 'foo' -// CHECK-NEXT: ('st_bind', 1) +// CHECK: # Symbol 0x00000004 +// CHECK-NEXT: (('st_name', 0x00000001) # 'foo' +// CHECK-NEXT: ('st_bind', 0x00000001) .size foo, .Lbar-foo diff --git a/test/MC/ELF/sleb.s b/test/MC/ELF/sleb.s index c3e471f6250..00e5b4bf282 100644 --- a/test/MC/ELF/sleb.s +++ b/test/MC/ELF/sleb.s @@ -19,9 +19,9 @@ foo: .sleb128 8193 -// ELF_32: ('sh_name', 1) # '.text' +// ELF_32: ('sh_name', 0x00000001) # '.text' // ELF_32: ('_section_data', '00017f3f 40c000bf 7fff3f80 4081c000') -// ELF_64: ('sh_name', 1) # '.text' +// ELF_64: ('sh_name', 0x00000001) # '.text' // ELF_64: ('_section_data', '00017f3f 40c000bf 7fff3f80 4081c000') // MACHO_32: ('section_name', '__text\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00') // MACHO_32: ('_section_data', '00017f3f 40c000bf 7fff3f80 4081c000') diff --git a/test/MC/ELF/uleb.s b/test/MC/ELF/uleb.s index d8d1727af7c..1e4734bcafc 100644 --- a/test/MC/ELF/uleb.s +++ b/test/MC/ELF/uleb.s @@ -12,9 +12,9 @@ foo: .uleb128 16383 .uleb128 16384 -// ELF_32: ('sh_name', 1) # '.text' +// ELF_32: ('sh_name', 0x00000001) # '.text' // ELF_32: ('_section_data', '00017f80 01ff7f80 8001') -// ELF_64: ('sh_name', 1) # '.text' +// ELF_64: ('sh_name', 0x00000001) # '.text' // ELF_64: ('_section_data', '00017f80 01ff7f80 8001') // MACHO_32: ('section_name', '__text\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00') // MACHO_32: ('_section_data', '00017f80 01ff7f80 8001') diff --git a/test/MC/ELF/undef.s b/test/MC/ELF/undef.s index 1f6a52bffe5..01aeac664d6 100644 --- a/test/MC/ELF/undef.s +++ b/test/MC/ELF/undef.s @@ -19,27 +19,27 @@ movsd .Lsym8(%rip), %xmm1 // CHECK: ('_symbols', [ -// CHECK-NEXT: # Symbol 0 -// CHECK-NEXT: (('st_name', 0) # '' -// CHECK: # Symbol 1 -// CHECK-NEXT: (('st_name', 13) # '.Lsym8' -// CHECK: # Symbol 2 -// CHECK-NEXT: (('st_name', 0) # '' -// CHECK: # Symbol 3 -// CHECK-NEXT: (('st_name', 0) # '' -// CHECK: # Symbol 4 -// CHECK-NEXT: (('st_name', 0) # '' -// CHECK: # Symbol 5 -// CHECK-NEXT: (('st_name', 0) # '' -// CHECK: # Symbol 6 -// CHECK-NEXT: (('st_name', 1) # '.Lsym1' -// CHECK: # Symbol 7 -// CHECK-NEXT: (('st_name', 8) # 'sym6' -// CHECK-NEXT: ('st_bind', 1) -// CHECK-NEXT: ('st_type', 1) -// CHECK-NEXT: ('st_other', 0) -// CHECK-NEXT: ('st_shndx', 0) -// CHECK-NEXT: ('st_value', 0) -// CHECK-NEXT: ('st_size', 0) +// CHECK-NEXT: # Symbol 0x00000000 +// CHECK-NEXT: (('st_name', 0x00000000) # '' +// CHECK: # Symbol 0x00000001 +// CHECK-NEXT: (('st_name', 0x0000000d) # '.Lsym8' +// CHECK: # Symbol 0x00000002 +// CHECK-NEXT: (('st_name', 0x00000000) # '' +// CHECK: # Symbol 0x00000003 +// CHECK-NEXT: (('st_name', 0x00000000) # '' +// CHECK: # Symbol 0x00000004 +// CHECK-NEXT: (('st_name', 0x00000000) # '' +// CHECK: # Symbol 0x00000005 +// CHECK-NEXT: (('st_name', 0x00000000) # '' +// CHECK: # Symbol 0x00000006 +// CHECK-NEXT: (('st_name', 0x00000001) # '.Lsym1' +// CHECK: # Symbol 0x00000007 +// CHECK-NEXT: (('st_name', 0x00000008) # 'sym6' +// CHECK-NEXT: ('st_bind', 0x00000001) +// CHECK-NEXT: ('st_type', 0x00000001) +// CHECK-NEXT: ('st_other', 0x00000000) +// CHECK-NEXT: ('st_shndx', 0x00000000) +// CHECK-NEXT: ('st_value', 0x00000000) +// CHECK-NEXT: ('st_size', 0x00000000) // CHECK-NEXT: ), // CHECK-NEXT: ]) diff --git a/test/MC/ELF/undef2.s b/test/MC/ELF/undef2.s index 764f1d7bd3d..9544fbc42ac 100644 --- a/test/MC/ELF/undef2.s +++ b/test/MC/ELF/undef2.s @@ -5,6 +5,6 @@ je .Lfoo // CHECK: ('_symbols', [ -// CHECK: (('st_name', 1) # '.Lfoo' -// CHECK-NEXT: ('st_bind', 1) -// CHECK: (('sh_name', 36) # '.strtab' +// CHECK: (('st_name', 0x00000001) # '.Lfoo' +// CHECK-NEXT: ('st_bind', 0x00000001) +// CHECK: (('sh_name', 0x00000024) # '.strtab' diff --git a/test/MC/ELF/weak.s b/test/MC/ELF/weak.s index 0b93a871183..332b91bf76f 100644 --- a/test/MC/ELF/weak.s +++ b/test/MC/ELF/weak.s @@ -9,22 +9,22 @@ .weak bar bar: -//CHECK: # Symbol 4 -//CHECK-NEXT: (('st_name', 5) # 'bar' -//CHECK-NEXT: ('st_bind', 2) -//CHECK-NEXT: ('st_type', 0) -//CHECK-NEXT: ('st_other', 0) -//CHECK-NEXT: ('st_shndx', 1) -//CHECK-NEXT: ('st_value', 0) -//CHECK-NEXT: ('st_size', 0) +//CHECK: # Symbol 0x00000004 +//CHECK-NEXT: (('st_name', 0x00000005) # 'bar' +//CHECK-NEXT: ('st_bind', 0x00000002) +//CHECK-NEXT: ('st_type', 0x00000000) +//CHECK-NEXT: ('st_other', 0x00000000) +//CHECK-NEXT: ('st_shndx', 0x00000001) +//CHECK-NEXT: ('st_value', 0x00000000) +//CHECK-NEXT: ('st_size', 0x00000000) //CHECK-NEXT: ), -//CHECK-NEXT: # Symbol 5 -//CHECK: (('st_name', 1) # 'foo' -//CHECK-NEXT: ('st_bind', 2) -//CHECK-NEXT: ('st_type', 0) -//CHECK-NEXT: ('st_other', 0) -//CHECK-NEXT: ('st_shndx', 0) -//CHECK-NEXT: ('st_value', 0) -//CHECK-NEXT: ('st_size', 0) +//CHECK-NEXT: # Symbol 0x00000005 +//CHECK: (('st_name', 0x00000001) # 'foo' +//CHECK-NEXT: ('st_bind', 0x00000002) +//CHECK-NEXT: ('st_type', 0x00000000) +//CHECK-NEXT: ('st_other', 0x00000000) +//CHECK-NEXT: ('st_shndx', 0x00000000) +//CHECK-NEXT: ('st_value', 0x00000000) +//CHECK-NEXT: ('st_size', 0x00000000) //CHECK-NEXT: ), //CHECK-NEXT: ]) diff --git a/test/MC/ELF/zero.s b/test/MC/ELF/zero.s index a7518e1e4fd..adf21f8a6be 100644 --- a/test/MC/ELF/zero.s +++ b/test/MC/ELF/zero.s @@ -3,14 +3,14 @@ .zero 4 .zero 1,42 -// CHECK: ('sh_name', 1) # '.text' -// CHECK: ('sh_type', 1) -// CHECK: ('sh_flags', 6) -// CHECK: ('sh_addr', 0) -// CHECK: ('sh_offset', 64) -// CHECK: ('sh_size', 5) -// CHECK: ('sh_link', 0) -// CHECK: ('sh_info', 0) -// CHECK: ('sh_addralign', 4) -// CHECK: ('sh_entsize', 0) +// CHECK: ('sh_name', 0x00000001) # '.text' +// CHECK: ('sh_type', 0x00000001) +// CHECK: ('sh_flags', 0x00000006) +// CHECK: ('sh_addr', 0x00000000) +// CHECK: ('sh_offset', 0x00000040) +// CHECK: ('sh_size', 0x00000005) +// CHECK: ('sh_link', 0x00000000) +// CHECK: ('sh_info', 0x00000000) +// CHECK: ('sh_addralign', 0x00000004) +// CHECK: ('sh_entsize', 0x00000000) // CHECK: ('_section_data', '00000000 2a') diff --git a/test/Scripts/common_dump.py b/test/Scripts/common_dump.py index 444b389dd0e..3d69c3fb27f 100644 --- a/test/Scripts/common_dump.py +++ b/test/Scripts/common_dump.py @@ -11,3 +11,36 @@ def dataToHex(d): hex_byte += ' ' bytes.append(hex_byte) return ''.join(bytes).strip() + +def dataToHexUnified(d): + """ Convert the raw data in 'd' to an hex string with a space every 4 bytes. + Each 4byte number is prefixed with 0x for easy sed/rx + Fixme: convert all MC tests to use this routine instead of the above + """ + bytes = [] + for i,c in enumerate(d): + byte = ord(c) + hex_byte = hex(byte)[2:] + if byte <= 0xf: + hex_byte = '0' + hex_byte + if i % 4 == 0: + hex_byte = '0x' + hex_byte + if i % 4 == 3: + hex_byte += ' ' + bytes.append(hex_byte) + return ''.join(bytes).strip() + + +def HexDump(val, numBits=32): + """ + 1. do not print 'L' + 2. Handle negatives and large numbers by mod (2^numBits) + 3. print fixed length, prepend with zeros. + Length is exactly 2+(numBits/4) + 4. Do print 0x Why? + so that they can be easily distinguished using sed/rx + """ + val = val & (( 1 << numBits) - 1) + newFmt = "0x%0" + "%d" % (numBits / 4) + "x" + return newFmt % val + diff --git a/test/Scripts/elf-dump b/test/Scripts/elf-dump index 1db4c49cc6b..31bcae76404 100755 --- a/test/Scripts/elf-dump +++ b/test/Scripts/elf-dump @@ -6,6 +6,8 @@ import StringIO import common_dump +FormatOutput=hex + class Reader: def __init__(self, path): if path == "-": @@ -77,16 +79,16 @@ class Section: self.sh_entsize = f.readWord() def dump(self, shstrtab, f, strtab, dumpdata): - print " (('sh_name', %d) # %r" % (self.sh_name, shstrtab[self.sh_name]) - print " ('sh_type', %d)" % self.sh_type - print " ('sh_flags', %d)" % self.sh_flags - print " ('sh_addr', %d)" % self.sh_addr - print " ('sh_offset', %d)" % self.sh_offset - print " ('sh_size', %d)" % self.sh_size - print " ('sh_link', %d)" % self.sh_link - print " ('sh_info', %d)" % self.sh_info - print " ('sh_addralign', %d)" % self.sh_addralign - print " ('sh_entsize', %d)" % self.sh_entsize + print " (('sh_name', %s)" % common_dump.HexDump(self.sh_name), "# %r" % shstrtab[self.sh_name] + print " ('sh_type', %s)" % common_dump.HexDump(self.sh_type) + print " ('sh_flags', %s)" % common_dump.HexDump(self.sh_flags) + print " ('sh_addr', %s)" % common_dump.HexDump(self.sh_addr) + print " ('sh_offset', %s)" % common_dump.HexDump(self.sh_offset) + print " ('sh_size', %s)" % common_dump.HexDump(self.sh_size) + print " ('sh_link', %s)" % common_dump.HexDump(self.sh_link) + print " ('sh_info', %s)" % common_dump.HexDump(self.sh_info) + print " ('sh_addralign', %s)" % common_dump.HexDump(self.sh_addralign) + print " ('sh_entsize', %s)" % common_dump.HexDump(self.sh_entsize) if self.sh_type == 2: # SHT_SYMTAB print " ('_symbols', [" dumpSymtab(f, self, strtab) @@ -106,20 +108,20 @@ def dumpSymtab(f, section, strtab): for index in range(entries): f.seek(section.sh_offset + index * section.sh_entsize) - print " # Symbol %d" % index + print " # Symbol %s" % common_dump.HexDump(index) name = f.read32() - print " (('st_name', %d) # %r" % (name, strtab[name]) + print " (('st_name', %s)" % common_dump.HexDump(name), "# %r" % strtab[name] if not f.is64Bit: - print " ('st_value', %d)" % f.read32() - print " ('st_size', %d)" % f.read32() + print " ('st_value', %s)" % common_dump.HexDump(f.read32()) + print " ('st_size', %s)" % common_dump.HexDump(f.read32()) st_info = f.read8() - print " ('st_bind', %d)" % (st_info >> 4) - print " ('st_type', %d)" % (st_info & 0xf) - print " ('st_other', %d)" % f.read8() - print " ('st_shndx', %d)" % f.read16() + print " ('st_bind', %s)" % common_dump.HexDump((st_info >> 4)) + print " ('st_type', %s)" % common_dump.HexDump((st_info & 0xf)) + print " ('st_other', %s)" % common_dump.HexDump(f.read8()) + print " ('st_shndx', %s)" % common_dump.HexDump(f.read16()) if f.is64Bit: - print " ('st_value', %d)" % f.read64() - print " ('st_size', %d)" % f.read64() + print " ('st_value', %s)" % common_dump.HexDump(f.read64()) + print " ('st_size', %s)" % common_dump.HexDump(f.read64()) print " )," def dumpRel(f, section, dumprela = False): @@ -127,17 +129,17 @@ def dumpRel(f, section, dumprela = False): for index in range(entries): f.seek(section.sh_offset + index * section.sh_entsize) - print " # Relocation %d" % index - print " (('r_offset', %d)" % f.readWord() + print " # Relocation %s" % common_dump.HexDump(index) + print " (('r_offset', %s)" % common_dump.HexDump(f.readWord()) r_info = f.readWord() if f.is64Bit: - print " ('r_sym', %d)" % (r_info >> 32) - print " ('r_type', %d)" % (r_info & 0xffffffff) + print " ('r_sym', %s)" % common_dump.HexDump((r_info >> 32)) + print " ('r_type', %s)" % common_dump.HexDump((r_info & 0xffffffff)) else: - print " ('r_sym', %d)" % (r_info >> 8) - print " ('r_type', %d)" % (r_info & 0xff) + print " ('r_sym', %s)" % common_dump.HexDump((r_info >> 8)) + print " ('r_type', %s)" % common_dump.HexDump((r_info & 0xff)) if dumprela: - print " ('r_addend', %d)" % f.readWordS() + print " ('r_addend', %s)" % common_dump.HexDump(f.readWordS()) print " )," def dumpELF(path, opts): @@ -152,8 +154,8 @@ def dumpELF(path, opts): elif fileclass == 2: # ELFCLASS64 f.is64Bit = True else: - raise ValueError, "Unknown file class %d" % fileclass - print "('e_indent[EI_CLASS]', %d)" % fileclass + raise ValueError, "Unknown file class %s" % common_dump.HexDump(fileclass) + print "('e_indent[EI_CLASS]', %s)" % common_dump.HexDump(fileclass) byteordering = f.read8() if byteordering == 1: # ELFDATA2LSB @@ -161,32 +163,32 @@ def dumpELF(path, opts): elif byteordering == 2: # ELFDATA2MSB f.isLSB = False else: - raise ValueError, "Unknown byte ordering %d" % byteordering - print "('e_indent[EI_DATA]', %d)" % byteordering + raise ValueError, "Unknown byte ordering %s" % common_dump.HexDump(byteordering) + print "('e_indent[EI_DATA]', %s)" % common_dump.HexDump(byteordering) - print "('e_indent[EI_VERSION]', %d)" % f.read8() - print "('e_indent[EI_OSABI]', %d)" % f.read8() - print "('e_indent[EI_ABIVERSION]', %d)" % f.read8() + print "('e_indent[EI_VERSION]', %s)" % common_dump.HexDump(f.read8()) + print "('e_indent[EI_OSABI]', %s)" % common_dump.HexDump(f.read8()) + print "('e_indent[EI_ABIVERSION]', %s)" % common_dump.HexDump(f.read8()) f.seek(16) # Seek to end of e_ident. - print "('e_type', %d)" % f.read16() - print "('e_machine', %d)" % f.read16() - print "('e_version', %d)" % f.read32() - print "('e_entry', %d)" % f.readWord() - print "('e_phoff', %d)" % f.readWord() + print "('e_type', %s)" % common_dump.HexDump(f.read16()) + print "('e_machine', %s)" % common_dump.HexDump(f.read16()) + print "('e_version', %s)" % common_dump.HexDump(f.read32()) + print "('e_entry', %s)" % common_dump.HexDump(f.readWord()) + print "('e_phoff', %s)" % common_dump.HexDump(f.readWord()) e_shoff = f.readWord() - print "('e_shoff', %d)" % e_shoff - print "('e_flags', %d)" % f.read32() - print "('e_ehsize', %d)" % f.read16() - print "('e_phentsize', %d)" % f.read16() - print "('e_phnum', %d)" % f.read16() + print "('e_shoff', %s)" % common_dump.HexDump(e_shoff) + print "('e_flags', %s)" % common_dump.HexDump(f.read32()) + print "('e_ehsize', %s)" % common_dump.HexDump(f.read16()) + print "('e_phentsize', %s)" % common_dump.HexDump(f.read16()) + print "('e_phnum', %s)" % common_dump.HexDump(f.read16()) e_shentsize = f.read16() - print "('e_shentsize', %d)" % e_shentsize + print "('e_shentsize', %s)" % common_dump.HexDump(e_shentsize) e_shnum = f.read16() - print "('e_shnum', %d)" % e_shnum + print "('e_shnum', %s)" % common_dump.HexDump(e_shnum) e_shstrndx = f.read16() - print "('e_shstrndx', %d)" % e_shstrndx + print "('e_shstrndx', %s)" % common_dump.HexDump(e_shstrndx) # Read all section headers sections = [] @@ -209,7 +211,7 @@ def dumpELF(path, opts): print "('_sections', [" for index in range(e_shnum): - print " # Section %d" % index + print " # Section %s" % common_dump.HexDump(index) sections[index].dump(shstrtab, f, strtab, opts.dumpSectionData) print "])" -- 2.34.1