diff options
author | Martin Storsjo <martin@martin.st> | 2018-10-31 08:14:09 +0000 |
---|---|---|
committer | Martin Storsjo <martin@martin.st> | 2018-10-31 08:14:09 +0000 |
commit | 315357facab6e7a6a0b8d2c8b24974c39d24a385 (patch) | |
tree | 2fca39efe15075872861ce46737fa0646908d99a /llvm/lib | |
parent | 3baa5f79d83a718f4cb2ed883954f0667a5900a2 (diff) | |
download | bcm5719-llvm-315357facab6e7a6a0b8d2c8b24974c39d24a385.tar.gz bcm5719-llvm-315357facab6e7a6a0b8d2c8b24974c39d24a385.zip |
[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
Diffstat (limited to 'llvm/lib')
-rw-r--r-- | llvm/lib/Target/AArch64/AArch64FrameLowering.cpp | 6 |
1 files changed, 6 insertions, 0 deletions
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; } |