]> granicus.if.org Git - llvm/commit
Merging r294527:
authorHans Wennborg <hans@hanshq.net>
Wed, 15 Feb 2017 01:06:12 +0000 (01:06 +0000)
committerHans Wennborg <hans@hanshq.net>
Wed, 15 Feb 2017 01:06:12 +0000 (01:06 +0000)
commitdbca326a90411f222472ee506c902032971e655e
tree77dfcd2ca2404f58203d3c1b032f5cc3ef6a6e37
parent407aa2606f2cbaad4531cf0e2abb3ad58c8b3973
Merging r294527:
------------------------------------------------------------------------
r294527 | arnolds | 2017-02-08 14:30:47 -0800 (Wed, 08 Feb 2017) | 14 lines

[ARM/AArch ISel] SwiftCC: First parameters that are marked swiftself are not 'this returns'

We mark X0 as preserved by a call that passes the returned parameter.

 x0 = ...
 fun(x0) // no implicit def of x0

This no longer is valid if we pass the parameter in a different register then
the returned value as is the case with a swiftself parameter (passed in x20).

x20 = ...
fun(x20) // there should be an implict def of x8

rdar://30425845
------------------------------------------------------------------------

git-svn-id: https://llvm.org/svn/llvm-project/llvm/branches/release_40@295135 91177308-0d34-0410-b5e6-96231b3b80d8
lib/Target/AArch64/AArch64ISelLowering.cpp
lib/Target/ARM/ARMISelLowering.cpp
test/CodeGen/AArch64/swiftself.ll
test/CodeGen/ARM/swiftself.ll