diff mbox

[committed] Fix varargs padding on hppa64 target

Message ID 51105B3B-E0F6-47F0-B163-D0F64C4B8965@bell.net
State New
Headers show

Commit Message

John David Anglin March 6, 2017, 11:04 p.m. UTC
The attached change fixes PR target/77850 on hppa64.  The define for PAD_VARARGS_DOWN needs
to match the behaviour selected in pa_function_arg_padding().  That is complex and vector types should
not be padded down.

Tested on hppa64-hp-hpux11.11.  Committed to trunk, gcc-6 and gcc-5 branches.

Dave
--
John David Anglin	dave.anglin@bell.net
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.
diff mbox

Patch

Index: config/pa/pa-64.h
===================================================================
--- config/pa/pa-64.h	(revision 245894)
+++ config/pa/pa-64.h	(working copy)
@@ -83,7 +83,10 @@ 
    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