From 39032673da9fe6da0c532f4c220090c793acb47d Mon Sep 17 00:00:00 2001 From: Juergen Ributzka Date: Thu, 31 Jul 2014 00:11:11 +0000 Subject: [FastISel][AArch64 and X86] Don't emit stores for UNDEF arguments during function call lowering. UNDEF arguments are not ment to be touched - especially for the webkit_js calling convention. This fix reproduces the already existing behavior of SelectionDAG in FastISel. llvm-svn: 214366 --- llvm/lib/Target/X86/X86FastISel.cpp | 5 +++++ 1 file changed, 5 insertions(+) (limited to 'llvm/lib/Target/X86/X86FastISel.cpp') diff --git a/llvm/lib/Target/X86/X86FastISel.cpp b/llvm/lib/Target/X86/X86FastISel.cpp index 52e65670a50..0938eda9dad 100644 --- a/llvm/lib/Target/X86/X86FastISel.cpp +++ b/llvm/lib/Target/X86/X86FastISel.cpp @@ -2831,6 +2831,11 @@ bool X86FastISel::FastLowerCall(CallLoweringInfo &CLI) { OutRegs.push_back(VA.getLocReg()); } else { assert(VA.isMemLoc()); + + // Don't emit stores for undef values. + if (isa(ArgVal)) + continue; + unsigned LocMemOffset = VA.getLocMemOffset(); X86AddressMode AM; AM.Base.Reg = RegInfo->getStackRegister(); -- cgit v1.2.3