The new ia64 assembler is incompatible with glibc

Jan Beulich JBeulich@novell.com
Mon Feb 14 11:37:00 GMT 2005


>The problem is caused by
>
>http://sourceware.org/ml/binutils/2005-02/msg00122.html 
>
>Gas no longer handles
>
>fclass.m p6, p7 = farg0, @inf|@pos
>
>correctly. Jan, could you please fix it?

Built and tested as cross assembler on i686-linux.

Jan

gas/
2005-02-14  Jan Beulich  <jbeulich@novell.com>

	* config/tc-ia64.c (ia64_parse_name): Only update next character
if
	input_line_pointer was advanced.

gas/testsuite/
2005-02-14  Jan Beulich  <jbeulich@novell.com>

	* gas/ia64/operand-or.d: Pass -xnone to assembler.

---
/home/jbeulich/src/binutils/mainline/2005-02-14/gas/config/tc-ia64.c	2005-02-14
08:56:13.000000000 +0100
+++ 2005-02-14/gas/config/tc-ia64.c	2005-02-14 09:59:51.194082640
+0100
@@ -7619,7 +7619,7 @@ ia64_parse_name (name, e, nextcharP)
 	  if (*nextcharP != '(')
 	    {
 	      as_bad ("Expected '('");
-	      goto done;
+	      break;
 	    }
 	  /* Skip '('.  */
 	  ++input_line_pointer;
@@ -7662,6 +7662,8 @@ ia64_parse_name (name, e, nextcharP)
 	     in relocs.  */
 	  e->X_op = O_pseudo_fixup;
 	  e->X_op_symbol = pseudo_func[idx].u.sym;
+	done:
+	  *nextcharP = *input_line_pointer;
 	  break;
 
 	case PSEUDO_FUNC_CONST:
@@ -7677,8 +7679,6 @@ ia64_parse_name (name, e, nextcharP)
 	default:
 	  return 0;
 	}
-    done:
-      *nextcharP = *input_line_pointer;
       return 1;
     }
 
---
/home/jbeulich/src/binutils/mainline/2005-02-14/gas/testsuite/gas/ia64/operand-or.d	2005-02-13
20:25:26.000000000 +0100
+++ 2005-02-14/gas/testsuite/gas/ia64/operand-or.d	2005-02-14
10:11:32.534462696 +0100
@@ -1,3 +1,4 @@
+# as: -xnone
 # objdump: -d --disassemble-zeroes
 # name: ia64 operand-or
 

-------------- next part --------------
An embedded and charset-unspecified text was scrubbed...
Name: binutils-mainline-ia64-operand-or.patch
URL: <https://sourceware.org/pipermail/binutils/attachments/20050214/44be9463/attachment.ksh>


More information about the Binutils mailing list