aboutsummaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
authorGeoff Keating <geoffk@cygnus.com>2000-04-01 01:37:44 +0000
committerGeoffrey Keating <geoffk@gcc.gnu.org>2000-04-01 01:37:44 +0000
commit81eace42692969b248028fffcccb67818c251279 (patch)
treefa9da7f2814525757605e3d99e147973b6232129 /gcc
parent7a678b64cd97a002b87232a9fdd909d4637bdae1 (diff)
downloadgcc-81eace42692969b248028fffcccb67818c251279.zip
gcc-81eace42692969b248028fffcccb67818c251279.tar.gz
gcc-81eace42692969b248028fffcccb67818c251279.tar.bz2
rs6000.c (print_operand): Don't use %l for 'low part', it's already in use.
* config/rs6000/rs6000.c (print_operand): Don't use %l for 'low part', it's already in use. Use %K instead. Add a return at the end of what is now %K. * config/rs6000/rs6000.md (elf_low): Use %K instead of %l. From-SVN: r32853
Diffstat (limited to 'gcc')
-rw-r--r--gcc/ChangeLog7
-rw-r--r--gcc/config/rs6000/rs6000.c12
-rw-r--r--gcc/config/rs6000/rs6000.md2
3 files changed, 19 insertions, 2 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index 9d55846..c90dc60 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,3 +1,10 @@
+2000-03-31 Geoff Keating <geoffk@cygnus.com>
+
+ * config/rs6000/rs6000.c (print_operand): Don't use %l for 'low
+ part', it's already in use. Use %K instead. Add a return at the
+ end of what is now %K.
+ * config/rs6000/rs6000.md (elf_low): Use %K instead of %l.
+
Sat Apr 1 02:05:29 MET DST 2000 Jan Hubicka <jh@suse.cz>
* builtins.c (expand_builtin_apply): Pass proper parameters to
diff --git a/gcc/config/rs6000/rs6000.c b/gcc/config/rs6000/rs6000.c
index 04539ee..83eb642 100644
--- a/gcc/config/rs6000/rs6000.c
+++ b/gcc/config/rs6000/rs6000.c
@@ -3325,6 +3325,8 @@ print_operand (file, x, code)
putc ((DEFAULT_ABI == ABI_SOLARIS) ? '.' : '$', file);
return;
+ /* %a is output_address. */
+
case 'A':
/* If X is a constant integer whose low-order 5 bits are zero,
write 'l'. Otherwise, write 'r'. This is a kludge to fix a bug
@@ -3350,6 +3352,9 @@ print_operand (file, x, code)
putc (((INT_LOWPART(x) & 1) == 0 ? 'r' : 'l'), file);
return;
+ /* %c is output_addr_const if a CONSTANT_ADDRESS_P, otherwise
+ output_operand. */
+
case 'C':
{
enum rtx_code code = GET_CODE (x);
@@ -3496,7 +3501,7 @@ print_operand (file, x, code)
fprintf (file, HOST_WIDE_INT_PRINT_DEC, ~ INT_LOWPART (x));
return;
- case 'l':
+ case 'K':
/* X must be a symbolic constant on ELF. Write an
expression suitable for an 'addi' that adds in the low 16
bits of the MEM. */
@@ -3516,6 +3521,9 @@ print_operand (file, x, code)
fputs ("@l", file);
print_operand (file, XEXP (XEXP (x, 0), 1), 0);
}
+ return;
+
+ /* %l is output_asm_label. */
case 'L':
/* Write second word of DImode or DFmode reference. Works on register
@@ -3610,6 +3618,8 @@ print_operand (file, x, code)
fprintf (file, "%d", i);
return;
+ /* %n outputs the negative of its operand. */
+
case 'N':
/* Write the number of elements in the vector times 4. */
if (GET_CODE (x) != PARALLEL)
diff --git a/gcc/config/rs6000/rs6000.md b/gcc/config/rs6000/rs6000.md
index 8d9d8a7..4573330 100644
--- a/gcc/config/rs6000/rs6000.md
+++ b/gcc/config/rs6000/rs6000.md
@@ -7923,7 +7923,7 @@
"TARGET_ELF && ! TARGET_64BIT"
"@
{cal|la} %0,%2@l(%1)
- {ai|addic} %0,%1,%l2")
+ {ai|addic} %0,%1,%K2")
;; Set up a register with a value from the GOT table