Re-add support to llvm-objdump for Mach-O universal files and archives with -macho
[oota-llvm.git] / test / tools / llvm-objdump / X86 / macho-symbolized-disassembly.test
1 // RUN: llvm-objdump -d -m -no-show-raw-insn -full-leading-addr -print-imm-hex %p/Inputs/hello.obj.macho-x86_64 | FileCheck %s -check-prefix=OBJ
2 // RUN: llvm-objdump -d -m -no-show-raw-insn -full-leading-addr -print-imm-hex %p/Inputs/hello.exe.macho-x86_64 | FileCheck %s -check-prefix=EXE
3 // RUN: llvm-objdump -d -m -no-show-raw-insn -full-leading-addr -print-imm-hex %p/Inputs/ObjC.obj.macho-x86_64 | FileCheck %s -check-prefix=ObjC-OBJ
4 // RUN: llvm-objdump -d -m -no-show-raw-insn -full-leading-addr -print-imm-hex %p/Inputs/ObjC.exe.macho-x86_64 | FileCheck %s -check-prefix=ObjC-EXE
5 // RUN: llvm-objdump -d -m -no-show-raw-insn -full-leading-addr -print-imm-hex %p/Inputs/hello_cpp.exe.macho-x86_64 | FileCheck %s -check-prefix=CXX-EXE
6
7 // RUN: llvm-objdump -d -m -no-show-raw-insn -full-leading-addr -print-imm-hex %p/Inputs/hello.obj.macho-i386 | FileCheck %s -check-prefix=i386-OBJ
8 // RUN: llvm-objdump -d -m -no-show-raw-insn -full-leading-addr -print-imm-hex %p/Inputs/hello.exe.macho-i386 | FileCheck %s -check-prefix=i386-EXE
9
10 OBJ: 0000000000000008   leaq    L_.str(%rip), %rax      ## literal pool for: "Hello world\n"
11 OBJ: 0000000000000026   callq   _printf
12
13 EXE: 0000000100000f38   leaq    0x4f(%rip), %rax        ## literal pool for: "Hello world\n"
14 EXE: 0000000100000f56   callq   0x100000f6c             ## symbol stub for: _printf
15
16 ObjC-OBJ: 0000000000000008      leaq    0xb1(%rip), %rax        ## Objc cfstring ref: @"The current date and time is: %@"
17 ObjC-OBJ: 0000000000000016      movq    0x4b(%rip), %rcx        ## Objc class ref: NSObject
18 ObjC-OBJ: 000000000000001d      movq    0x64(%rip), %rsi        ## Objc selector ref: new
19 ObjC-OBJ: 0000000000000034      movq    0x35(%rip), %rax        ## Objc class ref: NSDate
20 ObjC-OBJ: 000000000000003b      movq    0x4e(%rip), %rsi        ## Objc selector ref: date
21
22 ObjC-EXE: 0000000100000ee8      leaq    0x159(%rip), %rax       ## Objc cfstring ref: @"The current date and time is: %@"
23 ObjC-EXE: 0000000100000ef6      movq    0x13b(%rip), %rcx       ## Objc class ref: _OBJC_CLASS_$_NSObject
24 ObjC-EXE: 0000000100000efd      movq    0x124(%rip), %rsi       ## Objc selector ref: new
25 ObjC-EXE: 0000000100000f0b      callq   0x100000f4a             ## Objc message: +[NSObject new]
26 ObjC-EXE: 0000000100000f14      movq    0x125(%rip), %rax       ## Objc class ref: _OBJC_CLASS_$_NSDate
27 ObjC-EXE: 0000000100000f1b      movq    0x10e(%rip), %rsi       ## Objc selector ref: date
28 ObjC-EXE: 0000000100000f25      callq   0x100000f4a             ## Objc message: +[NSDate date]
29 ObjC-EXE: 0000000100000f33      callq   0x100000f44             ## symbol stub for: _NSLog
30
31 CXX-EXE: 00000001000014cb       callq   __ZNSt3__116__pad_and_outputIcNS_11char_traitsIcEEEENS_19ostreambuf_iteratorIT_T0_EES6_PKS4_S8_S8_RNS_8ios_baseES4_
32
33 // FIXME: Demangler depends on host's <cxxabi.h>.
34 // std::__1::ostreambuf_iterator<char, std::__1::char_traits<char> > std::__1::__pad_and_output<char, std::__1::char_traits<char> >(std::__1::ostreambuf_iterator<char, std::__1::char_traits<char> >, char const*, char const*, char const*, std::__1::ios_base&, char)
35
36 i386-OBJ: 0000002f      calll   _printf
37
38 i386-EXE: 00001f6f      calll   0x1f84                  ## symbol stub for: _printf