Patchwork [i386] : Fix PR 53474, Solaris/x86 bootstrap with Sun as broken: j.e

login
register
mail settings
Submitter Uros Bizjak
Date May 25, 2012, 3:12 p.m.
Message ID <CAFULd4a3t0WZK+=+eMzwzd+effppi6iQvY1F77KxEmuUewG0Kg@mail.gmail.com>
Download mbox | patch
Permalink /patch/161380/
State New
Headers show

Comments

Uros Bizjak - May 25, 2012, 3:12 p.m.
Hello!

2012-05-25  Uros Bizjak  <ubizjak@gmail.com>

	PR target/53474
	* config/i386/i386.c (ix86_print_operand) <case 'O'>: Print '.' here.
	<case 'C', case 'c', case 'F', case 'f'>: Print '.' only for C and c.

Tested on i386-pc-solaris2.10 by Rainer, and on x86_64-pc-linux-gnu
{,-m32}. Committed to mainline SVN.

Uros.

Patch

Index: config/i386/i386.c
===================================================================
--- config/i386/i386.c	(revision 187882)
+++ config/i386/i386.c	(working copy)
@@ -13931,8 +13931,8 @@ 
    C -- print opcode suffix for set/cmov insn.
    c -- like C, but print reversed condition
    F,f -- likewise, but for floating-point.
-   O -- if HAVE_AS_IX86_CMOV_SUN_SYNTAX, print the opcode suffix for
-	the size of the current operand, otherwise nothing.
+   O -- if HAVE_AS_IX86_CMOV_SUN_SYNTAX, expand to "w.", "l." or "q.",
+	otherwise nothing
    R -- print the prefix for register names.
    z -- print the opcode suffix for the size of the current operand.
    Z -- likewise, with special suffixes for x87 instructions.
@@ -14061,6 +14061,8 @@ 
 		("invalid operand size for operand code 'O'");
 	      return;
 	    }
+
+	  putc ('.', file);
 #endif
 	  return;
 
@@ -14320,20 +14322,21 @@ 
 	    }
 	  return;
 
+	case 'F':
+	case 'f':
+#ifdef HAVE_AS_IX86_CMOV_SUN_SYNTAX
+	  if (ASSEMBLER_DIALECT == ASM_ATT)
+	    putc ('.', file);
+#endif
+
 	case 'C':
 	case 'c':
-	case 'F':
-	case 'f':
 	  if (!COMPARISON_P (x))
 	    {
 	      output_operand_lossage ("operand is not a condition code, "
 				      "invalid operand code '%c'", code);
 	      return;
 	    }
-#ifdef HAVE_AS_IX86_CMOV_SUN_SYNTAX
-	  if (ASSEMBLER_DIALECT == ASM_ATT)
-	    putc ('.', file);
-#endif
 	  put_condition_code (GET_CODE (x), GET_MODE (XEXP (x, 0)),
 			      code == 'c' || code == 'f',
 			      code == 'F' || code == 'f',