[llvm] [AArch64][GlobalISel] Implement selectVaStartAAPCS (PR #106979)
via llvm-commits
llvm-commits at lists.llvm.org
Wed Sep 4 02:13:22 PDT 2024
================
@@ -1994,7 +1994,108 @@ bool AArch64InstructionSelector::selectVectorAshrLshr(
bool AArch64InstructionSelector::selectVaStartAAPCS(
MachineInstr &I, MachineFunction &MF, MachineRegisterInfo &MRI) const {
- return false;
+
+ if (MF.getSubtarget<AArch64Subtarget>().isCallingConvWin64(
+ MF.getFunction().getCallingConv(), MF.getFunction().isVarArg()))
----------------
Him188 wrote:
In C `__attribute__((ms_abi))` can be used to enable Win64 ABI. `selectVaStartDarwin` handles this property. See commit https://github.com/llvm/llvm-project/commit/1c10d5b175992a9d056a2d763a932e5652386fc1.
This `if` was copied from darwin. I don't know the exact details on what this attribute implies as well as Win64 ABI, so I'm leaving this unsupported.
I think we shouldn't touch `case TargetOpcode::G_VASTART: ` to specifically handle Win64 in this PR.
https://github.com/llvm/llvm-project/pull/106979
More information about the llvm-commits
mailing list