rs6000: Put back the 's' output modifier

It turns out the 's' output modifier is used in some glibc math code,
and is in an installed header even.  So let's put it back, it is much
less of a burden supporting it a bit longer than to deal with the fallout.
(It is also being fixed for glibc.)


	* config/rs6000/rs6000.c (print_operand): Rollback 's' removal.

From-SVN: r232900
This commit is contained in:
Segher Boessenkool 2016-01-27 20:44:31 +01:00 committed by Segher Boessenkool
parent cbdd8ae08c
commit ac22318350
2 changed files with 12 additions and 0 deletions

View File

@ -1,3 +1,7 @@
2016-01-27 Segher Boessenkool <segher@kernel.crashing.org>
* config/rs6000/rs6000.c (print_operand): Rollback 's' removal.
2016-01-27 Jeff Law <law@redhat.com>
PR tree-optimization/68398

View File

@ -19949,6 +19949,14 @@ print_operand (FILE *file, rtx x, int code)
fprintf (file, "%d", 128 >> (REGNO (x) - CR0_REGNO));
return;
case 's':
/* Low 5 bits of 32 - value */
if (! INT_P (x))
output_operand_lossage ("invalid %%s value");
else
fprintf (file, HOST_WIDE_INT_PRINT_DEC, (32 - INTVAL (x)) & 31);
return;
case 't':
/* Like 'J' but get to the OVERFLOW/UNORDERED bit. */
gcc_assert (REG_P (x) && GET_MODE (x) == CCmode);