mirror of
https://github.com/c64scene-ar/llvm-6502.git
synced 2024-12-27 13:30:05 +00:00
Allow targets to define libcall names for mem(cpy,set,move) intrinsics, rather than hardcoding them in DAG lowering.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@77586 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
parent
7216920791
commit
a114baa5bf
@ -224,6 +224,11 @@ namespace RTLIB {
|
||||
O_F32,
|
||||
O_F64,
|
||||
|
||||
// MEMORY
|
||||
MEMCPY,
|
||||
MEMSET,
|
||||
MEMMOVE,
|
||||
|
||||
// EXCEPTION HANDLING
|
||||
UNWIND_RESUME,
|
||||
|
||||
|
@ -3385,7 +3385,8 @@ SDValue SelectionDAG::getMemcpy(SDValue Chain, DebugLoc dl, SDValue Dst,
|
||||
std::pair<SDValue,SDValue> CallResult =
|
||||
TLI.LowerCallTo(Chain, Type::VoidTy,
|
||||
false, false, false, false, 0, CallingConv::C, false,
|
||||
getExternalSymbol("memcpy", TLI.getPointerTy()),
|
||||
getExternalSymbol(TLI.getLibcallName(RTLIB::MEMCPY),
|
||||
TLI.getPointerTy()),
|
||||
Args, *this, dl);
|
||||
return CallResult.second;
|
||||
}
|
||||
@ -3431,7 +3432,8 @@ SDValue SelectionDAG::getMemmove(SDValue Chain, DebugLoc dl, SDValue Dst,
|
||||
std::pair<SDValue,SDValue> CallResult =
|
||||
TLI.LowerCallTo(Chain, Type::VoidTy,
|
||||
false, false, false, false, 0, CallingConv::C, false,
|
||||
getExternalSymbol("memmove", TLI.getPointerTy()),
|
||||
getExternalSymbol(TLI.getLibcallName(RTLIB::MEMMOVE),
|
||||
TLI.getPointerTy()),
|
||||
Args, *this, dl);
|
||||
return CallResult.second;
|
||||
}
|
||||
@ -3483,7 +3485,8 @@ SDValue SelectionDAG::getMemset(SDValue Chain, DebugLoc dl, SDValue Dst,
|
||||
std::pair<SDValue,SDValue> CallResult =
|
||||
TLI.LowerCallTo(Chain, Type::VoidTy,
|
||||
false, false, false, false, 0, CallingConv::C, false,
|
||||
getExternalSymbol("memset", TLI.getPointerTy()),
|
||||
getExternalSymbol(TLI.getLibcallName(RTLIB::MEMSET),
|
||||
TLI.getPointerTy()),
|
||||
Args, *this, dl);
|
||||
return CallResult.second;
|
||||
}
|
||||
|
@ -241,6 +241,9 @@ static void InitLibcallNames(const char **Names) {
|
||||
Names[RTLIB::UO_F64] = "__unorddf2";
|
||||
Names[RTLIB::O_F32] = "__unordsf2";
|
||||
Names[RTLIB::O_F64] = "__unorddf2";
|
||||
Names[RTLIB::MEMCPY] = "memcpy";
|
||||
Names[RTLIB::MEMMOVE] = "memmove";
|
||||
Names[RTLIB::MEMSET] = "memset";
|
||||
Names[RTLIB::UNWIND_RESUME] = "_Unwind_Resume";
|
||||
}
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user