aboutsummaryrefslogtreecommitdiff
path: root/gcc/function.c
diff options
context:
space:
mode:
authorJ"orn Rennecke <amylaar@redhat.com>2001-01-04 23:28:00 +0000
committerJoern Rennecke <amylaar@gcc.gnu.org>2001-01-04 23:28:00 +0000
commite2a5f96bbfae7b9b30d76246c1cd58fe80dddd2c (patch)
tree3ff38e446f960e5596f4f68082e401c9737766e4 /gcc/function.c
parente9049f5741d04553d9a5de0ddc003c05048ee823 (diff)
downloadgcc-e2a5f96bbfae7b9b30d76246c1cd58fe80dddd2c.zip
gcc-e2a5f96bbfae7b9b30d76246c1cd58fe80dddd2c.tar.gz
gcc-e2a5f96bbfae7b9b30d76246c1cd58fe80dddd2c.tar.bz2
integrate.c (expand_inline_function): Don't put a virtual register into the reg map.
* integrate.c (expand_inline_function): Don't put a virtual register into the reg map. * function.c (fixup_var_refs_1): If force_operand didn't put the address into the target, move it there. From-SVN: r38694
Diffstat (limited to 'gcc/function.c')
-rw-r--r--gcc/function.c4
1 files changed, 3 insertions, 1 deletions
diff --git a/gcc/function.c b/gcc/function.c
index bbd7ecc..90ca36a 100644
--- a/gcc/function.c
+++ b/gcc/function.c
@@ -1916,7 +1916,9 @@ fixup_var_refs_1 (var, promoted_mode, loc, insn, replacements)
/* That failed. Fall back on force_operand and hope. */
start_sequence ();
- force_operand (sub, y);
+ sub = force_operand (sub, y);
+ if (sub != y)
+ emit_insn (gen_move_insn (y, sub));
seq = gen_sequence ();
end_sequence ();
}