This is the mail archive of the
mailing list for the GCC project.
Re: [PATCH] AAPCS small aggregate argument passing/return in big-endian mode [csl-arm-branch]
- From: Paul Brook <paul at codesourcery dot com>
- To: gcc-patches at gcc dot gnu dot org
- Cc: Julian Brown <julian at codesourcery dot com>
- Date: Wed, 26 Jan 2005 18:38:56 +0000
- Subject: Re: [PATCH] AAPCS small aggregate argument passing/return in big-endian mode [csl-arm-branch]
- Organization: CodeSourcery
- References: <41F7B043.firstname.lastname@example.org>
> 2005-01-25 Julian Brown <email@example.com>
> * calls.c (shift_returned_value): Delete in favour of...
> (shift_return_value): ...this function. Leave the caller to
> check for non-BLKmode values passed in the msb of a register.
> Take said mode and a shift direction as argument. Operate on
> the hard function value, not a pseudo.
> * (expand_call): Adjust accordingly
> * expr.h (shift_return_value): Declare
> * function.c (expand_function_start): If a non-BLKmode return
> value is padded at the last significant end of the return
> register, use the return value's natural mode for the
> DECL_RESULT, not the mode of the padded register.
> (expand_function_end): Shift the same sort of return values left
> by the appropriate amount.
> * optabs.c (simplify_expand_binop): New function, backported
> from mainline.
> (force_expand_binop): New function, backported from mainline and
> * optabs.h (force_expand_binop): Declare.
> * stmt.c (shift_return_value): Delete.
> (expand_return): Don't call shift_return_value
> * config/arm/arm-protos.h (arm_must_pass_in_stack): Declare.
> (arm_pad_arg_upward): Declare:
> (arm_pad_reg_upward): Declare.
> * config/arm/arm.c (TARGET_RETURN_IN_MSB): Define target hook
You should quote the original Changelog entry in your new ChangeLog. Grep for
"Backport:" for existing examples. Ideally the backport bugfix and new code
should be separate patches. In this case I think they conveniently split on
file boundaries, so it's ok.