Hello! 2012-05-25 Uros Bizjak <ubiz...@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.
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',