From dec25266d71136bd6282b708dc8dafa0fbfe3204 Mon Sep 17 00:00:00 2001 From: Akira Hatanaka Date: Tue, 5 Feb 2013 21:18:11 +0000 Subject: [mips] Do not use function CC_MipsN_VarArg unless the function being analyzed is a vararg function. The original code was examining flag OutputArg::IsFixed to determine whether CC_MipsN_VarArg or CC_MipsN should be called. This is not correct, since this flag is often set to false when the function being analyzed is a non-variadic function. llvm-svn: 174442 --- llvm/lib/Target/Mips/MipsISelLowering.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'llvm/lib/Target/Mips/MipsISelLowering.cpp') diff --git a/llvm/lib/Target/Mips/MipsISelLowering.cpp b/llvm/lib/Target/Mips/MipsISelLowering.cpp index ff0064e68c8..2ff369cfab2 100644 --- a/llvm/lib/Target/Mips/MipsISelLowering.cpp +++ b/llvm/lib/Target/Mips/MipsISelLowering.cpp @@ -3793,7 +3793,7 @@ MipsTargetLowering::MipsCC::MipsCC(CallingConv::ID CallConv, bool IsVarArg, IntArgRegs = Mips64IntRegs; ShadowRegs = Mips64DPRegs; FixedFn = CC_MipsN; - VarFn = CC_MipsN_VarArg; + VarFn = IsVarArg ? CC_MipsN_VarArg : CC_MipsN; } if (CallConv == CallingConv::Fast) { -- cgit v1.2.3