File ia64-reorg.patch of Package gcc33
ia64/ia64.c (ia64_reorg): Ignore prologue_use insns too.
Index: gcc/config/ia64/ia64.c
===================================================================
--- gcc/config/ia64/ia64.c.orig 2009-11-20 13:05:21.000000000 +0100
+++ gcc/config/ia64/ia64.c 2009-11-20 13:06:08.000000000 +0100
@@ -7179,11 +7179,15 @@ ia64_reorg (insns)
insn = get_last_insn ();
if (! INSN_P (insn))
insn = prev_active_insn (insn);
- if (GET_CODE (insn) == INSN
- && GET_CODE (PATTERN (insn)) == UNSPEC_VOLATILE
- && XINT (PATTERN (insn), 1) == UNSPECV_INSN_GROUP_BARRIER)
- {
- saw_stop = 1;
+ while (GET_CODE (insn) == INSN
+ && ((GET_CODE (PATTERN (insn)) == UNSPEC_VOLATILE
+ && XINT (PATTERN (insn), 1) == UNSPECV_INSN_GROUP_BARRIER)
+ || (GET_CODE (PATTERN (insn)) == UNSPEC
+ && XINT (PATTERN (insn), 1) == UNSPEC_PROLOGUE_USE)))
+ {
+ if (GET_CODE (PATTERN (insn)) == UNSPEC_VOLATILE
+ && XINT (PATTERN (insn), 1) == UNSPECV_INSN_GROUP_BARRIER)
+ saw_stop = 1;
insn = prev_active_insn (insn);
}
if (GET_CODE (insn) == CALL_INSN)