llvm-readobj: add support for PE32+ (Windows 64 bit executable).
authorRui Ueyama <ruiu@google.com>
Sun, 26 Jan 2014 04:15:52 +0000 (04:15 +0000)
committerRui Ueyama <ruiu@google.com>
Sun, 26 Jan 2014 04:15:52 +0000 (04:15 +0000)
commit1e839eb2cd0e233db6225ea1db45411463654de6
treeb638f5802f7e5dcbfd91cfa6f6491f9dc8d62c6b
parent07f1de473f6ed6c42d9798c59cd90b61bac9c640
llvm-readobj: add support for PE32+ (Windows 64 bit executable).

PE32+ supports 64 bit address space, but the file format remains 32 bit.
So its file format is pretty similar to PE32 (32 bit executable). The
differences compared to PE32 are (1) the lack of "BaseOfData" field and
(2) some of its data members are 64 bit.

In this patch, I added a new member function to get a PE32+ Header object to
COFFObjectFile class and made llvm-readobj to use it.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@200117 91177308-0d34-0410-b5e6-96231b3b80d8
include/llvm/Object/COFF.h
lib/Object/COFFObjectFile.cpp
test/tools/llvm-readobj/Inputs/nop.exe.coff-x86-64 [new file with mode: 0644]
test/tools/llvm-readobj/peplus.test [new file with mode: 0644]
tools/llvm-readobj/COFFDumper.cpp