diff options
author | Eric Christopher <echristo@apple.com> | 2010-10-01 23:24:42 +0000 |
---|---|---|
committer | Eric Christopher <echristo@apple.com> | 2010-10-01 23:24:42 +0000 |
commit | c9932f6f60827e31395d5254fda73f03257963ae (patch) | |
tree | ad7510fc733f32fbd24ffb6ced198e566697e3e1 | |
parent | 78890f41f404fad3663408edd4adf2e13c1e13b5 (diff) |
Stub out constant GV handling, fixes C++ eh tests.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@115375 91177308-0d34-0410-b5e6-96231b3b80d8
-rw-r--r-- | lib/Target/ARM/ARMFastISel.cpp | 16 |
1 files changed, 14 insertions, 2 deletions
diff --git a/lib/Target/ARM/ARMFastISel.cpp b/lib/Target/ARM/ARMFastISel.cpp index 2d38aff416..3a716d321c 100644 --- a/lib/Target/ARM/ARMFastISel.cpp +++ b/lib/Target/ARM/ARMFastISel.cpp @@ -19,6 +19,7 @@ #include "ARMRegisterInfo.h" #include "ARMTargetMachine.h" #include "ARMSubtarget.h" +#include "ARMConstantPoolValue.h" #include "llvm/CallingConv.h" #include "llvm/DerivedTypes.h" #include "llvm/GlobalVariable.h" @@ -59,7 +60,7 @@ class ARMFastISel : public FastISel { const TargetMachine &TM; const TargetInstrInfo &TII; const TargetLowering &TLI; - const ARMFunctionInfo *AFI; + ARMFunctionInfo *AFI; // Convenience variables to avoid some queries. bool isThumb; @@ -139,6 +140,7 @@ class ARMFastISel : public FastISel { bool ARMComputeRegOffset(const Value *Obj, unsigned &Reg, int &Offset); unsigned ARMMaterializeFP(const ConstantFP *CFP, EVT VT); unsigned ARMMaterializeInt(const Constant *C, EVT VT); + unsigned ARMMaterializeGV(const GlobalValue *GV, EVT VT); unsigned ARMMoveToFPReg(EVT VT, unsigned SrcReg); unsigned ARMMoveToIntReg(EVT VT, unsigned SrcReg); @@ -446,6 +448,11 @@ unsigned ARMFastISel::ARMMaterializeInt(const Constant *C, EVT VT) { return DestReg; } +unsigned ARMFastISel::ARMMaterializeGV(const GlobalValue *GV, EVT VT) { + // Disable currently... + return 0; +} + unsigned ARMFastISel::TargetMaterializeConstant(const Constant *C) { EVT VT = TLI.getValueType(C->getType(), true); @@ -454,7 +461,12 @@ unsigned ARMFastISel::TargetMaterializeConstant(const Constant *C) { if (const ConstantFP *CFP = dyn_cast<ConstantFP>(C)) return ARMMaterializeFP(CFP, VT); - return ARMMaterializeInt(C, VT); + else if (const GlobalValue *GV = dyn_cast<GlobalValue>(C)) + return ARMMaterializeGV(GV, VT); + else if (isa<ConstantInt>(C)) + return ARMMaterializeInt(C, VT); + + return 0; } unsigned ARMFastISel::TargetMaterializeAlloca(const AllocaInst *AI) { |