diff options
author | Segher Boessenkool <segher@kernel.crashing.org> | 2017-01-21 04:11:49 +0100 |
---|---|---|
committer | Segher Boessenkool <segher@gcc.gnu.org> | 2017-01-21 04:11:49 +0100 |
commit | 80b40b87845bf2293f2bfdd215bbf758db5ceff4 (patch) | |
tree | 5c20c044c795bb09eb45f74fd42a8ce07bd44293 /compile | |
parent | 5e0075702264e98580f8487c12ebcf7eb8382d1b (diff) | |
download | gcc-80b40b87845bf2293f2bfdd215bbf758db5ceff4.zip gcc-80b40b87845bf2293f2bfdd215bbf758db5ceff4.tar.gz gcc-80b40b87845bf2293f2bfdd215bbf758db5ceff4.tar.bz2 |
rs6000: Small varargs for BE SVR4 (PR61729, PR77850)
The varargs code for SVR4 puts all (integer) arguments in 4-byte slots.
When it then reads an item from there as something not a multiple of 4
bytes, it needs to adjust the address if big endian. We didn't yet do
that.
This fixes the g++.dg/abi/scoped1.C, gcc.dg/compat/scalar-by-value-4,
and gcc.dg/compat/scalar-return-4 testcases.
PR target/61729
PR target/77850
* config/rs6000/rs6000.c (rs6000_gimplify_va_arg): Adjust address to
read from, for big endian.
From-SVN: r244740
Diffstat (limited to 'compile')
0 files changed, 0 insertions, 0 deletions