diff options
| author | Juergen Ributzka <juergen@apple.com> | 2014-07-31 00:11:11 +0000 |
|---|---|---|
| committer | Juergen Ributzka <juergen@apple.com> | 2014-07-31 00:11:11 +0000 |
| commit | 39032673da9fe6da0c532f4c220090c793acb47d (patch) | |
| tree | 4a83b26b5f52eb8c89dabe6d7b75f5903419c839 /llvm/lib/Target/X86/X86FastISel.cpp | |
| parent | 5faa6225ad738883f76e94feb9414c911b31a0f6 (diff) | |
| download | bcm5719-llvm-39032673da9fe6da0c532f4c220090c793acb47d.tar.gz bcm5719-llvm-39032673da9fe6da0c532f4c220090c793acb47d.zip | |
[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
Diffstat (limited to 'llvm/lib/Target/X86/X86FastISel.cpp')
| -rw-r--r-- | llvm/lib/Target/X86/X86FastISel.cpp | 5 |
1 files changed, 5 insertions, 0 deletions
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<UndefValue>(ArgVal)) + continue; + unsigned LocMemOffset = VA.getLocMemOffset(); X86AddressMode AM; AM.Base.Reg = RegInfo->getStackRegister(); |

