Skip to content

Commit

Permalink
[WinEH] Fix the wrong alignment orientation during calculating EH frame.
Browse files Browse the repository at this point in the history
Summary: This is a bug fix for further issues in PR43585.

Reviewers: rnk, RKSimon, craig.topper, andrew.w.kaylor

Subscribers: hiraditya, llvm-commits, annita.zhang

Tags: #llvm

Differential Revision: https://reviews.llvm.org/D70224
  • Loading branch information
phoebewang committed Nov 15, 2019
1 parent 95c770f commit 8723b95
Show file tree
Hide file tree
Showing 2 changed files with 10 additions and 10 deletions.
2 changes: 1 addition & 1 deletion llvm/lib/Target/X86/X86FrameLowering.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -1860,7 +1860,7 @@ int X86FrameLowering::getWin64EHFrameIndexRef(const MachineFunction &MF,
return getFrameIndexReference(MF, FI, FrameReg);

FrameReg = TRI->getStackRegister();
return alignTo(MFI.getMaxCallFrameSize(), getStackAlignment()) + it->second;
return alignDown(MFI.getMaxCallFrameSize(), getStackAlignment()) + it->second;
}

int X86FrameLowering::getFrameIndexReferenceSP(const MachineFunction &MF,
Expand Down
18 changes: 9 additions & 9 deletions llvm/test/CodeGen/X86/win64-funclet-savexmm.ll
Original file line number Diff line number Diff line change
Expand Up @@ -85,17 +85,17 @@ try.cont: ; preds = %catchret.dest, %inv
; CHECK: subq $88, %rsp
; CHECK: .seh_stackalloc 88
; CHECK: leaq 112(%rdx), %rbp
; CHECK: vmovaps %xmm8, 48(%rsp)
; CHECK: .seh_savexmm %xmm8, 48
; CHECK: vmovaps %xmm7, 64(%rsp)
; CHECK: .seh_savexmm %xmm7, 64
; CHECK: vmovaps %xmm6, 80(%rsp)
; CHECK: .seh_savexmm %xmm6, 80
; CHECK: vmovaps %xmm8, 32(%rsp)
; CHECK: .seh_savexmm %xmm8, 32
; CHECK: vmovaps %xmm7, 48(%rsp)
; CHECK: .seh_savexmm %xmm7, 48
; CHECK: vmovaps %xmm6, 64(%rsp)
; CHECK: .seh_savexmm %xmm6, 64
; CHECK: .seh_endprologue
; CHECK: movl -{{[0-9]+}}(%rbp), %ecx
; CHECK: vmovaps 80(%rsp), %xmm6
; CHECK: vmovaps 64(%rsp), %xmm7
; CHECK: vmovaps 48(%rsp), %xmm8
; CHECK: vmovaps 64(%rsp), %xmm6
; CHECK: vmovaps 48(%rsp), %xmm7
; CHECK: vmovaps 32(%rsp), %xmm8
; CHECK: leaq .LBB0_1(%rip), %rax
; CHECK: addq $88, %rsp
; CHECK: popq %rbx
Expand Down

0 comments on commit 8723b95

Please sign in to comment.