aboutsummaryrefslogtreecommitdiff
path: root/lib/CodeGen/TargetMachine/Sparc/SparcInstrSelection.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'lib/CodeGen/TargetMachine/Sparc/SparcInstrSelection.cpp')
-rw-r--r--lib/CodeGen/TargetMachine/Sparc/SparcInstrSelection.cpp12
1 files changed, 5 insertions, 7 deletions
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
{