PR target 77850
authorJohn David Anglin <danglin@gcc.gnu.org>
Mon, 6 Mar 2017 22:48:53 +0000 (22:48 +0000)
committerJohn David Anglin <danglin@gcc.gnu.org>
Mon, 6 Mar 2017 22:48:53 +0000 (22:48 +0000)
PR target 77850
* config/pa/pa-64.h (PAD_VARARGS_DOWN): Don't pad down complex and
vector types.

From-SVN: r245931

gcc/ChangeLog
gcc/config/pa/pa-64.h

index a13d73ae35657b24db69319dd3d3b1f8bec42204..bd424cbdf58821e1d0f55d23419149627b491289 100644 (file)
@@ -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
index 17f3571c6d5c94d0082fce8d92a416516fccdb66..1d08b28e76c12fe4b8addc50b540a269830f96d1 100644 (file)
@@ -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