aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRichard Kenner <kenner@gcc.gnu.org>1993-01-19 18:51:32 -0500
committerRichard Kenner <kenner@gcc.gnu.org>1993-01-19 18:51:32 -0500
commitcad12a8dfc1b56ede08ef7cd12215c5b3b897adb (patch)
treefd717d070500dbd517ed9aa6accb0dcfcaccb963
parent0075180522d04f95a970a78f26b52a5cef36c24b (diff)
downloadgcc-cad12a8dfc1b56ede08ef7cd12215c5b3b897adb.zip
gcc-cad12a8dfc1b56ede08ef7cd12215c5b3b897adb.tar.gz
gcc-cad12a8dfc1b56ede08ef7cd12215c5b3b897adb.tar.bz2
(print_operand, case 'k'): New case.
From-SVN: r3286
-rw-r--r--gcc/config/rs6000/rs6000.c13
1 files changed, 11 insertions, 2 deletions
diff --git a/gcc/config/rs6000/rs6000.c b/gcc/config/rs6000/rs6000.c
index b9a2332..0bdae6f 100644
--- a/gcc/config/rs6000/rs6000.c
+++ b/gcc/config/rs6000/rs6000.c
@@ -709,6 +709,15 @@ print_operand (file, x, code)
switch (code)
{
+ case 'k':
+ /* X must be a constant. Write the 1's complement of the
+ constant. */
+ if (! INT_P (x))
+ output_operand_lossage ("invalid %%k value");
+
+ fprintf (file, "%d", ~ INT_LOWPART (x));
+ return;
+
case 'h':
/* If constant, output low-order five bits. Otherwise,
write normally. */
@@ -898,7 +907,7 @@ print_operand (file, x, code)
return;
case 'U':
- /* Print `u' is this has an auto-increment or auto-decrement. */
+ /* Print `u' if this has an auto-increment or auto-decrement. */
if (GET_CODE (x) == MEM
&& (GET_CODE (XEXP (x, 0)) == PRE_INC
|| GET_CODE (XEXP (x, 0)) == PRE_DEC))
@@ -906,7 +915,7 @@ print_operand (file, x, code)
return;
case 'I':
- /* Print `i' is this is a constant, else nothing. */
+ /* Print `i' if this is a constant, else nothing. */
if (INT_P (x))
fprintf (file, "i");
return;