This is the mail archive of the binutils@sourceware.org mailing list for the binutils project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

[PATCH] allow multiple arguments to .cfi_undefined and.cfi_restore


While having found a first use for .cfi_undefined, I realized that it
would be handy (and seemed reasonable) if this as well as .cfi_restore
supported specifying more than one register at a time.

Built and tested on i686-pc-linux-gnu.

Jan

gas/
2005-11-10  Jan Beulich  <jbeulich@novell.com>

	* dw2gencfi.c (dot_cfi): Put argument parsing for cases
	DW_CFA_restore and DW_CFA_undefined in a loop.

---
/home/jbeulich/src/binutils/mainline/2005-11-09/gas/dw2gencfi.c	2005-10-11
14:31:18.000000000 +0200
+++ 2005-11-09/gas/dw2gencfi.c	2005-11-10 13:27:51.643706656 +0100
@@ -502,13 +502,27 @@ dot_cfi (int arg)
       break;
 
     case DW_CFA_restore:
-      reg1 = cfi_parse_reg ();
-      cfi_add_CFA_restore (reg1);
+      for (;;)
+	{
+	  reg1 = cfi_parse_reg ();
+	  cfi_add_CFA_restore (reg1);
+	  SKIP_WHITESPACE ();
+	  if (*input_line_pointer != ',')
+	    break;
+	  ++input_line_pointer;
+	}
       break;
 
     case DW_CFA_undefined:
-      reg1 = cfi_parse_reg ();
-      cfi_add_CFA_undefined (reg1);
+      for (;;)
+	{
+	  reg1 = cfi_parse_reg ();
+	  cfi_add_CFA_undefined (reg1);
+	  SKIP_WHITESPACE ();
+	  if (*input_line_pointer != ',')
+	    break;
+	  ++input_line_pointer;
+	}
       break;
 
     case DW_CFA_same_value:

Attachment: binutils-mainline-cfi-multi-arg.patch
Description: Text document


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]