forked from OSchip/llvm-project
Don't set the calling convention for ARM if it is already the default.
llvm-svn: 106106
This commit is contained in:
parent
1c69bf00ae
commit
a92c442437
|
@ -1776,14 +1776,22 @@ void ARMABIInfo::computeInfo(CGFunctionInfo &FI, ASTContext &Context,
|
|||
it->info = classifyArgumentType(it->type, Context, VMContext);
|
||||
}
|
||||
|
||||
// ARM always overrides the calling convention.
|
||||
const llvm::Triple &Triple(Context.Target.getTriple());
|
||||
llvm::CallingConv::ID DefaultCC;
|
||||
if (Triple.getOS() == llvm::Triple::Darwin)
|
||||
DefaultCC = llvm::CallingConv::ARM_APCS;
|
||||
else
|
||||
DefaultCC = llvm::CallingConv::ARM_AAPCS;
|
||||
|
||||
switch (getABIKind()) {
|
||||
case APCS:
|
||||
FI.setEffectiveCallingConvention(llvm::CallingConv::ARM_APCS);
|
||||
if (DefaultCC != llvm::CallingConv::ARM_APCS)
|
||||
FI.setEffectiveCallingConvention(llvm::CallingConv::ARM_APCS);
|
||||
break;
|
||||
|
||||
case AAPCS:
|
||||
FI.setEffectiveCallingConvention(llvm::CallingConv::ARM_AAPCS);
|
||||
if (DefaultCC != llvm::CallingConv::ARM_AAPCS)
|
||||
FI.setEffectiveCallingConvention(llvm::CallingConv::ARM_AAPCS);
|
||||
break;
|
||||
|
||||
case AAPCS_VFP:
|
||||
|
|
Loading…
Reference in New Issue