mirror of
git://gcc.gnu.org/git/gcc.git
synced 2024-12-21 23:17:06 +08:00
reload1.c (eliminate_regs_in_insn): Allow a set to be a PARALLEL with (clobber (match_scratch...)).
* reload1.c (eliminate_regs_in_insn): Allow a set to be a PARALLEL with (clobber (match_scratch...)). From-SVN: r37281
This commit is contained in:
parent
f559f30b4b
commit
f34c06e547
@ -1,3 +1,8 @@
|
||||
Mon Nov 6 20:08:13 2000 J"orn Rennecke <amylaar@redhat.com>
|
||||
|
||||
* reload1.c (eliminate_regs_in_insn): Allow a set to be a PARALLEL
|
||||
with (clobber (match_scratch...)).
|
||||
|
||||
2000-11-06 Neil Booth <neilb@earthling.net>
|
||||
|
||||
* c-lex.c (init_c_lex): If cpp_start_read fails, exit with
|
||||
|
@ -2953,13 +2953,24 @@ eliminate_regs_in_insn (insn, replace)
|
||||
|
||||
if (offset == 0)
|
||||
{
|
||||
/* We assume here that we don't need a PARALLEL of
|
||||
any CLOBBERs for this assignment. There's not
|
||||
much we can do if we do need it. */
|
||||
int num_clobbers;
|
||||
/* We assume here that if we need a PARALLEL with
|
||||
CLOBBERs for this assignment, we can do with the
|
||||
MATCH_SCRATCHes that add_clobbers allocates.
|
||||
There's not much we can do if that doesn't work. */
|
||||
PATTERN (insn) = gen_rtx_SET (VOIDmode,
|
||||
SET_DEST (old_set),
|
||||
ep->to_rtx);
|
||||
INSN_CODE (insn) = recog (PATTERN (insn), insn, 0);
|
||||
num_clobbers = 0;
|
||||
INSN_CODE (insn) = recog (PATTERN (insn), insn, &num_clobbers);
|
||||
if (num_clobbers)
|
||||
{
|
||||
rtvec vec = rtvec_alloc (num_clobbers + 1);
|
||||
|
||||
vec->elem[0] = PATTERN (insn);
|
||||
PATTERN (insn) = gen_rtx_PARALLEL (VOIDmode, vec);
|
||||
add_clobbers (PATTERN (insn), INSN_CODE (insn));
|
||||
}
|
||||
if (INSN_CODE (insn) < 0)
|
||||
abort ();
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user