[PATCH] D61224: Fix i386 stack alignment for parameter type with breakdowns
Reid Kleckner via Phabricator via llvm-commits
llvm-commits at lists.llvm.org
Wed May 22 14:10:47 PDT 2019
rnk added a comment.
IIUC, this bug is only present when SSE2 is disabled, and your change only has any effect on tests that don't enable SSE2. The normal calling convention rules for vectors pass them in XMM0-2, and then in 16 byte aligned stack memory. So, in most normal operation, LLVM does the right thing.
The fix itself is pretty obscure. You're making a change to the way all i32 and f32 arguments passed in memory are aligned, but I think you probably want the same fix for v2f64, which is probably broken down into two doubles, and handled by this 32-bit f64 rule:
// Doubles get 8-byte slots that are 4-byte aligned.
CCIfType<[f64], CCAssignToStack<8, 4>>,
Repository:
rL LLVM
CHANGES SINCE LAST ACTION
https://reviews.llvm.org/D61224/new/
https://reviews.llvm.org/D61224
More information about the llvm-commits
mailing list