History log of /external/llvm/lib/MC/WinCOFFObjectWriter.cpp
Revision Date Author Comments (<<< Hide modified files) (Show modified files >>>)
d03a29b69d7285ed2ca523d70a45174e33716727 15-Mar-2012 Michael J. Spencer <bigcheesegs@gmail.com> Implement relocation-overflow behavior for PE/COFF.

This needs a test, but it will take some time to figure
out the best way to get an input that will produce > 2^16 relocs.

Patch by Graydon Hoare!

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@152787 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/MC/WinCOFFObjectWriter.cpp
df09270ae897e7fa64a7c162de163c32ee181a03 24-Dec-2011 Rafael Espindola <rafael.espindola@gmail.com> Move x86 specific bits of the COFF writer to lib/Target/X86.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@147231 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/MC/WinCOFFObjectWriter.cpp
b156c5d3765637393eda28b04b7fc1e5c55675eb 22-Dec-2011 Rafael Espindola <rafael.espindola@gmail.com> Move all the dependencies on X86FixupKinds.h to a single method in preparation
to moving it to lib/Target/X86.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@147190 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/MC/WinCOFFObjectWriter.cpp
8f7d12ccfd8feb258bdf4e582592bc00beacc7c6 17-Dec-2011 Rafael Espindola <rafael.espindola@gmail.com> Add back the MC bits of 126425. Original patch by Nathan Jeffords. I added the
asm parsing and testcase.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@146801 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/MC/WinCOFFObjectWriter.cpp
f77d5b14af6b92403b93f7ed249f9023e99028cc 06-Dec-2011 Jim Grosbach <grosbach@apple.com> Switch MCAssembler to method names starting w/ lower-case.

per http://llvm.org/docs/CodingStandards.html#ll_naming

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@145873 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/MC/WinCOFFObjectWriter.cpp
0d64632c9e8a2632b8804bcc3fbc3523588862a7 08-Nov-2011 Michael J. Spencer <bigcheesegs@gmail.com> MC/COFF: Correctly emit the size of an empty string table.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@144111 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/MC/WinCOFFObjectWriter.cpp
8c3fee59038d8fd98db2a01b6a309a8941a16a3f 25-Jul-2011 Evan Cheng <evan.cheng@apple.com> Refactor X86 target to separate MC code from Target code.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@135930 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/MC/WinCOFFObjectWriter.cpp
1ac7fe0f4dae8a9266fa6ff31ea4939ec64a3e5e 21-Apr-2011 Rafael Espindola <rafael.espindola@gmail.com> Fix relative relocations. This is sufficient for running the rust testsuite with
MC :-)

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@129923 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/MC/WinCOFFObjectWriter.cpp
3660a847f1820d73847539f3959dc069396f8e44 20-Apr-2011 Rafael Espindola <rafael.espindola@gmail.com> Behave like gnu as when a relocation crosses sections.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@129850 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/MC/WinCOFFObjectWriter.cpp
f754f50805fee2bb4d461a9b41107122a22cd6f6 25-Feb-2011 Cameron Zwarich <zwarich@apple.com> Roll out r126425 and r126450 to see if it fixes the failures on the buildbots.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@126488 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/MC/WinCOFFObjectWriter.cpp
f410608271b6318bfc9e26c0d199f185d5a89ccb 24-Feb-2011 Devang Patel <dpatel@apple.com> Enable DebugInfo support for COFF object files.
Patch by Nathan Jeffords!



git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@126425 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/MC/WinCOFFObjectWriter.cpp
908159b46ae118d36fccbc1d5145dcedfc3d4185 16-Feb-2011 Rafael Espindola <rafael.espindola@gmail.com> Gas is very inconsistent about when a relaxation/relocation is needed. Do
the right thing and stop trying to copy it. Fixes PR8944.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@125648 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/MC/WinCOFFObjectWriter.cpp
fea753b397823c340608925eb7f3256a64a30017 24-Dec-2010 Rafael Espindola <rafael.espindola@gmail.com> Merge IsFixupFullyResolved and IsSymbolRefDifferenceFullyResolved. We now
have a single point where targets test if a relocation is needed.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@122549 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/MC/WinCOFFObjectWriter.cpp
3132780a2ed58945b0ec5033002be44bedb6b785 18-Dec-2010 Rafael Espindola <rafael.espindola@gmail.com> Merge isAbsolute into IsSymbolRefDifferenceFullyResolved.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@122148 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/MC/WinCOFFObjectWriter.cpp
1ec5bd31fe491e610839ea448bd99fd171785837 18-Dec-2010 Rafael Espindola <rafael.espindola@gmail.com> Remove the MCObjectFormat class.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@122147 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/MC/WinCOFFObjectWriter.cpp
1f3662abba2abdf5a0ab77095834271fcf846579 17-Dec-2010 Daniel Dunbar <daniel@zuster.org> MC/ObjectWriter: Add a new IsSymbolRefDifferenceFullyResolved target format specific hook.
- Currently just has stub implementations for Mach-O, ELF, and COFF.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@122037 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/MC/WinCOFFObjectWriter.cpp
5d2477cecf53bef911f57423a5cecb743d4286fa 17-Dec-2010 Daniel Dunbar <daniel@zuster.org> MC/Assembler: Strip out object writer arguments, now that it is always available
-- and remove FIXME asking for the same!

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@122032 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/MC/WinCOFFObjectWriter.cpp
85f2ecc697a8ca6c8cf08093054cbbb9d2060ccf 07-Dec-2010 Rafael Espindola <rafael.espindola@gmail.com> Sorry for such a large commit. The summary is that only MachO cares about the
actuall addresses in a .o file, so it is better to let the MachO writer compute
it.

