diff options
author | Nikita Popov <npopov@redhat.com> | 2023-08-17 11:55:38 +0200 |
---|---|---|
committer | Nikita Popov <npopov@redhat.com> | 2023-08-21 11:44:35 +0200 |
commit | fa1b6e6b34eb6382c451f3a06a7c52d7ac6ada1d (patch) | |
tree | 418e5e95da486541f3afe1dd40471078d501e982 /clang/lib/ExtractAPI/Serialization/SymbolGraphSerializer.cpp | |
parent | b0af89cbdad445e735a3506029dbb61c75ecaab2 (diff) | |
download | llvm-fa1b6e6b34eb6382c451f3a06a7c52d7ac6ada1d.zip llvm-fa1b6e6b34eb6382c451f3a06a7c52d7ac6ada1d.tar.gz llvm-fa1b6e6b34eb6382c451f3a06a7c52d7ac6ada1d.tar.bz2 |
[X86] Fix i128 argument passing under SysV ABI
The x86_64 SysV ABI specifies that __int128 is passed either in
two registers (if available) or in a 16 byte aligned stack slot.
GCC implements this behavior. However, if only one free register
is available, LLVM will instead pass one half of the i128 in a
register, and the other on the stack.
Make sure that either both are passed in registers or both on the
stack.
Fixes https://github.com/llvm/llvm-project/issues/41784.
The patch is basically what craig.topper proposed to do there.
Differential Revision: https://reviews.llvm.org/D158169
Diffstat (limited to 'clang/lib/ExtractAPI/Serialization/SymbolGraphSerializer.cpp')
0 files changed, 0 insertions, 0 deletions