From 3d6d609aaed02b6d9a8e2ede029710c82c728fe2 Mon Sep 17 00:00:00 2001 From: Bill Wendling Date: Wed, 24 Jan 2007 03:40:33 +0000 Subject: [PATCH] Move the getJTRelocation method out of here. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@33479 91177308-0d34-0410-b5e6-96231b3b80d8 --- lib/Target/PowerPC/PPCMachOWriter.cpp | 33 ++++++--------------------- 1 file changed, 7 insertions(+), 26 deletions(-) diff --git a/lib/Target/PowerPC/PPCMachOWriter.cpp b/lib/Target/PowerPC/PPCMachOWriter.cpp index 4d9ec4c94b5..c3cc74e156a 100644 --- a/lib/Target/PowerPC/PPCMachOWriter.cpp +++ b/lib/Target/PowerPC/PPCMachOWriter.cpp @@ -23,23 +23,11 @@ using namespace llvm; namespace { class VISIBILITY_HIDDEN PPCMachOWriter : public MachOWriter { public: - PPCMachOWriter(std::ostream &O, PPCTargetMachine &TM) : MachOWriter(O, TM) { - if (TM.getTargetData()->getPointerSizeInBits() == 64) { - Header.cputype = MachOHeader::HDR_CPU_TYPE_POWERPC64; - } else { - Header.cputype = MachOHeader::HDR_CPU_TYPE_POWERPC; - } - Header.cpusubtype = MachOHeader::HDR_CPU_SUBTYPE_POWERPC_ALL; - } + PPCMachOWriter(std::ostream &O, PPCTargetMachine &TM) + : MachOWriter(O, TM) {} virtual void GetTargetRelocation(MachineRelocation &MR, MachOSection &From, MachOSection &To); - virtual MachineRelocation GetJTRelocation(unsigned Offset, - MachineBasicBlock *MBB); - - virtual const char *getPassName() const { - return "PowerPC Mach-O Writer"; - } // Constants for the relocation r_type field. // see @@ -67,20 +55,20 @@ void llvm::addPPCMachOObjectWriterPass(FunctionPassManager &FPM, /// GetTargetRelocation - For the MachineRelocation MR, convert it to one or /// more PowerPC MachORelocation(s), add the new relocations to the -/// MachOSection, and rewrite the instruction at the section offset if required +/// MachOSection, and rewrite the instruction at the section offset if required /// by that relocation type. void PPCMachOWriter::GetTargetRelocation(MachineRelocation &MR, MachOSection &From, MachOSection &To) { uint64_t Addr = 0; - + // Keep track of whether or not this is an externally defined relocation. bool isExtern = false; - + // Get the address of whatever it is we're relocating, if possible. if (!isExtern) Addr = (uintptr_t)MR.getResultPointer() + To.addr; - + switch ((PPC::RelocationType)MR.getRelocationType()) { default: assert(0 && "Unknown PPC relocation type!"); case PPC::reloc_absolute_low_ix: @@ -89,7 +77,7 @@ void PPCMachOWriter::GetTargetRelocation(MachineRelocation &MR, case PPC::reloc_vanilla: { // FIXME: need to handle 64 bit vanilla relocs - MachORelocation VANILLA(MR.getMachineCodeOffset(), To.Index, false, 2, + MachORelocation VANILLA(MR.getMachineCodeOffset(), To.Index, false, 2, isExtern, PPC_RELOC_VANILLA); ++From.nreloc; @@ -165,10 +153,3 @@ void PPCMachOWriter::GetTargetRelocation(MachineRelocation &MR, } } } - -MachineRelocation PPCMachOWriter::GetJTRelocation(unsigned Offset, - MachineBasicBlock *MBB) { - // FIXME: do something about PIC - return MachineRelocation::getBB(Offset, PPC::reloc_vanilla, MBB); -} -