# x86_64 sysv C ABI: fix f128 param and return types · gitcafe/zig

[View on GitCafe](https://git.cafe/gitcafe/zig/commit/6986d2aca900bdda30f541baf9b06fb29688fe97)

Repository: [gitcafe/zig](https://git.cafe/gitcafe/zig)

Visibility: public

Requested revision: 6986d2aca900bdda30f541baf9b06fb29688fe97

Requested commit: 6986d2aca900bdda30f541baf9b06fb29688fe97

Commit: 6986d2aca900bdda30f541baf9b06fb29688fe97

Tree: c5011736f5b9383478cabcbae8205c10258a6b77

Author: Andrew Kelley

Committer: Andrew Kelley

## Message

```
x86_64 sysv C ABI: fix f128 param and return types

Clang 17 passed struct{f128} parameters using rdi and rax, while Clang
18 matches GCC 13.2 behavior, passing them using xmm0.

This commit makes Zig's LLVM backend match Clang 18 and GCC 13.2. The
commit deletes a hack in x86_64/abi.zig which miscategorized f128 as
"memory" which obviously disagreed with the spec.

```

## Parents

- [bc69cb9b106cbb0748b960c10b7cf66d0c5fd28e](https://git.cafe/gitcafe/zig/commit/bc69cb9b106cbb0748b960c10b7cf66d0c5fd28e?format=markdown)

[Source at this commit](https://git.cafe/gitcafe/zig/tree/6986d2aca900bdda30f541baf9b06fb29688fe97?format=markdown)
