PATCH: Use ARRAY_SIZE in x86 assembler

H.J. Lu hjl@lucon.org
Mon Dec 17 19:41:00 GMT 2007


I am checking in this patch to use ARRAY_SIZE in x86 assembler.


H.J.
---
2007-12-17  H.J. Lu  <hongjiu.lu@intel.com>

	* config/tc-i386.c (output_insn): Use ARRAY_SIZE.
	(lex_got): Likewise.

--- gas/config/tc-i386.c.array	2007-12-17 11:28:22.000000000 -0800
+++ gas/config/tc-i386.c	2007-12-17 11:37:45.000000000 -0800
@@ -4962,6 +4962,7 @@ output_insn (void)
       /* Output normal instructions here.  */
       char *p;
       unsigned char *q;
+      unsigned int j;
       unsigned int prefix;
 
       switch (i.tm.opcode_length)
@@ -4995,13 +4996,9 @@ check_prefix:
 	}
 
       /* The prefix bytes.  */
-      for (q = i.prefix;
-	   q < i.prefix + sizeof (i.prefix) / sizeof (i.prefix[0]);
-	   q++)
-	{
-	  if (*q)
-	    FRAG_APPEND_1_CHAR (*q);
-	}
+      for (j = ARRAY_SIZE (i.prefix), q = i.prefix; j > 0; j--, q++)
+	if (*q)
+	  FRAG_APPEND_1_CHAR (*q);
 
       /* Now the opcode; be careful about word order here!  */
       if (i.tm.opcode_length == 1)
@@ -5451,7 +5448,7 @@ lex_got (enum bfd_reloc_code_real *reloc
     if (is_end_of_line[(unsigned char) *cp] || *cp == ',')
       return NULL;
 
-  for (j = 0; j < sizeof (gotrel) / sizeof (gotrel[0]); j++)
+  for (j = 0; j < ARRAY_SIZE (gotrel); j++)
     {
       int len;
 



More information about the Binutils mailing list