diff options
author | Rui Ueyama <ruiu@google.com> | 2013-09-27 00:07:01 +0000 |
---|---|---|
committer | Rui Ueyama <ruiu@google.com> | 2013-09-27 00:07:01 +0000 |
commit | 0c873adc82a81b0bce317c3e2cb3139e990a0f9e (patch) | |
tree | 5e84958bcbb706131e88776ef82c8fcafbc404c5 /test/tools/llvm-objdump/Inputs | |
parent | deac137da710cd8566b857ee9d1e182d4fd35932 (diff) | |
download | llvm-0c873adc82a81b0bce317c3e2cb3139e990a0f9e.tar.gz llvm-0c873adc82a81b0bce317c3e2cb3139e990a0f9e.tar.bz2 llvm-0c873adc82a81b0bce317c3e2cb3139e990a0f9e.tar.xz |
llvm-objdump: Dump COFF import table if -private-headers option is given.
This is a patch to add capability to llvm-objdump to dump COFF Import Table
entries, so that we can write tests for LLD checking Import Table contents.
llvm-objdump did not print anything but just file name if the format is COFF
and -private-headers option is given. This is a patch adds capability for
dumping DLL Import Table, which is specific to the COFF format.
In this patch I defined a new iterator to iterate over import table entries.
Also added a few functions to COFFObjectFile.cpp to access fields of the entry.
Differential Revision: http://llvm-reviews.chandlerc.com/D1719
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@191472 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'test/tools/llvm-objdump/Inputs')
-rw-r--r-- | test/tools/llvm-objdump/Inputs/nop.exe.coff-i386 | bin | 0 -> 7680 bytes | |||
-rw-r--r-- | test/tools/llvm-objdump/Inputs/trivial.obj.elf-i386 | bin | 0 -> 449 bytes | |||
-rw-r--r-- | test/tools/llvm-objdump/Inputs/win64-unwind.exe.coff-x86_64 | bin | 0 -> 698 bytes | |||
-rw-r--r-- | test/tools/llvm-objdump/Inputs/win64-unwind.exe.coff-x86_64.asm | 53 |
4 files changed, 53 insertions, 0 deletions
diff --git a/test/tools/llvm-objdump/Inputs/nop.exe.coff-i386 b/test/tools/llvm-objdump/Inputs/nop.exe.coff-i386 Binary files differnew file mode 100644 index 0000000000..68c9d3db0f --- /dev/null +++ b/test/tools/llvm-objdump/Inputs/nop.exe.coff-i386 diff --git a/test/tools/llvm-objdump/Inputs/trivial.obj.elf-i386 b/test/tools/llvm-objdump/Inputs/trivial.obj.elf-i386 Binary files differnew file mode 100644 index 0000000000..fdc48743a8 --- /dev/null +++ b/test/tools/llvm-objdump/Inputs/trivial.obj.elf-i386 diff --git a/test/tools/llvm-objdump/Inputs/win64-unwind.exe.coff-x86_64 b/test/tools/llvm-objdump/Inputs/win64-unwind.exe.coff-x86_64 Binary files differnew file mode 100644 index 0000000000..63460e7826 --- /dev/null +++ b/test/tools/llvm-objdump/Inputs/win64-unwind.exe.coff-x86_64 diff --git a/test/tools/llvm-objdump/Inputs/win64-unwind.exe.coff-x86_64.asm b/test/tools/llvm-objdump/Inputs/win64-unwind.exe.coff-x86_64.asm new file mode 100644 index 0000000000..4d47fa4515 --- /dev/null +++ b/test/tools/llvm-objdump/Inputs/win64-unwind.exe.coff-x86_64.asm @@ -0,0 +1,53 @@ + .text + .globl func + .def func; .scl 2; .type 32; .endef + .seh_proc func +func: + .seh_pushframe @code + subq $24, %rsp + .seh_stackalloc 24 + movq %rsi, 16(%rsp) + .seh_savereg %rsi, 16 + movups %xmm8, (%rsp) + .seh_savexmm %xmm8, 0 + pushq %rbx + .seh_pushreg 3 + mov %rsp, %rbx + .seh_setframe 3, 0 + .seh_endprologue + .seh_handler __C_specific_handler, @except + .seh_handlerdata + .long 0 + .text + .seh_startchained + .seh_endprologue + .seh_endchained + lea (%rbx), %rsp + pop %rbx + addq $24, %rsp + ret + .seh_endproc + +// Test emission of small functions. + .globl smallFunc + .def smallFunc; .scl 2; .type 32; .endef + .seh_proc smallFunc +smallFunc: + ret + .seh_endproc + +// Function with big stack allocation. + .globl allocFunc + .def allocFunc; .scl 2; .type 32; .endef + .seh_proc allocFunc +allocFunc: + .seh_pushframe @code + subq $65520, %rsp + .seh_stackalloc 65520 + sub $8454128, %rsp + .seh_stackalloc 8454128 + .seh_endprologue + add $8454128, %rsp + addq $65520, %rsp + ret + .seh_endproc |