This is good for two reasons. First, areas that shouldn't care about
addresses now don't have access to it. Second, the layout of each section
is independent. I should use this in a subsequent commit to speed it up.

Most of the patch is just removing the section address computation. The two
interesting parts are the change on how we handle padding in the end
of sections and how MachO can get the address of a-b when a and b are in
different sections.

Since now the expression evaluation normally doesn't know the section address,
it will think that a-b needs relocation and let the MachO writer know. Once
it has computed the section addresses, it calls back the expression evaluation
with the section addresses to resolve these expressions.

The remaining problem is the handling of padding. Currently it will create
a special alignment fragment at the end. Since that fragment doesn't update
the alignment of the section, it needs the real address to be computed.

Since now the layout will not compute a-b with a and b in different sections,
the only effect that the special alignment fragment has is update the
address size of the section. This can also be done by the MachO writer.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@121076 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/MC/WinCOFFObjectWriter.cpp
81d8ea5bd27f616270cac92a98532876b29adc04 06-Dec-2010 Rafael Espindola <rafael.espindola@gmail.com> Use getSymbolOffset on the COFF writer.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@120979 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/MC/WinCOFFObjectWriter.cpp
1f6efa3996dd1929fbc129203ce5009b620e6969 29-Nov-2010 Michael J. Spencer <bigcheesegs@gmail.com> Merge System into Support.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@120298 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/MC/WinCOFFObjectWriter.cpp
e04ed7e45f194f14a7b28bbf3f55694d8e2bcf80 28-Nov-2010 Rafael Espindola <rafael.espindola@gmail.com> Define generic 1, 2 and 4 byte pc relative relocations. They are common
and at least the 4 byte one will be needed to implement the .cfi_* directives.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@120240 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/MC/WinCOFFObjectWriter.cpp
ef0401ad6610132b70885322eff7dfdd17bd6167 21-Oct-2010 Michael J. Spencer <bigcheesegs@gmail.com> Fix Warnings.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@117062 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/MC/WinCOFFObjectWriter.cpp
4cee2890a66974af506f2125243114cc14bd5556 16-Oct-2010 Michael J. Spencer <bigcheesegs@gmail.com> MC-COFF: Add support for default-null weak externals.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@116666 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/MC/WinCOFFObjectWriter.cpp
28ca86aa19fe2a5493573164ef0c2c54542ed9da 09-Oct-2010 Michael J. Spencer <bigcheesegs@gmail.com> MC-COFF: Fix .bss section size. Fixes PR8335. Patch by NAKAMUTA Takumi!

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@116155 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/MC/WinCOFFObjectWriter.cpp
d47f4a9c982d264e46a6a2fe0f357288768bb5b9 09-Oct-2010 Michael J. Spencer <bigcheesegs@gmail.com> MC-COFF: Assert on non-coff sections.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@116148 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/MC/WinCOFFObjectWriter.cpp
b225adee29bef5100cd33f030c61c76d0efc8a10 08-Oct-2010 Michael J. Spencer <bigcheesegs@gmail.com> MC-COFF: Handle relaxation in COFF better. Fixes PR8321.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@116013 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/MC/WinCOFFObjectWriter.cpp
ea1104a4c376634ed8eb693f6c71e0ac51074949 05-Oct-2010 Michael J. Spencer <bigcheesegs@gmail.com> Fix Punctuation.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@115657 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/MC/WinCOFFObjectWriter.cpp
eb6e77f8cccd14cdba995ff8231f2c9faea9bfcc 05-Oct-2010 Michael J. Spencer <bigcheesegs@gmail.com> MC-COFF: Fix (PR8278) temporary symbol relocations.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@115656 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/MC/WinCOFFObjectWriter.cpp
8f413fa9c00dbaea000ddfe265ab5edd285ea3ab 05-Oct-2010 Rafael Espindola <rafael.espindola@gmail.com> On ELF we need to know which symbols are used in relocations to decide if
they should be in the symbol table or not. Instead of "guessing", just compute
the symbol table after the relocations are known.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@115619 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/MC/WinCOFFObjectWriter.cpp
a8c02c3bdd68e65d14fb6b0d56989663754059b0 30-Sep-2010 Rafael Espindola <rafael.espindola@gmail.com> Correctly produce R_X86_64_32 or R_X86_64_32S.

With this patch in

movq $foo, foo(%rip)
foo:
.long foo

