When lowering calls and tail calls in AArch64, the register mask and
authorEric Christopher <echristo@gmail.com>
Wed, 6 Nov 2019 23:16:19 +0000 (15:16 -0800)
committerEric Christopher <echristo@gmail.com>
Wed, 6 Nov 2019 23:25:10 +0000 (15:25 -0800)
commit8d694a45ab6626a5768240ca370774c72722ca7c
treec98d5b295cef3414eb4c9a69624044b1578ae934
parent703c97be2492dfb0e4f3138e47fc1fe71c91adfa
When lowering calls and tail calls in AArch64, the register mask and
return value location depends on the calling convention of the callee.
`F.getCallingConv()`, however, is the caller CC. Correct it to the
callee CC from `CallLoweringInfo`.

Fixes PR43449

Patch by Shu-Chun Weng!
llvm/lib/Target/AArch64/AArch64CallLowering.cpp
llvm/test/CodeGen/AArch64/GlobalISel/arm64-irtranslator.ll
llvm/test/CodeGen/AArch64/GlobalISel/call-translator-tail-call.ll
llvm/test/CodeGen/AArch64/arm64-preserve-most.ll [new file with mode: 0644]