From 4056df148de02a0d6f6d0053819dfe07e83623b1 Mon Sep 17 00:00:00 2001
From: geoffk <geoffk@138bc75d-0d04-0410-961f-82ee72b054a4>
Date: Sat, 1 Apr 2000 01:37:44 +0000
Subject: [PATCH] * 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.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@32853 138bc75d-0d04-0410-961f-82ee72b054a4
---
 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 9d55846489c4..c90dc60049f3 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 04539ee0c132..83eb642f2516 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 8d9d8a70f83e..4573330a8206 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
 
-- 
GitLab