From 315357facab6e7a6a0b8d2c8b24974c39d24a385 Mon Sep 17 00:00:00 2001 From: Martin Storsjo Date: Wed, 31 Oct 2018 08:14:09 +0000 Subject: [AArch64] Mark condition flags and x16/x17 as clobbered when calling __chkstk This is similar to SVN r311061 for ARM. Differential Revision: https://reviews.llvm.org/D53878 llvm-svn: 345698 --- llvm/lib/Target/AArch64/AArch64FrameLowering.cpp | 6 ++++++ 1 file changed, 6 insertions(+) (limited to 'llvm/lib/Target') diff --git a/llvm/lib/Target/AArch64/AArch64FrameLowering.cpp b/llvm/lib/Target/AArch64/AArch64FrameLowering.cpp index a99dd356d4f..974377d3f62 100644 --- a/llvm/lib/Target/AArch64/AArch64FrameLowering.cpp +++ b/llvm/lib/Target/AArch64/AArch64FrameLowering.cpp @@ -731,6 +731,9 @@ void AArch64FrameLowering::emitPrologue(MachineFunction &MF, BuildMI(MBB, MBBI, DL, TII->get(AArch64::BL)) .addExternalSymbol("__chkstk") .addReg(AArch64::X15, RegState::Implicit) + .addReg(AArch64::X16, RegState::Implicit | RegState::Define | RegState::Dead) + .addReg(AArch64::X17, RegState::Implicit | RegState::Define | RegState::Dead) + .addReg(AArch64::NZCV, RegState::Implicit | RegState::Define | RegState::Dead) .setMIFlags(MachineInstr::FrameSetup); break; case CodeModel::Large: @@ -743,6 +746,9 @@ void AArch64FrameLowering::emitPrologue(MachineFunction &MF, BuildMI(MBB, MBBI, DL, TII->get(AArch64::BLR)) .addReg(AArch64::X16, RegState::Kill) .addReg(AArch64::X15, RegState::Implicit | RegState::Define) + .addReg(AArch64::X16, RegState::Implicit | RegState::Define | RegState::Dead) + .addReg(AArch64::X17, RegState::Implicit | RegState::Define | RegState::Dead) + .addReg(AArch64::NZCV, RegState::Implicit | RegState::Define | RegState::Dead) .setMIFlags(MachineInstr::FrameSetup); break; } -- cgit v1.2.3