[PATCH] D59592: [RISCV] support ilp32e Calling Convention

Daliang Xu via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Tue Apr 2 02:57:18 PDT 2019


xudaliang.pku added a comment.

In D59592#1445996 <https://reviews.llvm.org/D59592#1445996>, @asb wrote:

> Hi Daliang., thanks for the submission. One problem I think you'll find once you extend the tests is that support for realigning the stack is going to be required - e.g. if passing a double (8-byte aligned) on the stack (4-byte aligned).


I have made a new test for passing a double (8-byte aligned) on the stack (4-byte aligned)  in calling-conv-ilp32e.ll for func: caller_double_on_stack and callee_double_on_stack.
It seems the realigning the stack is done.
In this example . the  i32 %d and double %e are passed by the stack.  And the test shows that the the stack is align at 8 bytes. The  %d is in 0(sp) using only 4 bytes and %e is in 8(sp) using 8 bytes. The pos 4(sp) is not used. So ,is that means the stack is realigned or just aligned for 8 bytes. Is that right?
Did I understand clearly that when passing the double variable, the stack should align at 8 bytes rather than 4 bytes ?


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

https://reviews.llvm.org/D59592





More information about the llvm-commits mailing list