[PATCH] ia64: ensure unwind records' t coordinate gets set

Jan Beulich JBeulich@novell.com
Mon May 23 08:03:00 GMT 2005


This prevents premature removal of unwind records from the pending list,
ensuring they get their t coordinate set correctly.

Built and tested on ia64-unknown-linux-gnu.

Jan

gas/
2005-05-23  Jan Beulich  <jbeulich@novell.com>

	* config/tc-ia64.c (emit_one_bundle): Check all in-use slots for
	first with non-NULL unwind_record.

--- /home/jbeulich/src/binutils/mainline/2005-05-18/gas/config/tc-ia64.c	2005-05-09 08:31:38.000000000 +0200
+++ 2005-05-18/gas/config/tc-ia64.c	2005-05-20 17:11:14.812836238 +0200
@@ -6544,9 +6488,10 @@ emit_one_bundle ()
 	     issued.  This matters because there may have been nops emitted
 	     meanwhile.  Any non-prologue non-body record followed by a
 	     prologue/body record must also refer to the current point.  */
-	  last_ptr = NULL;
-	  end_ptr = md.slot[(curr + 1) % NUM_SLOTS].unwind_record;
-	  for (; ptr != end_ptr; ptr = ptr->next)
+	  end_ptr = NULL;
+	  for (j = 1; end_ptr == NULL && j < md.num_slots_in_use; ++j)
+	    end_ptr = md.slot[(curr + j) % NUM_SLOTS].unwind_record;
+	  for (last_ptr = NULL; ptr != end_ptr; ptr = ptr->next)
 	    if (ptr->r.type == prologue || ptr->r.type == prologue_gr
 		|| ptr->r.type == body)
 	      last_ptr = ptr;


-------------- next part --------------
An embedded and charset-unspecified text was scrubbed...
Name: binutils-mainline-ia64-unwind-assoc.patch
URL: <https://sourceware.org/pipermail/binutils/attachments/20050523/6dda6ae8/attachment.ksh>


More information about the Binutils mailing list