summaryrefslogtreecommitdiffstats
path: root/llvm/lib/Target/PowerPC/PowerPCTargetMachine.cpp
diff options
context:
space:
mode:
authorMisha Brukman <brukman+llvm@gmail.com>2004-08-11 23:47:08 +0000
committerMisha Brukman <brukman+llvm@gmail.com>2004-08-11 23:47:08 +0000
commitc94c0f75f4593f1d5948fee7331b5b70ba2a84f8 (patch)
tree117a36e7e95f1bb94222437b4f0857b1dff83eee /llvm/lib/Target/PowerPC/PowerPCTargetMachine.cpp
parentaea37d65c8039cdfe175d237cfec49bc16c7d0b8 (diff)
downloadbcm5719-llvm-c94c0f75f4593f1d5948fee7331b5b70ba2a84f8.tar.gz
bcm5719-llvm-c94c0f75f4593f1d5948fee7331b5b70ba2a84f8.zip
* Move AIX into the llvm namespace to be accessed from RegisterInfo
* Mark InstrInfo with 32 vs. 64 bit flag * Enable the 64-bit isel and asm printer llvm-svn: 15672
Diffstat (limited to 'llvm/lib/Target/PowerPC/PowerPCTargetMachine.cpp')
-rw-r--r--llvm/lib/Target/PowerPC/PowerPCTargetMachine.cpp24
1 files changed, 14 insertions, 10 deletions
diff --git a/llvm/lib/Target/PowerPC/PowerPCTargetMachine.cpp b/llvm/lib/Target/PowerPC/PowerPCTargetMachine.cpp
index 0fdc14c48f2..256b0d1b5dd 100644
--- a/llvm/lib/Target/PowerPC/PowerPCTargetMachine.cpp
+++ b/llvm/lib/Target/PowerPC/PowerPCTargetMachine.cpp
@@ -28,11 +28,13 @@
#include <iostream>
using namespace llvm;
+namespace llvm {
+ cl::opt<bool> AIX("aix",
+ cl::desc("Generate AIX/xcoff instead of Darwin/MachO"),
+ cl::Hidden);
+}
+
namespace {
- cl::opt<bool>
- AIX("aix",
- cl::desc("Generate AIX/xcoff rather than Darwin/macho"),
- cl::Hidden);
const std::string PPC32 = "PowerPC/32bit";
const std::string PPC64 = "PowerPC/64bit";
@@ -47,8 +49,10 @@ PowerPCTargetMachine::PowerPCTargetMachine(const std::string &name,
IntrinsicLowering *IL,
const TargetData &TD,
const TargetFrameInfo &TFI,
- const PowerPCJITInfo &TJI)
- : TargetMachine(name, IL, TD), FrameInfo(TFI), JITInfo(TJI) {}
+ const PowerPCJITInfo &TJI,
+ bool is64b)
+ : TargetMachine(name, IL, TD), InstrInfo(is64b), FrameInfo(TFI), JITInfo(TJI)
+{}
unsigned PowerPCTargetMachine::getJITMatchQuality() {
#if defined(__POWERPC__) || defined (__ppc__) || defined(_POWER)
@@ -80,7 +84,7 @@ bool PowerPCTargetMachine::addPassesToEmitAssembly(PassManager &PM,
PM.add(createUnreachableBlockEliminationPass());
if (LP64)
- PM.add(createPPC32ISelSimple(*this));
+ PM.add(createPPC64ISelSimple(*this));
else
PM.add(createPPC32ISelSimple(*this));
@@ -100,7 +104,7 @@ bool PowerPCTargetMachine::addPassesToEmitAssembly(PassManager &PM,
PM.add(createPPCBranchSelectionPass());
if (AIX)
- PM.add(createPPC32AsmPrinter(Out, *this));
+ PM.add(createPPC64AsmPrinter(Out, *this));
else
PM.add(createPPC32AsmPrinter(Out, *this));
@@ -145,7 +149,7 @@ PPC32TargetMachine::PPC32TargetMachine(const Module &M,
: PowerPCTargetMachine(PPC32, IL,
TargetData(PPC32,false,4,4,4,4,4,4,2,1,4),
TargetFrameInfo(TargetFrameInfo::StackGrowsDown,16,0),
- PPC32JITInfo(*this)) {}
+ PPC32JITInfo(*this), false) {}
/// PPC64TargetMachine ctor - Create a LP64 architecture model
///
@@ -153,7 +157,7 @@ PPC64TargetMachine::PPC64TargetMachine(const Module &M, IntrinsicLowering *IL)
: PowerPCTargetMachine(PPC64, IL,
TargetData(PPC64,false,8,4,4,4,4,4,2,1,4),
TargetFrameInfo(TargetFrameInfo::StackGrowsDown,16,0),
- PPC64JITInfo(*this)) {}
+ PPC64JITInfo(*this), true) {}
unsigned PPC32TargetMachine::getModuleMatchQuality(const Module &M) {
if (M.getEndianness() == Module::BigEndian &&
OpenPOWER on IntegriCloud