aboutsummaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
authorJohn David Anglin <danglin@gcc.gnu.org>2017-03-06 22:48:53 +0000
committerJohn David Anglin <danglin@gcc.gnu.org>2017-03-06 22:48:53 +0000
commit5935a7c495162f3d03c13336492f2cc434339074 (patch)
treeb099f74b43995c343fd609b419c64460cbfd5752 /gcc
parentf8386dae3f234c2d285bbfbd560f9e7f80b51430 (diff)
downloadgcc-5935a7c495162f3d03c13336492f2cc434339074.zip
gcc-5935a7c495162f3d03c13336492f2cc434339074.tar.gz
gcc-5935a7c495162f3d03c13336492f2cc434339074.tar.bz2
PR target 77850
PR target 77850 * config/pa/pa-64.h (PAD_VARARGS_DOWN): Don't pad down complex and vector types. From-SVN: r245931
Diffstat (limited to 'gcc')
-rw-r--r--gcc/ChangeLog6
-rw-r--r--gcc/config/pa/pa-64.h5
2 files changed, 10 insertions, 1 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index a13d73a..bd424cb 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,3 +1,9 @@
+2017-03-06 John David Anglin <danglin@gcc.gnu.org>
+
+ PR target 77850
+ * config/pa/pa-64.h (PAD_VARARGS_DOWN): Don't pad down complex and
+ vector types.
+
2017-03-06 Vladimir Makarov <vmakarov@redhat.com>
PR rtl-optimization/79571
diff --git a/gcc/config/pa/pa-64.h b/gcc/config/pa/pa-64.h
index 17f3571..1d08b28 100644
--- a/gcc/config/pa/pa-64.h
+++ b/gcc/config/pa/pa-64.h
@@ -83,7 +83,10 @@ along with GCC; see the file COPYING3. If not see
arguments are padded down when BYTES_BIG_ENDIAN is true. We don't
want aggregates padded down. */
-#define PAD_VARARGS_DOWN (!AGGREGATE_TYPE_P (type))
+#define PAD_VARARGS_DOWN \
+ (!AGGREGATE_TYPE_P (type) \
+ && TREE_CODE (type) != COMPLEX_TYPE \
+ && TREE_CODE (type) != VECTOR_TYPE)
/* In the PA architecture, it is not possible to directly move data
between GENERAL_REGS and FP_REGS. On the 32-bit port, we use the