mirror of
https://github.com/c64scene-ar/llvm-6502.git
synced 2025-04-11 00:39:36 +00:00
Make FastISel use the correct argument type when casting GEP indices.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@55384 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
parent
b71fea248f
commit
80bc6e2243
@ -124,18 +124,19 @@ bool FastISel::SelectGetElementPtr(Instruction *I,
|
||||
// it.
|
||||
MVT IdxVT = MVT::getMVT(Idx->getType(), /*HandleUnknown=*/false);
|
||||
if (IdxVT.bitsLT(VT))
|
||||
IdxN = FastEmit_r(VT, VT, ISD::SIGN_EXTEND, IdxN);
|
||||
IdxN = FastEmit_r(IdxVT.getSimpleVT(), VT, ISD::SIGN_EXTEND, IdxN);
|
||||
else if (IdxVT.bitsGT(VT))
|
||||
IdxN = FastEmit_r(VT, VT, ISD::TRUNCATE, IdxN);
|
||||
IdxN = FastEmit_r(IdxVT.getSimpleVT(), VT, ISD::TRUNCATE, IdxN);
|
||||
if (IdxN == 0)
|
||||
// Unhandled operand. Halt "fast" selection and bail.
|
||||
return false;
|
||||
|
||||
if (ElementSize != 1)
|
||||
if (ElementSize != 1) {
|
||||
IdxN = FastEmit_ri_(VT, ISD::MUL, IdxN, ElementSize, VT);
|
||||
if (IdxN == 0)
|
||||
// Unhandled operand. Halt "fast" selection and bail.
|
||||
return false;
|
||||
if (IdxN == 0)
|
||||
// Unhandled operand. Halt "fast" selection and bail.
|
||||
return false;
|
||||
}
|
||||
N = FastEmit_rr(VT, VT, ISD::ADD, N, IdxN);
|
||||
if (N == 0)
|
||||
// Unhandled operand. Halt "fast" selection and bail.
|
||||
|
Loading…
x
Reference in New Issue
Block a user