From: Richard Kenner Date: Sat, 19 Sep 1992 19:41:16 +0000 (-0400) Subject: (print_operand, case 'h', 'H', 'w'): Minor cleanups. X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=df3d94ed38439480dca837415ccd2181d982a23c;p=gcc.git (print_operand, case 'h', 'H', 'w'): Minor cleanups. From-SVN: r2168 --- diff --git a/gcc/config/rs6000/rs6000.c b/gcc/config/rs6000/rs6000.c index e1e53011824..0864b9e0dd4 100644 --- a/gcc/config/rs6000/rs6000.c +++ b/gcc/config/rs6000/rs6000.c @@ -710,7 +710,8 @@ print_operand (file, x, code) switch (code) { case 'h': - /* If constant, output low-order six bits. Otherwise, write normally. */ + /* If constant, output low-order five bits. Otherwise, + write normally. */ if (INT_P (x)) fprintf (file, "%d", INT_LOWPART (x) & 31); else @@ -718,7 +719,7 @@ print_operand (file, x, code) return; case 'H': - /* X must be a constant. Output the low order 6 bits plus 24. */ + /* X must be a constant. Output the low order 5 bits plus 24. */ if (! INT_P (x)) output_operand_lossage ("invalid %%H value"); @@ -737,7 +738,8 @@ print_operand (file, x, code) /* If constant, low-order 16 bits of constant, signed. Otherwise, write normally. */ if (INT_P (x)) - fprintf (file, "%d", (INT_LOWPART (x) << 16) >> 16); + fprintf (file, "%d", + (INT_LOWPART (x) & 0xffff) - 2 * (INT_LOWPART (x) & 0x8000)); else print_operand (file, x, 0); return;