diff options
author | Dimitry Andric <dim@FreeBSD.org> | 2013-12-22 00:04:03 +0000 |
---|---|---|
committer | Dimitry Andric <dim@FreeBSD.org> | 2013-12-22 00:04:03 +0000 |
commit | f8af5cf600354830d4ccf59732403f0f073eccb9 (patch) | |
tree | 2ba0398b4c42ad4f55561327538044fd2c925a8b /test/Object/X86 | |
parent | 59d6cff90eecf31cb3dd860c4e786674cfdd42eb (diff) |
Notes
Diffstat (limited to 'test/Object/X86')
-rw-r--r-- | test/Object/X86/lit.local.cfg | 2 | ||||
-rw-r--r-- | test/Object/X86/objdump-cfg-invalid-opcode.yaml | 58 | ||||
-rw-r--r-- | test/Object/X86/objdump-cfg-textatomsize.yaml | 39 | ||||
-rw-r--r-- | test/Object/X86/objdump-cfg.yaml | 86 | ||||
-rw-r--r-- | test/Object/X86/objdump-disassembly-inline-relocations.test | 35 | ||||
-rw-r--r-- | test/Object/X86/objdump-disassembly-symbolic.test | 48 |
6 files changed, 266 insertions, 2 deletions
diff --git a/test/Object/X86/lit.local.cfg b/test/Object/X86/lit.local.cfg index 6a29e9250f3c6..ba763cf03ffcc 100644 --- a/test/Object/X86/lit.local.cfg +++ b/test/Object/X86/lit.local.cfg @@ -1,5 +1,3 @@ -config.suffixes = ['.test'] - targets = set(config.root.targets_to_build.split()) if not 'X86' in targets: config.unsupported = True diff --git a/test/Object/X86/objdump-cfg-invalid-opcode.yaml b/test/Object/X86/objdump-cfg-invalid-opcode.yaml new file mode 100644 index 0000000000000..56ab1d274eef7 --- /dev/null +++ b/test/Object/X86/objdump-cfg-invalid-opcode.yaml @@ -0,0 +1,58 @@ +# RUN: yaml2obj -format=elf %s | llvm-objdump -d -yaml-cfg=%t - && FileCheck --check-prefix=CFG < %t %s +# REQUIRES: shell +# +# Generated from: +# main: +# .LBL0_1: +# movq 8(%rsi), %rax +# <invalid opcode: 06> +# nop + +!ELF +FileHeader: + Class: ELFCLASS64 + Data: ELFDATA2LSB + Type: ET_REL + Machine: EM_X86_64 +Sections: + - Name: .text + Type: SHT_PROGBITS + Flags: [ SHF_ALLOC, SHF_EXECINSTR ] + Content: "488B46080690" + +## 0000000000000000 <main>: + +#CFG: Atoms: +#CFG: - StartAddress: 0x0000000000000000 +#CFG: Size: 4 +#CFG: Type: Text + +## 0: 48 8b 46 08 mov 0x8(%rsi),%rax +#CFG: - Inst: MOV64rm +#CFG: Size: 4 +#CFG: Ops: [ RRAX, RRSI, I1, R, I8, R ] + + +#CFG: - StartAddress: 0x0000000000000004 +#CFG: Size: 1 +#CFG: Type: Data + +## 4: 06 (bad) +#CFG: Content: 06 + +#CFG: - StartAddress: 0x0000000000000005 +#CFG: Size: 1 +#CFG: Type: Text + +## 5: 90 nop +#CFG: - Inst: NOOP +#CFG: Size: 1 +#CFG: Ops: [ ] + +Symbols: + Global: + - Name: main + Type: STT_FUNC + Section: .text + Value: 0x0 + Size: 6 diff --git a/test/Object/X86/objdump-cfg-textatomsize.yaml b/test/Object/X86/objdump-cfg-textatomsize.yaml new file mode 100644 index 0000000000000..87cb4e13ec1e4 --- /dev/null +++ b/test/Object/X86/objdump-cfg-textatomsize.yaml @@ -0,0 +1,39 @@ +# RUN: yaml2obj -format=elf %s | llvm-objdump -d -yaml-cfg=%t - && FileCheck --check-prefix=CFG < %t %s +# REQUIRES: shell +# +# Generated from: +# main: +# .LBL0_1: +# jmp .LBL0_1 +# + +!ELF +FileHeader: + Class: ELFCLASS64 + Data: ELFDATA2LSB + Type: ET_REL + Machine: EM_X86_64 +Sections: + - Name: .text + Type: SHT_PROGBITS + Flags: [ SHF_ALLOC, SHF_EXECINSTR ] + Content: "EBFE" + +## 0000000000000000 <main>: + +#CFG: Atoms: +#CFG: - StartAddress: 0x0000000000000000 +#CFG: Size: 2 + +## 0: eb fe jmp $-2 +#CFG: - Inst: JMP_1 +#CFG: Size: 2 +#CFG: Ops: [ I-2 ] + +Symbols: + Global: + - Name: main + Type: STT_FUNC + Section: .text + Value: 0x0 + Size: 2 diff --git a/test/Object/X86/objdump-cfg.yaml b/test/Object/X86/objdump-cfg.yaml new file mode 100644 index 0000000000000..c5bff03c1d0cb --- /dev/null +++ b/test/Object/X86/objdump-cfg.yaml @@ -0,0 +1,86 @@ +# RUN: yaml2obj -format=elf %s | llvm-objdump -d -yaml-cfg=%t - && FileCheck --check-prefix=CFG < %t %s +# REQUIRES: shell +# +# Generated from: +# main: +# movl $48, %eax +# cmpl $3, %edi +# jl .LBB0_2 +# movq 8(%rsi), %rax +# movsbl (%rax), %eax +# .LBB0_2: +# ret +# + +!ELF +FileHeader: + Class: ELFCLASS64 + Data: ELFDATA2LSB + Type: ET_REL + Machine: EM_X86_64 +Sections: + - Name: .text + Type: SHT_PROGBITS + Flags: [ SHF_ALLOC, SHF_EXECINSTR ] + Content: "B83000000083FF037C07488B46080FBE00C3" + +## 0000000000000000 <main>: + +#CFG: Atoms: +#CFG: - StartAddress: 0x0000000000000000 +#CFG: Size: 10 + +## 0: b8 30 00 00 00 mov $0x30,%eax +#CFG: - Inst: MOV32ri +#CFG: Size: 5 +#CFG: Ops: [ REAX, I48 ] + +## 5: 83 ff 03 cmp $0x3,%edi +#CFG: - Inst: CMP32ri8 +#CFG: Size: 3 +#CFG: Ops: [ REDI, I3 ] + +## 8: 7c 07 jl 11 <main+0x11> +#CFG: - Inst: JL_1 +#CFG: Size: 2 +#CFG: Ops: [ I7 ] + +#CFG: - StartAddress: 0x000000000000000A +#CFG: Size: 7 + +## a: 48 8b 46 08 mov 0x8(%rsi),%rax +#CFG: - Inst: MOV64rm +#CFG: Size: 4 +#CFG: Ops: [ RRAX, RRSI, I1, R, I8, R ] + +## e: 0f be 00 movsbl (%rax),%eax +#CFG: - Inst: MOVSX32rm8 +#CFG: Size: 3 +#CFG: Ops: [ REAX, RRAX, I1, R, I0, R ] +#CFG: - StartAddress: 0x0000000000000011 +#CFG: Size: 1 + +## 11: c3 retq +#CFG: - Inst: RET +#CFG: Size: 1 +#CFG: Ops: [ ] + +Symbols: + Global: + - Name: main + Type: STT_FUNC + Section: .text + Value: 0x0 + Size: 18 + +#CFG: Functions: +#CFG: BasicBlocks: +#CFG: - Address: 0x0000000000000000 +#CFG: Preds: [ ] +#CFG: Succs: [ 0x0000000000000011, 0x000000000000000A ] +#CFG: - Address: 0x0000000000000011 +#CFG: Preds: [ 0x0000000000000000, 0x000000000000000A ] +#CFG: Succs: [ ] +#CFG: - Address: 0x000000000000000A +#CFG: Preds: [ 0x0000000000000000 ] +#CFG: Succs: [ 0x0000000000000011 ] diff --git a/test/Object/X86/objdump-disassembly-inline-relocations.test b/test/Object/X86/objdump-disassembly-inline-relocations.test index a5875f6a2f960..2ef1a435d7d47 100644 --- a/test/Object/X86/objdump-disassembly-inline-relocations.test +++ b/test/Object/X86/objdump-disassembly-inline-relocations.test @@ -2,6 +2,10 @@ RUN: llvm-objdump -d -r %p/../Inputs/trivial-object-test.coff-i386 \ RUN: | FileCheck %s -check-prefix COFF-i386 RUN: llvm-objdump -d -r %p/../Inputs/trivial-object-test.coff-x86-64 \ RUN: | FileCheck %s -check-prefix COFF-x86-64 +RUN: llvm-objdump -d -r %p/../Inputs/trivial-object-test.macho-i386 \ +RUN: | FileCheck %s -check-prefix MACHO-i386 +RUN: llvm-objdump -d -r %p/../Inputs/trivial-object-test.macho-x86-64 \ +RUN: | FileCheck %s -check-prefix MACHO-x86-64 COFF-i386: file format COFF-i386 COFF-i386: Disassembly of section .text: @@ -30,3 +34,34 @@ COFF-x86-64: 19: IMAGE_REL_AMD64_REL32 SomeOtherFun COFF-x86-64: 1d: 8b 44 24 24 movl 36(%rsp), %eax COFF-x86-64: 21: 48 83 c4 28 addq $40, %rsp COFF-x86-64: 25: c3 ret + +MACHO-i386: file format Mach-O 32-bit i386 +MACHO-i386: Disassembly of section __TEXT,__text: +MACHO-i386: _main: +MACHO-i386: 0: 83 ec 0c subl $12, %esp +MACHO-i386: 3: c7 44 24 08 00 00 00 00 movl $0, 8(%esp) +MACHO-i386: b: c7 04 24 24 00 00 00 movl $36, (%esp) +MACHO-i386: e: GENERIC_RELOC_VANILLA __cstring +MACHO-i386: 12: e8 1f 00 00 00 calll 31 +MACHO-i386: 13: GENERIC_RELOC_VANILLA __jump_table +MACHO-i386: 17: e8 15 00 00 00 calll 21 +MACHO-i386: 18: GENERIC_RELOC_VANILLA __jump_table +MACHO-i386: 1c: 8b 44 24 08 movl 8(%esp), %eax +MACHO-i386: 20: 83 c4 0c addl $12, %esp +MACHO-i386: 23: c3 ret + +MACHO-x86-64: file format Mach-O 64-bit x86-64 +MACHO-x86-64: Disassembly of section __TEXT,__text: +MACHO-x86-64: _main: +MACHO-x86-64: 0: 48 83 ec 08 subq $8, %rsp +MACHO-x86-64: 4: c7 44 24 04 00 00 00 00 movl $0, 4(%rsp) +MACHO-x86-64: c: 48 8d 3d 00 00 00 00 leaq (%rip), %rdi +MACHO-x86-64: f: X86_64_RELOC_SIGNED L_.str +MACHO-x86-64: 13: e8 00 00 00 00 callq 0 +MACHO-x86-64: 14: X86_64_RELOC_BRANCH _puts +MACHO-x86-64: 18: 30 c0 xorb %al, %al +MACHO-x86-64: 1a: e8 00 00 00 00 callq 0 +MACHO-x86-64: 1b: X86_64_RELOC_BRANCH _SomeOtherFunction +MACHO-x86-64: 1f: 8b 44 24 04 movl 4(%rsp), %eax +MACHO-x86-64: 23: 48 83 c4 08 addq $8, %rsp +MACHO-x86-64: 27: c3 ret diff --git a/test/Object/X86/objdump-disassembly-symbolic.test b/test/Object/X86/objdump-disassembly-symbolic.test new file mode 100644 index 0000000000000..858653e95ebc0 --- /dev/null +++ b/test/Object/X86/objdump-disassembly-symbolic.test @@ -0,0 +1,48 @@ +RUN: llvm-objdump -d -symbolize %p/../Inputs/trivial-object-test.elf-x86-64 \ +RUN: | FileCheck %s -check-prefix ELF-x86-64 +RUN: llvm-objdump -d -symbolize %p/../Inputs/trivial-object-test.macho-x86-64 \ +RUN: | FileCheck %s -check-prefix MACHO-x86-64 + +# Generate this using: +# ld trivial-object-test.macho-x86-64 -undefined dynamic_lookup +RUN: llvm-objdump -d -symbolize %p/../Inputs/trivial-executable-test.macho-x86-64 \ +RUN: | FileCheck %s -check-prefix MACHO-STUBS-x86-64 + +ELF-x86-64: file format ELF64-x86-64 +ELF-x86-64: Disassembly of section .text: +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 $.rodata.str1.1, %edi +ELF-x86-64: 11: e8 00 00 00 00 callq puts-4 +ELF-x86-64: 16: 30 c0 xorb %al, %al +ELF-x86-64: 18: e8 00 00 00 00 callq 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 + +MACHO-x86-64: file format Mach-O 64-bit x86-64 +MACHO-x86-64: Disassembly of section __TEXT,__text: +MACHO-x86-64: _main: +MACHO-x86-64: 0: 48 83 ec 08 subq $8, %rsp +MACHO-x86-64: 4: c7 44 24 04 00 00 00 00 movl $0, 4(%rsp) +MACHO-x86-64: c: 48 8d 3d 00 00 00 00 leaq L_.str(%rip), %rdi ## literal pool for: Hello World! +MACHO-x86-64: 13: e8 00 00 00 00 callq _puts +MACHO-x86-64: 18: 30 c0 xorb %al, %al +MACHO-x86-64: 1a: e8 00 00 00 00 callq _SomeOtherFunction +MACHO-x86-64: 1f: 8b 44 24 04 movl 4(%rsp), %eax +MACHO-x86-64: 23: 48 83 c4 08 addq $8, %rsp +MACHO-x86-64: 27: c3 ret + +MACHO-STUBS-x86-64: file format Mach-O 64-bit x86-64 +MACHO-STUBS-x86-64: Disassembly of section __TEXT,__text: +MACHO-STUBS-x86-64: _main: +MACHO-STUBS-x86-64: 1f90: 48 83 ec 08 subq $8, %rsp +MACHO-STUBS-x86-64: 1f94: c7 44 24 04 00 00 00 00 movl $0, 4(%rsp) +MACHO-STUBS-x86-64: 1f9c: 48 8d 3d 45 00 00 00 leaq 69(%rip), %rdi ## literal pool for: Hello World! +MACHO-STUBS-x86-64: 1fa3: e8 16 00 00 00 callq puts +MACHO-STUBS-x86-64: 1fa8: 30 c0 xorb %al, %al +MACHO-STUBS-x86-64: 1faa: e8 09 00 00 00 callq SomeOtherFunction +MACHO-STUBS-x86-64: 1faf: 8b 44 24 04 movl 4(%rsp), %eax +MACHO-STUBS-x86-64: 1fb3: 48 83 c4 08 addq $8, %rsp +MACHO-STUBS-x86-64: 1fb7: c3 ret |