diff options
author | Segher Boessenkool <segher@kernel.crashing.org> | 2016-01-27 20:44:31 +0100 |
---|---|---|
committer | Segher Boessenkool <segher@gcc.gnu.org> | 2016-01-27 20:44:31 +0100 |
commit | ac22318350b43bf7a4d72ed620365652cf222e9e (patch) | |
tree | 8547d02c08e40dc86a41ba381b260aa739b2bb95 /gcc | |
parent | cbdd8ae08c2cec98ed063a0ef2c237e80539e597 (diff) | |
download | gcc-ac22318350b43bf7a4d72ed620365652cf222e9e.zip gcc-ac22318350b43bf7a4d72ed620365652cf222e9e.tar.gz gcc-ac22318350b43bf7a4d72ed620365652cf222e9e.tar.bz2 |
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
Diffstat (limited to 'gcc')
-rw-r--r-- | gcc/ChangeLog | 4 | ||||
-rw-r--r-- | gcc/config/rs6000/rs6000.c | 8 |
2 files changed, 12 insertions, 0 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 76c7af2..fecbc49 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -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 diff --git a/gcc/config/rs6000/rs6000.c b/gcc/config/rs6000/rs6000.c index 7b9201a..e9e12f5 100644 --- a/gcc/config/rs6000/rs6000.c +++ b/gcc/config/rs6000/rs6000.c @@ -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); |