summaryrefslogtreecommitdiff
path: root/gcc/config
diff options
context:
space:
mode:
authorgeoffk <geoffk@138bc75d-0d04-0410-961f-82ee72b054a4>2000-04-01 01:37:44 +0000
committergeoffk <geoffk@138bc75d-0d04-0410-961f-82ee72b054a4>2000-04-01 01:37:44 +0000
commit4056df148de02a0d6f6d0053819dfe07e83623b1 (patch)
treefa9da7f2814525757605e3d99e147973b6232129 /gcc/config
parentf626df99fc2d46384ed63ec0655b3eddb32a7266 (diff)
downloadgcc-4056df148de02a0d6f6d0053819dfe07e83623b1.tar.gz
* 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
Diffstat (limited to 'gcc/config')
-rw-r--r--gcc/config/rs6000/rs6000.c12
-rw-r--r--gcc/config/rs6000/rs6000.md2
2 files changed, 12 insertions, 2 deletions
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