From 81eace42692969b248028fffcccb67818c251279 Mon Sep 17 00:00:00 2001 From: Geoff Keating Date: Sat, 1 Apr 2000 01:37:44 +0000 Subject: [PATCH] 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 --- gcc/ChangeLog | 7 +++++++ gcc/config/rs6000/rs6000.c | 12 +++++++++++- gcc/config/rs6000/rs6000.md | 2 +- 3 files changed, 19 insertions(+), 2 deletions(-) diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 9d55846489c..c90dc60049f 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,10 @@ +2000-03-31 Geoff Keating + + * 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 * builtins.c (expand_builtin_apply): Pass proper parameters to diff --git a/gcc/config/rs6000/rs6000.c b/gcc/config/rs6000/rs6000.c index 04539ee0c13..83eb642f251 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 8d9d8a70f83..4573330a820 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