mirror of
https://github.com/c64scene-ar/llvm-6502.git
synced 2026-04-27 04:18:42 +00:00
Merging r232957:
------------------------------------------------------------------------ r232957 | thomas.stellard | 2015-03-23 12:06:01 -0400 (Mon, 23 Mar 2015) | 5 lines R600/SI: Fix crash in SIInstrInfo::areLoadsFromSameBasePtr() This function assumed that SMRD instructions always have immediate offsets, which is not always the case. ------------------------------------------------------------------------ git-svn-id: https://llvm.org/svn/llvm-project/llvm/branches/release_36@236069 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
1 parent
487f5c5d0e
commit
1e430573e2
2 files changed
+43
-3
No files matched your search
@@ -121,12 +121,20 @@ bool SIInstrInfo::areLoadsFromSameBasePtr(SDNode *Load0, SDNode *Load1,
|
||||
if (Load0->getOperand(0) != Load1->getOperand(0))
|
||||
return false;
|
||||
|
||||
const ConstantSDNode *Load0Offset =
|
||||
dyn_cast<ConstantSDNode>(Load0->getOperand(1));
|
||||
const ConstantSDNode *Load1Offset =
|
||||
dyn_cast<ConstantSDNode>(Load1->getOperand(1));
|
||||
|
||||
if (!Load0Offset || !Load1Offset)
|
||||
return false;
|
||||
|
||||
// Check chain.
|
||||
if (findChainOperand(Load0) != findChainOperand(Load1))
|
||||
return false;
|
||||
|
||||
Offset0 = cast<ConstantSDNode>(Load0->getOperand(1))->getZExtValue();
|
||||
Offset1 = cast<ConstantSDNode>(Load1->getOperand(1))->getZExtValue();
|
||||
Offset0 = Load0Offset->getZExtValue();
|
||||
Offset1 = Load1Offset->getZExtValue();
|
||||
return true;
|
||||
}
|
||||
|
||||
|
||||
Reference in new issue
Block a user