------- Comment #23 from dave at hiauly1 dot hia dot nrc dot ca 2008-10-27 13:49 ------- Subject: Re: [4.4 Regression] Small structs are not passed correctly on hppa64-*-*
> Note that if you pad upward COMPLEX_TYPE (an ABI change), then just the > assign_parm_remove_parallel fix should be enough and you could avoid passing > everything in BLKmode (which pessimizes the code), because the > emit_group_store > bug only affects arguments that aren't passed in the first bytes of the > register. Changing the padding introduces an inconsistency between GCC versions, but it's not really an ABI change as it always required upward padding. The treatment of complex and vector types in function_arg was written with this in mind. I did see that complex types were correctly passed without using BLKmode with your change installed. So, it it goes in, I will look at reverting the BLKmode change. Dave -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=37316