mirror of
https://github.com/c64scene-ar/llvm-6502.git
synced 2025-01-28 06:32:09 +00:00
Fix a problem on itanium with memset. The value to set has been promoted to
i64 before this code, so zero_ext doesn't work. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@26290 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
parent
a6fc94b71e
commit
dca7abed91
@ -1661,8 +1661,12 @@ SDOperand SelectionDAGLegalize::LegalizeOp(SDOperand Op) {
|
||||
const char *FnName = 0;
|
||||
if (Node->getOpcode() == ISD::MEMSET) {
|
||||
Args.push_back(std::make_pair(Tmp2, IntPtrTy));
|
||||
// Extend the ubyte argument to be an int value for the call.
|
||||
Tmp3 = DAG.getNode(ISD::ZERO_EXTEND, MVT::i32, Tmp3);
|
||||
// Extend the (previously legalized) ubyte argument to be an int value
|
||||
// for the call.
|
||||
if (Tmp3.getValueType() > MVT::i32)
|
||||
Tmp3 = DAG.getNode(ISD::TRUNCATE, MVT::i32, Tmp3);
|
||||
else
|
||||
Tmp3 = DAG.getNode(ISD::ZERO_EXTEND, MVT::i32, Tmp3);
|
||||
Args.push_back(std::make_pair(Tmp3, Type::IntTy));
|
||||
Args.push_back(std::make_pair(Tmp4, IntPtrTy));
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user