mirror of
https://github.com/c64scene-ar/llvm-6502.git
synced 2025-09-24 23:28:41 +00:00
Fix CodeGen for different size address space GEPs
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@193111 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
@@ -3229,10 +3229,12 @@ void SelectionDAGBuilder::visitExtractValue(const ExtractValueInst &I) {
|
||||
}
|
||||
|
||||
void SelectionDAGBuilder::visitGetElementPtr(const User &I) {
|
||||
SDValue N = getValue(I.getOperand(0));
|
||||
Value *Op0 = I.getOperand(0);
|
||||
// Note that the pointer operand may be a vector of pointers. Take the scalar
|
||||
// element which holds a pointer.
|
||||
Type *Ty = I.getOperand(0)->getType()->getScalarType();
|
||||
Type *Ty = Op0->getType()->getScalarType();
|
||||
unsigned AS = Ty->getPointerAddressSpace();
|
||||
SDValue N = getValue(Op0);
|
||||
|
||||
for (GetElementPtrInst::const_op_iterator OI = I.op_begin()+1, E = I.op_end();
|
||||
OI != E; ++OI) {
|
||||
@@ -3248,10 +3250,6 @@ void SelectionDAGBuilder::visitGetElementPtr(const User &I) {
|
||||
|
||||
Ty = StTy->getElementType(Field);
|
||||
} else {
|
||||
uint32_t AS = 0;
|
||||
if (PointerType *PtrType = dyn_cast<PointerType>(Ty)) {
|
||||
AS = PtrType->getAddressSpace();
|
||||
}
|
||||
Ty = cast<SequentialType>(Ty)->getElementType();
|
||||
|
||||
// If this is a constant subscript, handle it quickly.
|
||||
|
Reference in New Issue
Block a user