aboutsummaryrefslogtreecommitdiff
path: root/lib
diff options
context:
space:
mode:
Diffstat (limited to 'lib')
-rw-r--r--lib/CodeGen/TargetMachine/Sparc/Sparc.cpp13
-rw-r--r--lib/CodeGen/TargetMachine/Sparc/SparcInstrSelection.cpp12
2 files changed, 7 insertions, 18 deletions
diff --git a/lib/CodeGen/TargetMachine/Sparc/Sparc.cpp b/lib/CodeGen/TargetMachine/Sparc/Sparc.cpp
index a9ea1da02c..4707b373b9 100644
--- a/lib/CodeGen/TargetMachine/Sparc/Sparc.cpp
+++ b/lib/CodeGen/TargetMachine/Sparc/Sparc.cpp
@@ -27,23 +27,14 @@
//---------------------------------------------------------------------------
UltraSparc::UltraSparc()
- : TargetMachine(new UltraSparcInstrInfo)
-{
+ : TargetMachine("UltraSparc-Native", new UltraSparcInstrInfo()) {
optSizeForSubWordData = 4;
- intSize = 4;
- floatSize = 4;
- longSize = 8;
- doubleSize = 8;
- longDoubleSize = 16;
- pointerSize = 8;
minMemOpWordSize = 8;
maxAtomicMemOpWordSize = 8;
zeroRegNum = 0; // %g0 always gives 0 on Sparc
}
-UltraSparc::~UltraSparc()
-{
- delete (UltraSparcInstrInfo*) machineInstrInfo;
+UltraSparc::~UltraSparc() {
}
//**************************************************************************/
diff --git a/lib/CodeGen/TargetMachine/Sparc/SparcInstrSelection.cpp b/lib/CodeGen/TargetMachine/Sparc/SparcInstrSelection.cpp
index 95cc0ec62b..83962537ce 100644
--- a/lib/CodeGen/TargetMachine/Sparc/SparcInstrSelection.cpp
+++ b/lib/CodeGen/TargetMachine/Sparc/SparcInstrSelection.cpp
@@ -1347,8 +1347,7 @@ SetMemOperands_Internal(MachineInstr* minstr,
isConstantOffset = true;
// Compute the offset value using the index vector
- offset = MemAccessInst::getIndexedOfsetForTarget(ptrType,
- idxVec, target);
+ offset = target.DataLayout.getIndexedOffset(ptrType, idxVec);
}
else
{
@@ -1359,13 +1358,12 @@ SetMemOperands_Internal(MachineInstr* minstr,
assert(arrayOffsetVal != NULL
&& "Expect to be given Value* for array offsets");
- if (arrayOffsetVal->getValueType() == Value::ConstantVal)
- {
+ if (ConstPoolVal *CPV = arrayOffsetVal->castConstant()) {
isConstantOffset = true; // always constant for structs
assert(arrayOffsetVal->getType()->isIntegral());
- offset = (arrayOffsetVal->getType()->isSigned())
- ? ((ConstPoolSInt*) arrayOffsetVal)->getValue()
- : (int64_t) ((ConstPoolUInt*) arrayOffsetVal)->getValue();
+ offset = (CPV->getType()->isSigned())
+ ? ((ConstPoolSInt*)CPV)->getValue()
+ : (int64_t) ((ConstPoolUInt*)CPV)->getValue();
}
else
{