Nikita Popov fa1b6e6b34 [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
2023-08-21 11:44:35 +02:00
..
2023-07-25 11:23:36 -04:00
2023-07-10 11:15:48 -04:00
2023-06-14 13:08:07 +01:00
2023-08-18 23:36:04 -07:00

See llvm/docs/README.txt