backport: re PR target/92904 (varargs for __int128 is placed at an unaligned location...
commitffb5cc9a5599b1936c5ebea153ca52a0aa2c785d
authorJakub Jelinek <jakub@redhat.com>
Fri, 14 Feb 2020 14:24:48 +0000 (14 15:24 +0100)
committerJakub Jelinek <jakub@redhat.com>
Fri, 14 Feb 2020 15:01:45 +0000 (14 16:01 +0100)
treef39b53d468ed0c0c9beaf383bbc27c93c0f50eb1
parentf9a0c0800994d5e0b68c0a8eed47454bce841f97
backport: re PR target/92904 (varargs for __int128 is placed at an unaligned location and uses movdqa for the load)

Backported from mainline
2019-12-12  Jakub Jelinek  <jakub@redhat.com>

PR target/92904
* config/i386/i386.c (ix86_gimplify_va_arg): If need_intregs and
not need_temp, decrease alignment of the read because the GPR save
area only guarantees 8-byte alignment.

* gcc.c-torture/execute/pr92904.c: New test.
gcc/ChangeLog
gcc/config/i386/i386.c
gcc/testsuite/ChangeLog
gcc/testsuite/gcc.c-torture/execute/pr92904.c [new file with mode: 0644]