diff options
author | Richard Sandiford <rsandifo@nildram.co.uk> | 2007-12-19 09:54:45 +0000 |
---|---|---|
committer | Richard Sandiford <rsandifo@gcc.gnu.org> | 2007-12-19 09:54:45 +0000 |
commit | 5141868dc037e51930341c5508036d5325c07739 (patch) | |
tree | 17ce9f5e0742715972a8b242c6ca3b4906f47ad4 /gcc/emit-rtl.c | |
parent | 38ae7651154a39bdeb2638762fa70c042e3d24b6 (diff) | |
download | gcc-5141868dc037e51930341c5508036d5325c07739.tar.gz |
tree.h (set_decl_incoming_rtl): Add a by_reference_p parameter.
gcc/
* tree.h (set_decl_incoming_rtl): Add a by_reference_p parameter.
* emit-rtl.c (set_decl_incoming_rtl): Likewise. Don't set the
rtl's register attributes when the parameter is true.
* function.c (assign_parms_unsplit_complex, assign_parms)
(expand_function_start): Update calls to set_decl_incoming_rtl.
From-SVN: r131056
Diffstat (limited to 'gcc/emit-rtl.c')
-rw-r--r-- | gcc/emit-rtl.c | 7 |
1 files changed, 4 insertions, 3 deletions
diff --git a/gcc/emit-rtl.c b/gcc/emit-rtl.c index ae8970ce25c..5a2aede40dd 100644 --- a/gcc/emit-rtl.c +++ b/gcc/emit-rtl.c @@ -1045,13 +1045,14 @@ set_decl_rtl (tree t, rtx x) set_reg_attrs_for_decl_rtl (t, x); } -/* Assign the RTX X to parameter declaration T. */ +/* Assign the RTX X to parameter declaration T. BY_REFERENCE_P is true + if the ABI requires the parameter to be passed by reference. */ void -set_decl_incoming_rtl (tree t, rtx x) +set_decl_incoming_rtl (tree t, rtx x, bool by_reference_p) { DECL_INCOMING_RTL (t) = x; - if (x) + if (x && !by_reference_p) set_reg_attrs_for_decl_rtl (t, x); } |