summaryrefslogtreecommitdiff
path: root/test/tools/llvm-objdump/ARM
diff options
context:
space:
mode:
Diffstat (limited to 'test/tools/llvm-objdump/ARM')
-rwxr-xr-xtest/tools/llvm-objdump/ARM/Inputs/hello.exe.macho-armbin0 -> 49408 bytes
-rw-r--r--test/tools/llvm-objdump/ARM/Inputs/hello.obj.macho-armbin0 -> 744 bytes
-rw-r--r--test/tools/llvm-objdump/ARM/lit.local.cfg2
-rw-r--r--test/tools/llvm-objdump/ARM/macho-arm-and-thumb.test15
-rw-r--r--test/tools/llvm-objdump/ARM/macho-mattr-arm.test5
-rw-r--r--test/tools/llvm-objdump/ARM/macho-mcpu-arm.test10
-rw-r--r--test/tools/llvm-objdump/ARM/macho-private-headers.test345
-rw-r--r--test/tools/llvm-objdump/ARM/macho-symbolized-disassembly.test8
-rw-r--r--test/tools/llvm-objdump/ARM/macho-symbolized-subtractor.test15
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
new file mode 100755
index 000000000000..40d657b35c04
--- /dev/null
+++ b/test/tools/llvm-objdump/ARM/Inputs/hello.exe.macho-arm
Binary files differ
diff --git a/test/tools/llvm-objdump/ARM/Inputs/hello.obj.macho-arm b/test/tools/llvm-objdump/ARM/Inputs/hello.obj.macho-arm
new file mode 100644
index 000000000000..fb8706b28573
--- /dev/null
+++ b/test/tools/llvm-objdump/ARM/Inputs/hello.obj.macho-arm
Binary files differ
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)