[PATCH] D151400: [X86] Align stack to 16-bytes on 32-bit with X86_INTR call convention
Phoebe Wang via Phabricator via llvm-commits
llvm-commits at lists.llvm.org
Thu May 25 06:32:25 PDT 2023
pengfei added inline comments.
================
Comment at: llvm/lib/Target/X86/X86FrameLowering.cpp:1248
+ if (HasRealign)
+ MaxAlign = Align(std::lcm(16, MaxAlign.value()));
+ else
----------------
I think `max` is enough. We don't have no-power-of-2 alginment.
================
Comment at: llvm/lib/Target/X86/X86FrameLowering.cpp:1248
+ if (HasRealign)
+ MaxAlign = Align(std::lcm(16, MaxAlign.value()));
+ else
----------------
pengfei wrote:
> I think `max` is enough. We don't have no-power-of-2 alginment.
Where's the `16` request from, ABI?
================
Comment at: llvm/test/CodeGen/X86/x86-32-intrcc.ll:10-11
; Spills eax, putting original esp at +4.
; No stack adjustment if declared with no error code
define x86_intrcc void @test_isr_no_ecode(ptr byval(%struct.interrupt_frame) %frame) {
----------------
This seems conflict with the intention here.
================
Comment at: llvm/test/CodeGen/X86/x86-32-intrcc.ll:35-36
; Spills eax and ecx, putting original esp at +8. Stack is adjusted up another 4 bytes
; before return, popping the error code.
define x86_intrcc void @test_isr_ecode(ptr byval(%struct.interrupt_frame) %frame, i32 %ecode) {
----------------
ditto.
================
Comment at: llvm/test/CodeGen/X86/x86-32-intrcc.ll:103
; CHECK-NEXT: fstpt f80
- ; CHECK-NEXT: iretl
+ ; CHECK: iretl
entry:
----------------
This should not be affected.
Repository:
rG LLVM Github Monorepo
CHANGES SINCE LAST ACTION
https://reviews.llvm.org/D151400/new/
https://reviews.llvm.org/D151400
More information about the llvm-commits
mailing list