mirror of
https://github.com/c64scene-ar/llvm-6502.git
synced 2025-01-02 07:32:52 +00:00
autoupgrade memcpy/memmove/memset with signed counts.
CVS: ---------------------------------------------------------------------- git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@26654 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
parent
ddc877ccae
commit
a758b8250d
@ -84,10 +84,18 @@ static Function *getUpgradedIntrinsic(Function *F) {
|
||||
case 'm':
|
||||
if (Name == "llvm.memcpy" || Name == "llvm.memset" ||
|
||||
Name == "llvm.memmove") {
|
||||
if (F->getFunctionType()->getParamType(2) == Type::UIntTy)
|
||||
return M->getOrInsertFunction(Name+".i32", F->getFunctionType());
|
||||
if (F->getFunctionType()->getParamType(2) == Type::ULongTy)
|
||||
return M->getOrInsertFunction(Name+".i64", F->getFunctionType());
|
||||
if (F->getFunctionType()->getParamType(2) == Type::UIntTy ||
|
||||
F->getFunctionType()->getParamType(2) == Type::IntTy)
|
||||
return M->getOrInsertFunction(Name+".i32", Type::VoidTy,
|
||||
PointerType::get(Type::SByteTy),
|
||||
F->getFunctionType()->getParamType(1),
|
||||
Type::UIntTy, Type::UIntTy, NULL);
|
||||
if (F->getFunctionType()->getParamType(2) == Type::ULongTy ||
|
||||
F->getFunctionType()->getParamType(2) == Type::LongTy)
|
||||
return M->getOrInsertFunction(Name+".i64", Type::VoidTy,
|
||||
PointerType::get(Type::SByteTy),
|
||||
F->getFunctionType()->getParamType(1),
|
||||
Type::ULongTy, Type::UIntTy, NULL);
|
||||
}
|
||||
break;
|
||||
case 's':
|
||||
|
Loading…
Reference in New Issue
Block a user