mirror of
https://github.com/c64scene-ar/llvm-6502.git
synced 2025-08-15 22:28:18 +00:00
Handle loading from/storing to undef pointers on SPU by inserting a
random load/store, rather than crashing llc. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@105710 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
@@ -606,7 +606,9 @@ SPUDAGToDAGISel::DFormAddressPredicate(SDNode *Op, SDValue N, SDValue &Base,
|
|||||||
Base = CurDAG->getTargetConstant(0, N.getValueType());
|
Base = CurDAG->getTargetConstant(0, N.getValueType());
|
||||||
Index = N;
|
Index = N;
|
||||||
return true;
|
return true;
|
||||||
} else if (Opc == ISD::Register || Opc == ISD::CopyFromReg) {
|
} else if (Opc == ISD::Register
|
||||||
|
||Opc == ISD::CopyFromReg
|
||||||
|
||Opc == ISD::UNDEF) {
|
||||||
unsigned OpOpc = Op->getOpcode();
|
unsigned OpOpc = Op->getOpcode();
|
||||||
|
|
||||||
if (OpOpc == ISD::STORE || OpOpc == ISD::LOAD) {
|
if (OpOpc == ISD::STORE || OpOpc == ISD::LOAD) {
|
||||||
|
@@ -31,3 +31,8 @@ define <4 x i32> @func() {
|
|||||||
ret <4 x i32> %rv3
|
ret <4 x i32> %rv3
|
||||||
}
|
}
|
||||||
|
|
||||||
|
define <4 x float> @load_undef(){
|
||||||
|
;CHECK lqd $3, 0($3)
|
||||||
|
%val = load <4 x float>* undef
|
||||||
|
ret <4 x float> %val
|
||||||
|
}
|
||||||
|
Reference in New Issue
Block a user