LogoopenSUSE Build Service > Projects
Sign Up | Log In

View File ia64-reorg.patch of Package gcc33 (Project openSUSE:Factory)

	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)