diff options
author | Michael Matz <matz@suse.de> | 2007-10-05 15:36:16 +0000 |
---|---|---|
committer | Michael Matz <matz@gcc.gnu.org> | 2007-10-05 15:36:16 +0000 |
commit | 1596d61e6efe75dd6fdf2b23d6028f1431143ccb (patch) | |
tree | 4d399a9e5d91e9feddce47292268b08a2c55eaea /gcc/function.c | |
parent | ca39e6f200109cd52ad6102a6b272cc95f6f9aea (diff) | |
download | gcc-1596d61e6efe75dd6fdf2b23d6028f1431143ccb.zip gcc-1596d61e6efe75dd6fdf2b23d6028f1431143ccb.tar.gz gcc-1596d61e6efe75dd6fdf2b23d6028f1431143ccb.tar.bz2 |
re PR inline-asm/33600 (Breakage caused by the fix to PR33552)
gcc/
PR inline-asm/33600
* function.c (match_asm_constraints_1): Check for input
being used in the outputs.
testsuite/
* gcc.target/i386/pr33600.c: New testcase.
From-SVN: r129035
Diffstat (limited to 'gcc/function.c')
-rw-r--r-- | gcc/function.c | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/gcc/function.c b/gcc/function.c index c373684..d05d1b2 100644 --- a/gcc/function.c +++ b/gcc/function.c @@ -5716,7 +5716,7 @@ match_asm_constraints_1 (rtx insn, rtx *p_sets, int noutputs) which wouldn't have happen without this pass. So, iterate over all operands and replace all occurences of the register used. */ for (j = 0; j < noutputs; j++) - if (!rtx_equal_p (SET_DEST (p_sets[j]), output) + if (!rtx_equal_p (SET_DEST (p_sets[j]), input) && reg_overlap_mentioned_p (input, SET_DEST (p_sets[j]))) SET_DEST (p_sets[j]) = replace_rtx (SET_DEST (p_sets[j]), input, output); |