diff options
Diffstat (limited to 'test/tools/llvm-objdump/ARM')
-rwxr-xr-x | test/tools/llvm-objdump/ARM/Inputs/hello.exe.macho-arm | bin | 0 -> 49408 bytes | |||
-rw-r--r-- | test/tools/llvm-objdump/ARM/Inputs/hello.obj.macho-arm | bin | 0 -> 744 bytes | |||
-rw-r--r-- | test/tools/llvm-objdump/ARM/lit.local.cfg | 2 | ||||
-rw-r--r-- | test/tools/llvm-objdump/ARM/macho-arm-and-thumb.test | 15 | ||||
-rw-r--r-- | test/tools/llvm-objdump/ARM/macho-mattr-arm.test | 5 | ||||
-rw-r--r-- | test/tools/llvm-objdump/ARM/macho-mcpu-arm.test | 10 | ||||
-rw-r--r-- | test/tools/llvm-objdump/ARM/macho-private-headers.test | 345 | ||||
-rw-r--r-- | test/tools/llvm-objdump/ARM/macho-symbolized-disassembly.test | 8 | ||||
-rw-r--r-- | test/tools/llvm-objdump/ARM/macho-symbolized-subtractor.test | 15 |
9 files changed, 400 insertions, 0 deletions
diff --git a/test/tools/llvm-objdump/ARM/Inputs/hello.exe.macho-arm b/test/tools/llvm-objdump/ARM/Inputs/hello.exe.macho-arm Binary files differnew file mode 100755 index 000000000000..40d657b35c04 --- /dev/null +++ b/test/tools/llvm-objdump/ARM/Inputs/hello.exe.macho-arm diff --git a/test/tools/llvm-objdump/ARM/Inputs/hello.obj.macho-arm b/test/tools/llvm-objdump/ARM/Inputs/hello.obj.macho-arm Binary files differnew file mode 100644 index 000000000000..fb8706b28573 --- /dev/null +++ b/test/tools/llvm-objdump/ARM/Inputs/hello.obj.macho-arm diff --git a/test/tools/llvm-objdump/ARM/lit.local.cfg b/test/tools/llvm-objdump/ARM/lit.local.cfg new file mode 100644 index 000000000000..236e1d344166 --- /dev/null +++ b/test/tools/llvm-objdump/ARM/lit.local.cfg @@ -0,0 +1,2 @@ +if not 'ARM' in config.root.targets: + config.unsupported = True diff --git a/test/tools/llvm-objdump/ARM/macho-arm-and-thumb.test b/test/tools/llvm-objdump/ARM/macho-arm-and-thumb.test new file mode 100644 index 000000000000..720b78fa89e2 --- /dev/null +++ b/test/tools/llvm-objdump/ARM/macho-arm-and-thumb.test @@ -0,0 +1,15 @@ +@ RUN: llvm-mc < %s -triple armv7-apple-darwin -filetype=obj | llvm-objdump -m -d - | FileCheck %s + +.thumb +.thumb_func _t +_t: +nop +nop +.align 2 +.arm +_a: +nop + +@ CHECK: 00 bf nop +@ CHECK-NEXT: 00 bf nop +@ CHECK: 00 f0 20 e3 nop diff --git a/test/tools/llvm-objdump/ARM/macho-mattr-arm.test b/test/tools/llvm-objdump/ARM/macho-mattr-arm.test new file mode 100644 index 000000000000..1b1714640c89 --- /dev/null +++ b/test/tools/llvm-objdump/ARM/macho-mattr-arm.test @@ -0,0 +1,5 @@ +@ RUN: llvm-mc < %s -triple armv8-apple-darwin10 -mattr=+fp-armv8 -filetype=obj -o - | llvm-objdump -d -m -mattr=+fp-armv8 - | FileCheck %s + +vcvtt.f64.f16 d3, s1 + +@ CHECK: e0 3b b2 ee vcvtt.f64.f16 d3, s1 diff --git a/test/tools/llvm-objdump/ARM/macho-mcpu-arm.test b/test/tools/llvm-objdump/ARM/macho-mcpu-arm.test new file mode 100644 index 000000000000..7a3432d9e1a8 --- /dev/null +++ b/test/tools/llvm-objdump/ARM/macho-mcpu-arm.test @@ -0,0 +1,10 @@ +@ RUN: llvm-mc < %s -triple thumbv7-apple-darwin -mcpu=cortex-a7 -filetype=obj | llvm-objdump -triple thumbv7-apple-darwin10 -m -d -mcpu=cortex-a7 - | FileCheck %s + +.thumb +.thumb_func _t +_t: +sdiv r1, r2, r3 +udiv r1, r2, r3 + +@ CHECK: 92 fb f3 f1 sdiv r1, r2, r3 +@ CHECK: b2 fb f3 f1 udiv r1, r2, r3 diff --git a/test/tools/llvm-objdump/ARM/macho-private-headers.test b/test/tools/llvm-objdump/ARM/macho-private-headers.test new file mode 100644 index 000000000000..4ab30433c078 --- /dev/null +++ b/test/tools/llvm-objdump/ARM/macho-private-headers.test @@ -0,0 +1,345 @@ +// RUN: llvm-objdump -p %p/Inputs/hello.obj.macho-arm | FileCheck %s +// RUN: llvm-objdump -p %p/Inputs/hello.exe.macho-arm \ +// RUN: | FileCheck %s -check-prefix=EXE + +CHECK: Mach header +CHECK: magic cputype cpusubtype caps filetype ncmds sizeofcmds flags +CHECK: MH_MAGIC ARM V7 0x00 OBJECT 3 568 SUBSECTIONS_VIA_SYMBOLS +CHECK: Load command 0 +CHECK: cmd LC_SEGMENT +CHECK: cmdsize 464 +CHECK: segname +CHECK: vmaddr 0x00000000 +CHECK: vmsize 0x00000043 +CHECK: fileoff 596 +CHECK: filesize 67 +CHECK: maxprot rwx +CHECK: initprot rwx +CHECK: nsects 6 +CHECK: flags (none) +CHECK: Section +CHECK: sectname __text +CHECK: segname __TEXT +CHECK: addr 0x00000000 +CHECK: size 0x00000036 +CHECK: offset 596 +CHECK: align 2^2 (4) +CHECK: reloff 664 +CHECK: nreloc 5 +CHECK: type S_REGULAR +CHECK: attributes PURE_INSTRUCTIONS SOME_INSTRUCTIONS +CHECK: reserved1 0 +CHECK: reserved2 0 +CHECK: Section +CHECK: sectname __textcoal_nt +CHECK: segname __TEXT +CHECK: addr 0x00000036 +CHECK: size 0x00000000 +CHECK: offset 650 +CHECK: align 2^0 (1) +CHECK: reloff 0 +CHECK: nreloc 0 +CHECK: type S_COALESCED +CHECK: attributes PURE_INSTRUCTIONS +CHECK: reserved1 0 +CHECK: reserved2 0 +CHECK: Section +CHECK: sectname __const_coal +CHECK: segname __TEXT +CHECK: addr 0x00000036 +CHECK: size 0x00000000 +CHECK: offset 650 +CHECK: align 2^0 (1) +CHECK: reloff 0 +CHECK: nreloc 0 +CHECK: type S_COALESCED +CHECK: attributes (none) +CHECK: reserved1 0 +CHECK: reserved2 0 +CHECK: Section +CHECK: sectname __picsymbolstub4 +CHECK: segname __TEXT +CHECK: addr 0x00000036 +CHECK: size 0x00000000 +CHECK: offset 650 +CHECK: align 2^0 (1) +CHECK: reloff 0 +CHECK: nreloc 0 +CHECK: type S_SYMBOL_STUBS +CHECK: attributes (none) +CHECK: reserved1 0 (index into indirect symbol table) +CHECK: reserved2 16 (size of stubs) +CHECK: Section +CHECK: sectname __StaticInit +CHECK: segname __TEXT +CHECK: addr 0x00000036 +CHECK: size 0x00000000 +CHECK: offset 650 +CHECK: align 2^0 (1) +CHECK: reloff 0 +CHECK: nreloc 0 +CHECK: type S_REGULAR +CHECK: attributes PURE_INSTRUCTIONS +CHECK: reserved1 0 +CHECK: reserved2 0 +CHECK: Section +CHECK: sectname __cstring +CHECK: segname __TEXT +CHECK: addr 0x00000036 +CHECK: size 0x0000000d +CHECK: offset 650 +CHECK: align 2^0 (1) +CHECK: reloff 0 +CHECK: nreloc 0 +CHECK: type S_CSTRING_LITERALS +CHECK: attributes (none) +CHECK: reserved1 0 +CHECK: reserved2 0 +CHECK: Load command 1 +CHECK: cmd LC_SYMTAB +CHECK: cmdsize 24 +CHECK: symoff 704 +CHECK: nsyms 2 +CHECK: stroff 728 +CHECK: strsize 16 +CHECK: Load command 2 +CHECK: cmd LC_DYSYMTAB +CHECK: cmdsize 80 +CHECK: ilocalsym 0 +CHECK: nlocalsym 0 +CHECK: iextdefsym 0 +CHECK: nextdefsym 1 +CHECK: iundefsym 1 +CHECK: nundefsym 1 +CHECK: tocoff 0 +CHECK: ntoc 0 +CHECK: modtaboff 0 +CHECK: nmodtab 0 +CHECK: extrefsymoff 0 +CHECK: nextrefsyms 0 +CHECK: indirectsymoff 0 +CHECK: nindirectsyms 0 +CHECK: extreloff 0 +CHECK: nextrel 0 +CHECK: locreloff 0 +CHECK: nlocrel 0 + +EXE: Mach header +EXE: magic cputype cpusubtype caps filetype ncmds sizeofcmds flags +EXE: MH_MAGIC ARM V7 0x00 EXECUTE 17 1012 NOUNDEFS DYLDLINK TWOLEVEL PIE +EXE: Load command 0 +EXE: cmd LC_SEGMENT +EXE: cmdsize 56 +EXE: segname __PAGEZERO +EXE: vmaddr 0x00000000 +EXE: vmsize 0x00004000 +EXE: fileoff 0 +EXE: filesize 0 +EXE: maxprot --- +EXE: initprot --- +EXE: nsects 0 +EXE: flags (none) +EXE: Load command 1 +EXE: cmd LC_SEGMENT +EXE: cmdsize 328 +EXE: segname __TEXT +EXE: vmaddr 0x00004000 +EXE: vmsize 0x00008000 +EXE: fileoff 0 +EXE: filesize 32768 +EXE: maxprot r-x +EXE: initprot r-x +EXE: nsects 4 +EXE: flags (none) +EXE: Section +EXE: sectname __text +EXE: segname __TEXT +EXE: addr 0x0000bf84 +EXE: size 0x00000036 +EXE: offset 32644 +EXE: align 2^2 (4) +EXE: reloff 0 +EXE: nreloc 0 +EXE: type S_REGULAR +EXE: attributes PURE_INSTRUCTIONS SOME_INSTRUCTIONS +EXE: reserved1 0 +EXE: reserved2 0 +EXE: Section +EXE: sectname __stub_helper +EXE: segname __TEXT +EXE: addr 0x0000bfbc +EXE: size 0x00000030 +EXE: offset 32700 +EXE: align 2^2 (4) +EXE: reloff 0 +EXE: nreloc 0 +EXE: type S_REGULAR +EXE: attributes PURE_INSTRUCTIONS SOME_INSTRUCTIONS +EXE: reserved1 0 +EXE: reserved2 0 +EXE: Section +EXE: sectname __cstring +EXE: segname __TEXT +EXE: addr 0x0000bfec +EXE: size 0x0000000d +EXE: offset 32748 +EXE: align 2^0 (1) +EXE: reloff 0 +EXE: nreloc 0 +EXE: type S_CSTRING_LITERALS +EXE: attributes (none) +EXE: reserved1 0 +EXE: reserved2 0 +EXE: Section +EXE: sectname __symbolstub1 +EXE: segname __TEXT +EXE: addr 0x0000bffc +EXE: size 0x00000004 +EXE: offset 32764 +EXE: align 2^2 (4) +EXE: reloff 0 +EXE: nreloc 0 +EXE: type S_SYMBOL_STUBS +EXE: attributes PURE_INSTRUCTIONS SOME_INSTRUCTIONS +EXE: reserved1 0 (index into indirect symbol table) +EXE: reserved2 4 (size of stubs) +EXE: Load command 2 +EXE: cmd LC_SEGMENT +EXE: cmdsize 192 +EXE: segname __DATA +EXE: vmaddr 0x0000c000 +EXE: vmsize 0x00004000 +EXE: fileoff 32768 +EXE: filesize 16384 +EXE: maxprot rw- +EXE: initprot rw- +EXE: nsects 2 +EXE: flags (none) +EXE: Section +EXE: sectname __lazy_symbol +EXE: segname __DATA +EXE: addr 0x0000c000 +EXE: size 0x00000004 +EXE: offset 32768 +EXE: align 2^2 (4) +EXE: reloff 0 +EXE: nreloc 0 +EXE: type S_LAZY_SYMBOL_POINTERS +EXE: attributes (none) +EXE: reserved1 1 (index into indirect symbol table) +EXE: reserved2 0 +EXE: Section +EXE: sectname __nl_symbol_ptr +EXE: segname __DATA +EXE: addr 0x0000c004 +EXE: size 0x00000008 +EXE: offset 32772 +EXE: align 2^2 (4) +EXE: reloff 0 +EXE: nreloc 0 +EXE: type S_NON_LAZY_SYMBOL_POINTERS +EXE: attributes (none) +EXE: reserved1 2 (index into indirect symbol table) +EXE: reserved2 0 +EXE: Load command 3 +EXE: cmd LC_SEGMENT +EXE: cmdsize 56 +EXE: segname __LINKEDIT +EXE: vmaddr 0x00010000 +EXE: vmsize 0x00004000 +EXE: fileoff 49152 +EXE: filesize 256 +EXE: maxprot r-- +EXE: initprot r-- +EXE: nsects 0 +EXE: flags (none) +EXE: Load command 4 +EXE: cmd LC_DYLD_INFO_ONLY +EXE: cmdsize 48 +EXE: rebase_off 49152 +EXE: rebase_size 4 +EXE: bind_off 49156 +EXE: bind_size 24 +EXE: weak_bind_off 0 +EXE: weak_bind_size 0 +EXE: lazy_bind_off 49180 +EXE: lazy_bind_size 16 +EXE: export_off 49196 +EXE: export_size 44 +EXE: Load command 5 +EXE: cmd LC_SYMTAB +EXE: cmdsize 24 +EXE: symoff 49264 +EXE: nsyms 5 +EXE: stroff 49340 +EXE: strsize 68 +EXE: Load command 6 +EXE: cmd LC_DYSYMTAB +EXE: cmdsize 80 +EXE: ilocalsym 0 +EXE: nlocalsym 1 +EXE: iextdefsym 1 +EXE: nextdefsym 2 +EXE: iundefsym 3 +EXE: nundefsym 2 +EXE: tocoff 0 +EXE: ntoc 0 +EXE: modtaboff 0 +EXE: nmodtab 0 +EXE: extrefsymoff 0 +EXE: nextrefsyms 0 +EXE: indirectsymoff 49324 +EXE: nindirectsyms 4 +EXE: extreloff 0 +EXE: nextrel 0 +EXE: locreloff 0 +EXE: nlocrel 0 +EXE: Load command 7 +EXE: cmd LC_LOAD_DYLINKER +EXE: cmdsize 28 +EXE: name /usr/lib/dyld (offset 12) +EXE: Load command 8 +EXE: cmd LC_UUID +EXE: cmdsize 24 +EXE: uuid C2D9351C-1EF1-330B-A2AB-EED6CF7D2C5D +EXE: Load command 9 +EXE: cmd LC_VERSION_MIN_IPHONEOS +EXE: cmdsize 16 +EXE: version 8.0 +EXE: sdk 8.0 +EXE: Load command 10 +EXE: cmd LC_SOURCE_VERSION +EXE: cmdsize 16 +EXE: version 0.0 +EXE: Load command 11 +EXE: cmd LC_MAIN +EXE: cmdsize 24 +EXE: entryoff 32645 +EXE: stacksize 0 +EXE: Load command 12 +EXE: cmd LC_ENCRYPTION_INFO +EXE: cmdsize 20 +EXE: cryptoff 16384 +EXE: cryptsize 16384 +EXE: cryptid 0 +EXE: Load command 13 +EXE: cmd LC_LOAD_DYLIB +EXE: cmdsize 52 +EXE: name /usr/lib/libSystem.B.dylib (offset 24) +EXE: current version 1213.0.0 +EXE: compatibility version 1.0.0 +EXE: Load command 14 +EXE: cmd LC_FUNCTION_STARTS +EXE: cmdsize 16 +EXE: dataoff 49240 +EXE: datasize 4 +EXE: Load command 15 +EXE: cmd LC_DATA_IN_CODE +EXE: cmdsize 16 +EXE: dataoff 49244 +EXE: datasize 0 +EXE: Load command 16 +EXE: cmd LC_DYLIB_CODE_SIGN_DRS +EXE: cmdsize 16 +EXE: dataoff 49244 +EXE: datasize 20 diff --git a/test/tools/llvm-objdump/ARM/macho-symbolized-disassembly.test b/test/tools/llvm-objdump/ARM/macho-symbolized-disassembly.test new file mode 100644 index 000000000000..eeeab526cf81 --- /dev/null +++ b/test/tools/llvm-objdump/ARM/macho-symbolized-disassembly.test @@ -0,0 +1,8 @@ +// RUN: llvm-objdump -d -m -no-show-raw-insn -full-leading-addr -print-imm-hex %p/Inputs/hello.obj.macho-arm | FileCheck %s -check-prefix=OBJ +// RUN: llvm-objdump -d -m -no-show-raw-insn -full-leading-addr -print-imm-hex %p/Inputs/hello.exe.macho-arm | FileCheck %s -check-prefix=EXE + +OBJ: 00000006 movw r3, :lower16:((54-14)-4) +OBJ: 0000000a movt r3, :upper16:((54-14)-4) +OBJ: 00000024 bl _printf + +EXE: 0000bfa8 blx 0xbffc @ symbol stub for: _printf diff --git a/test/tools/llvm-objdump/ARM/macho-symbolized-subtractor.test b/test/tools/llvm-objdump/ARM/macho-symbolized-subtractor.test new file mode 100644 index 000000000000..65df2a984cd0 --- /dev/null +++ b/test/tools/llvm-objdump/ARM/macho-symbolized-subtractor.test @@ -0,0 +1,15 @@ +# RUN: llvm-mc < %s -triple armv7-apple-darwin -filetype=obj | llvm-objdump -m -d - | FileCheck %s + .thumb + .thumb_func _t +_t: + movw r3, :lower16:(Str-(PCinst+4)) + movt r3, :upper16:(Str-(PCinst+4)) + .thumb_func PCinst +PCinst: + add r3, pc + + .section __TEXT,__cstring,cstring_literals +Str: + .asciz "Hello world\n" +# CHECK: movw r3, :lower16:((Str-PCinst)-4) +# CHECK: movt r3, :upper16:((Str-PCinst)-4) |