This is the mail archive of the
gcc-patches@gcc.gnu.org
mailing list for the GCC project.
Re: fix execute/20020412-1.c
- From: "John David Anglin" <dave at hiauly1 dot hia dot nrc dot ca>
- To: gcc-patches at gcc dot gnu dot org
- Cc: joern dot rennecke at superh dot com, rth at redhat dot com
- Date: Wed, 4 Sep 2002 17:43:00 -0400 (EDT)
- Subject: Re: fix execute/20020412-1.c
> This break the execute/strct-stdarg-1.c testcase on big endian
> SHcompact targets. Struct tiny is 5 bytes large, and has to
> be padded for argument passing. The padding is done at the most
I don't know about the SH for sure but the passing of 5-7 byte structures
has been broken on the PA forever and Jeff XFAIL'd strct-stdarg-1.c.
These small structs have been incorrectly padded on the left for
a long time on the 32-bit PA port because there is no way to specify
padding on the right using FUNCTION_ARG_PADDING when the size of
a BLKmode type is wider than a word.
I am trying the following on a hppa64-hp-hpux11 build. These defines
were suggested by Steve Ellcey:
#define FUNCTION_ARG_REG_LITTLE_ENDIAN 1
#define MEMBER_TYPE_FORCES_BLK(FIELD, MODE) 1
#define PAD_VARARGS_DOWN (!AGGREGATE_TYPE_P (type))
strct-stdarg-1.c doesn't fail on the 64-bit port but 20020412-1.c
fails on all PA ports.
Dave
--
J. David Anglin dave.anglin@nrc.ca
National Research Council of Canada (613) 990-0752 (FAX: 952-6605)