diff options
-rw-r--r-- | gcc/ChangeLog | 5 | ||||
-rw-r--r-- | gcc/optabs.c | 3 |
2 files changed, 7 insertions, 1 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog index e348a88b197..accca6f25ac 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,8 @@ +2000-04-26 David S. Miller <davem@redhat.com> + + * optabs.c (emit_libcall_block): Verify insns with INSN_P before + taking a PATTERN of it. + 2000-04-26 <NeilB@earthling.net> * cpplex.c (spell_other, spell_char): Remove. diff --git a/gcc/optabs.c b/gcc/optabs.c index 304eb7400d2..2004f6afd0f 100644 --- a/gcc/optabs.c +++ b/gcc/optabs.c @@ -2789,7 +2789,8 @@ emit_libcall_block (insns, target, result, equiv) if (set != 0 && GET_CODE (SET_DEST (set)) == REG && REGNO (SET_DEST (set)) >= FIRST_PSEUDO_REGISTER && (insn == insns - || (! reg_mentioned_p (SET_DEST (set), PATTERN (insns)) + || ((! INSN_P(insns) + || ! reg_mentioned_p (SET_DEST (set), PATTERN (insns))) && ! reg_used_between_p (SET_DEST (set), insns, insn) && ! modified_in_p (SET_SRC (set), insns) && ! modified_between_p (SET_SRC (set), insns, insn)))) |