From 0c2e838b251178be0a1eb709fc9e3d86d52f6577 Mon Sep 17 00:00:00 2001 From: Richard Kenner Date: Fri, 17 Jul 1992 05:58:38 -0400 Subject: [PATCH] (instantiate_decls{,_1}): Don't do instantiation here if the address is mode-dependent. From-SVN: r1615 --- gcc/function.c | 12 +++++++++--- 1 file changed, 9 insertions(+), 3 deletions(-) diff --git a/gcc/function.c b/gcc/function.c index 37a0f47a0c8..87db0bb15cb 100644 --- a/gcc/function.c +++ b/gcc/function.c @@ -1902,12 +1902,16 @@ instantiate_decls (fndecl, valid_only) /* Process all parameters of the function. */ for (decl = DECL_ARGUMENTS (fndecl); decl; decl = TREE_CHAIN (decl)) { - if (DECL_RTL (decl) && GET_CODE (DECL_RTL (decl)) == MEM) + if (DECL_RTL (decl) && GET_CODE (DECL_RTL (decl)) == MEM + && (! valid_only + || ! mode_dependent_address_p (XEXP (DECL_RTL (decl), 0)))) instantiate_virtual_regs_1 (&XEXP (DECL_RTL (decl), 0), (valid_only ? DECL_RTL (decl) : NULL_RTX), 0); if (DECL_INCOMING_RTL (decl) - && GET_CODE (DECL_INCOMING_RTL (decl)) == MEM) + && GET_CODE (DECL_INCOMING_RTL (decl)) == MEM + && (! valid_only + || ! mode_dependent_address_p (XEXP (DECL_INCOMING_RTL (decl), 0)))) instantiate_virtual_regs_1 (&XEXP (DECL_INCOMING_RTL (decl), 0), (valid_only ? DECL_INCOMING_RTL (decl) : NULL_RTX), @@ -1938,7 +1942,9 @@ instantiate_decls_1 (let, valid_only) tree t; for (t = BLOCK_VARS (let); t; t = TREE_CHAIN (t)) - if (DECL_RTL (t) && GET_CODE (DECL_RTL (t)) == MEM) + if (DECL_RTL (t) && GET_CODE (DECL_RTL (t)) == MEM + && (! valid_only + || ! mode_dependent_address_p (XEXP (DECL_RTL (t), 0)))) instantiate_virtual_regs_1 (& XEXP (DECL_RTL (t), 0), valid_only ? DECL_RTL (t) : NULL_RTX, 0); -- 2.30.2