tingwang added a comment.

In D133338#3850091 <https://reviews.llvm.org/D133338#3850091>, @rjmccall wrote:

> This seems be to a genuine target difference, right?  PPC64 has this ABI rule:
>
>> An aggregate or union smaller than one doubleword in size is padded so that 
>> it appears in the least significant bits of the doubleword.
>
> which overrides the standard rule for passing aggregates:
>
>> Fixed size aggregates and unions passed by value are mapped to as many 
>> doublewords of the parameter save area as the value uses in memory. 
>> Aggregrates and unions are aligned according to their alignment 
>> requirements. This may result in doublewords being skipped for alignment.
>
> Other big-endian targets don't do this to non-fundamental types as far as I 
> can tell.  So I don't really get the TODO in the comment; this does seem to 
> be something that ABIs need to pass in.

Thank you. I realized the TODO applies to the specific PPC64 case, not the API. 
I will move that.


Repository:
  rG LLVM Github Monorepo

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

https://reviews.llvm.org/D133338

_______________________________________________
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

Reply via email to