[PATCH] D63396: [WinEH] Allocate space in funclets stack to save XMM CSRs

Craig Topper via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Fri Jun 28 16:20:13 PDT 2019


craig.topper added inline comments.


================
Comment at: llvm/lib/Target/X86/X86FrameLowering.cpp:1418
+                     (NumBytes & ~(Align - 1));
+            addRegOffset(BuildMI(MBB, MBBI, DL, TII.get(X86::MOVAPSmr)),
+                         StackPtr, true, Offset)
----------------
Should we use a VEX instruction here under AVX?


================
Comment at: llvm/lib/Target/X86/X86FrameLowering.cpp:1424
+          }
+          else {
+            assert(!NeedsWinFPO && "SEH_SaveXMM incompatible with FPO data");
----------------
Put else on the line above


================
Comment at: llvm/lib/Target/X86/X86FrameLowering.cpp:2245
+    if (MBB.isEHFuncletEntry() && STI.is64Bit()) {
+      if (X86::FR64RegClass.contains(Reg)) {
+        int Offset = (CSI[i].getFrameIdx() - XMMFrameSlotOrigin - 1) * 16;
----------------
Any reason we're using FR64 here instead of VR128?


================
Comment at: llvm/lib/Target/X86/X86FrameLowering.cpp:2247
+        int Offset = (CSI[i].getFrameIdx() - XMMFrameSlotOrigin - 1) * 16;
+        addRegOffset(BuildMI(MBB, MI, DL, TII.get(X86::MOVAPSrm), Reg),
+                     X86::RSP, true, SEHFrameOffset + Offset);
----------------
VEX instruction under AVX?


Repository:
  rG LLVM Github Monorepo

CHANGES SINCE LAST ACTION
  https://reviews.llvm.org/D63396/new/

https://reviews.llvm.org/D63396





More information about the llvm-commits mailing list