Initial TOC support for PowerPC64 object creation
authorAdhemerval Zanella <azanella@linux.vnet.ibm.com>
Thu, 25 Oct 2012 12:27:42 +0000 (12:27 +0000)
committerAdhemerval Zanella <azanella@linux.vnet.ibm.com>
Thu, 25 Oct 2012 12:27:42 +0000 (12:27 +0000)
commitaa71428378c1cb491ca60041d8ba7aa110bc963d
tree908897b170bef9bf01d423f2c18bca9ec90be162
parentc0cd72204d35bedbd2a36b240d9e5e95647fd2d2
Initial TOC support for PowerPC64 object creation

This patch adds initial PPC64 TOC MC object creation using the small mcmodel
(a single 64K TOC) adding the some TOC relocations (R_PPC64_TOC,
R_PPC64_TOC16, and R_PPC64_TOC16DS).

The addition of 'undefinedExplicitRelSym' hook on 'MCELFObjectTargetWriter'
is meant to avoid the creation of an unreferenced ".TOC." symbol (used in
the .odp creation) as well to set the R_PPC64_TOC relocation target as the
temporary ".TOC." symbol. On PPC64 ABI, the R_PPC64_TOC relocation should
not point to any symbol.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@166677 91177308-0d34-0410-b5e6-96231b3b80d8
include/llvm/MC/MCELFObjectWriter.h
lib/MC/ELFObjectWriter.cpp
lib/MC/MCELFObjectTargetWriter.cpp
lib/Target/PowerPC/MCTargetDesc/PPCAsmBackend.cpp
lib/Target/PowerPC/MCTargetDesc/PPCELFObjectWriter.cpp
lib/Target/PowerPC/MCTargetDesc/PPCFixupKinds.h
lib/Target/PowerPC/MCTargetDesc/PPCMCCodeEmitter.cpp
lib/Target/PowerPC/PPCAsmPrinter.cpp
lib/Target/PowerPC/PPCSubtarget.cpp
test/MC/PowerPC/lit.local.cfg [new file with mode: 0644]
test/MC/PowerPC/ppc64-relocs-01.ll [new file with mode: 0644]