mirror of
https://github.com/c64scene-ar/llvm-6502.git
synced 2025-06-12 13:38:21 +00:00
Split memcpy/memset/memmove intrinsics into i32/i64 versions, resolving
PR709, and paving the way for future progress. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@26476 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
@ -545,8 +545,10 @@ void GraphBuilder::visitCallSite(CallSite CS) {
|
||||
return;
|
||||
case Intrinsic::vaend:
|
||||
return; // noop
|
||||
case Intrinsic::memmove:
|
||||
case Intrinsic::memcpy: {
|
||||
case Intrinsic::memmove_i32:
|
||||
case Intrinsic::memcpy_i32:
|
||||
case Intrinsic::memmove_i64:
|
||||
case Intrinsic::memcpy_i64: {
|
||||
// Merge the first & second arguments, and mark the memory read and
|
||||
// modified.
|
||||
DSNodeHandle RetNH = getValueDest(**CS.arg_begin());
|
||||
@ -555,7 +557,8 @@ void GraphBuilder::visitCallSite(CallSite CS) {
|
||||
N->setModifiedMarker()->setReadMarker();
|
||||
return;
|
||||
}
|
||||
case Intrinsic::memset:
|
||||
case Intrinsic::memset_i32:
|
||||
case Intrinsic::memset_i64:
|
||||
// Mark the memory modified.
|
||||
if (DSNode *N = getValueDest(**CS.arg_begin()).getNode())
|
||||
N->setModifiedMarker();
|
||||
|
Reference in New Issue
Block a user