summaryrefslogtreecommitdiff
path: root/gcc/emit-rtl.c
diff options
context:
space:
mode:
authorrsandifo <rsandifo@138bc75d-0d04-0410-961f-82ee72b054a4>2007-12-19 09:54:45 +0000
committerrsandifo <rsandifo@138bc75d-0d04-0410-961f-82ee72b054a4>2007-12-19 09:54:45 +0000
commitd91cf56723fac241e2fbc9235a3e8909e34604e5 (patch)
tree17ce9f5e0742715972a8b242c6ca3b4906f47ad4 /gcc/emit-rtl.c
parent80c70e7653f691a9805ceb3f974b182d2054b38f (diff)
downloadgcc-d91cf56723fac241e2fbc9235a3e8909e34604e5.tar.gz
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. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@131056 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'gcc/emit-rtl.c')
-rw-r--r--gcc/emit-rtl.c7
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);
}