diff options
author | Pengfei Wang <pengfei.wang@intel.com> | 2019-08-27 01:53:24 +0000 |
---|---|---|
committer | Pengfei Wang <pengfei.wang@intel.com> | 2019-08-27 01:53:24 +0000 |
commit | 564fb58a32a808c34d809820d00e2f23c0307a71 (patch) | |
tree | deba7fd2777de50c7acc0c0c6fca36bbfcfd9514 /llvm/lib/Target/X86/X86FrameLowering.h | |
parent | 6a808d5a8399557aad9ad1c91c9d2336771be24f (diff) | |
download | bcm5719-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.h | 2 |
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, |