[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