tmgross added a comment.

In D86310#4596730 <https://reviews.llvm.org/D86310#4596730>, @hvdijk wrote:

> My understanding is that the code clang generates for `__int128` will still 
> allow it to be passed half-in-register, half-in-memory, exactly what D158169 
> <https://reviews.llvm.org/D158169> sets out to fix, because D158169 
> <https://reviews.llvm.org/D158169> only fixes it for LLVM's `i128` which 
> clang bypasses.

I think that D158169 <https://reviews.llvm.org/D158169> seems to have fixed 
clang as well; after applying both patches, clang gcc and rustc all seem to 
agree. On the readme for https://github.com/tgross35/quick-abi-check look at 
the tests `i128-caller-gcc-callee-clang-old` (args don't align) 
`i128-caller-gcc-callee-clang-new` (args **are** the same) and 
`i128-caller-gcc-callee-rustc` (args are the same). Also the full ABI checker 
seems to say everything is in order 
(https://github.com/rust-lang/rust/pull/113880#issuecomment-1683021483 not sure 
why it says "4 failed" at the end, but I think it's a bug since no tests 
actually show failed).

Does this all seem correct? As far as I can tell it seems like with both patchs 
these issues should be resolved.


Repository:
  rG LLVM Github Monorepo

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

https://reviews.llvm.org/D86310

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

Reply via email to