We produce a R_X86_64_32S for the first relocation and R_X86_64_32 for the
second one.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@115134 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/MC/WinCOFFObjectWriter.cpp
7070387f08f7dc797b554ed8013cba9f8b74121a 30-Sep-2010 Rafael Espindola <rafael.espindola@gmail.com> Make it possible for the MCObjectWriter to decide if a given fixup is fully
resolved or not. Different object files have different restrictions and
different native assemblers have different idiosyncrasies we want to emulate
for now.

Move the existing MachO logic to the new place and implement an ELF one that
gets fixups to globals right.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@115131 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/MC/WinCOFFObjectWriter.cpp
81100d0608efb1f4a4c87b9659b944ec0dfd86c8 29-Sep-2010 Michael J. Spencer <bigcheesegs@gmail.com> MC-COFF: Fix symbol storage class for globals

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@115020 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/MC/WinCOFFObjectWriter.cpp
9cf23a9ab466a900bc0f937bc930d398d6097766 27-Sep-2010 Michael J. Spencer <bigcheesegs@gmail.com> MC-COFF: Fix signed/unsigned comparison.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@114888 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/MC/WinCOFFObjectWriter.cpp
a72d87899bc1bfdb17744aae2545a21b3630d3c1 27-Sep-2010 Michael J. Spencer <bigcheesegs@gmail.com> MC-COFF: Drop empty sections, and label symbols. Convert relocations
targeted at symbols into relocations relative to the containing section.

Patch by Nathan Jeffords!

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@114823 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/MC/WinCOFFObjectWriter.cpp
82c84fdd23669d23c02a07498c83b83702979829 24-Aug-2010 Michael J. Spencer <bigcheesegs@gmail.com> Fix COFF x86-64 relocations. PR7960.

Multiple symbol reloc handling part of the patch by Cameron Esfahani.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@111963 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/MC/WinCOFFObjectWriter.cpp
da0bfcdaf95d95a66e306ef6d45f638939272d34 21-Aug-2010 Michael J. Spencer <bigcheesegs@gmail.com> MC: Add partial x86-64 support to COFF.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@111728 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/MC/WinCOFFObjectWriter.cpp
237f8fe5df628065874b8590b364d04dfc2686fd 03-Aug-2010 Michael J. Spencer <bigcheesegs@gmail.com> MC: Fix symbol fragment offsets in COFF.

Patch by Cameron Esfahani!

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@110104 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/MC/WinCOFFObjectWriter.cpp
a69494ee5ec9fdbb38961dc71140629be9cbd601 03-Aug-2010 Michael J. Spencer <bigcheesegs@gmail.com> Revert "MC: Fix symbol fragment offsets in COFF."

This reverts commit r110100

Wrong path caps.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@110103 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/MC/WinCOFFObjectWriter.cpp
ab3de49c48bd3282421ce24323fb6b868a3da6cc 03-Aug-2010 Michael J. Spencer <bigcheesegs@gmail.com> MC: Add time travel support to COFF.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@110101 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/MC/WinCOFFObjectWriter.cpp
ef1f8c3cc3b509f83b1e887505881e4506602703 03-Aug-2010 Michael J. Spencer <bigcheesegs@gmail.com> MC: Fix symbol fragment offsets in COFF.

Patch by Cameron Esfahani!

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@110100 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/MC/WinCOFFObjectWriter.cpp
425f634917542d7f09c189e2eb130752c6a12d2c 31-Jul-2010 Daniel Dunbar <daniel@zuster.org> Silence some -Asserts uninitialized variable warnings.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@109956 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/MC/WinCOFFObjectWriter.cpp
808ecfce6a312625bee5c0f4f9831a0d0ed01b16 29-Jul-2010 Benjamin Kramer <benny.kra@googlemail.com> COFFObjectWriter: Don't leak COFFSymbols and COFFSections.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@109745 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/MC/WinCOFFObjectWriter.cpp
fd2878c8d0e876e849f795bb3f5d5e2f82aa59bd 26-Jul-2010 Douglas Gregor <dgregor@apple.com> Fix format-specifier warning

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@109391 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/MC/WinCOFFObjectWriter.cpp
933304ef0c3ec18c23d0b385c2117a6eae790430 26-Jul-2010 Michael J. Spencer <bigcheesegs@gmail.com> MC: Fix whitespace error from last commit.

A Visual C++ extension that removes trailing new lines? Seriously?

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@109390 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/MC/WinCOFFObjectWriter.cpp
801a3591161789e9716b0ec519f0f950b2d0c2ac 26-Jul-2010 Michael J. Spencer <bigcheesegs@gmail.com> MC: Add WinCOFFObjectWriter implementation.

Origonal Windows COFF implementation by Nathan Jedffords.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@109389 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/MC/WinCOFFObjectWriter.cpp
b162290e39afd49d4c7d342333b331bc96232720 12-Jul-2010 Chris Lattner <sabre@nondot.org> introduce WinCOFFObjectWriter, patch by Michael Spencer!


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@108103 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/MC/WinCOFFObjectWriter.cpp