summaryrefslogtreecommitdiffstats
path: root/llvm/lib/Target/X86/X86FrameLowering.h
diff options
context:
space:
mode:
authorPengfei Wang <pengfei.wang@intel.com>2019-08-27 01:53:24 +0000
committerPengfei Wang <pengfei.wang@intel.com>2019-08-27 01:53:24 +0000
commit564fb58a32a808c34d809820d00e2f23c0307a71 (patch)
treedeba7fd2777de50c7acc0c0c6fca36bbfcfd9514 /llvm/lib/Target/X86/X86FrameLowering.h
parent6a808d5a8399557aad9ad1c91c9d2336771be24f (diff)
downloadbcm5719-llvm-564fb58a32a808c34d809820d00e2f23c0307a71.tar.gz
bcm5719-llvm-564fb58a32a808c34d809820d00e2f23c0307a71.zip
[WinEH] Allocate space in funclets stack to save XMM CSRs
Summary: This is an alternate approach to D63396 Currently funclets reuse the same stack slots that are used in the parent function for saving callee-saved xmm registers. If the parent function modifies a callee-saved xmm register before an excpetion is thrown, the catch handler will overwrite the original saved value. This patch allocates space in funclets stack for saving callee-saved xmm registers and uses RSP instead RBP to access memory. Signed-off-by: Pengfei Wang <pengfei.wang@intel.com> Reviewers: rnk, RKSimon, craig.topper, annita.zhang, LuoYuanke, andrew.w.kaylor Subscribers: hiraditya, llvm-commits Tags: #llvm Differential Revision: https://reviews.llvm.org/D66596 Signed-off-by: Pengfei Wang <pengfei.wang@intel.com> llvm-svn: 370005
Diffstat (limited to 'llvm/lib/Target/X86/X86FrameLowering.h')
-rw-r--r--llvm/lib/Target/X86/X86FrameLowering.h2
1 files changed, 2 insertions, 0 deletions
diff --git a/llvm/lib/Target/X86/X86FrameLowering.h b/llvm/lib/Target/X86/X86FrameLowering.h
index d32746e3a36..c5218cc09b8 100644
--- a/llvm/lib/Target/X86/X86FrameLowering.h
+++ b/llvm/lib/Target/X86/X86FrameLowering.h
@@ -99,6 +99,8 @@ public:
int getFrameIndexReference(const MachineFunction &MF, int FI,
unsigned &FrameReg) const override;
+ int getWin64EHFrameIndexRef(const MachineFunction &MF,
+ int FI, unsigned &SPReg) const;
int getFrameIndexReferenceSP(const MachineFunction &MF,
int FI, unsigned &SPReg, int Adjustment) const;
int getFrameIndexReferencePreferSP(const MachineFunction &MF, int FI,
OpenPOWER on IntegriCloud