aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRichard Kenner <kenner@gcc.gnu.org>1993-10-01 10:45:16 -0400
committerRichard Kenner <kenner@gcc.gnu.org>1993-10-01 10:45:16 -0400
commit964119deb75540897c552b09c00d9a02e3f54f6b (patch)
treeca6738b79fbcec9205b0eedadbd9c60f98232715
parent0e5bad531b3ab78b6a4fd88e80db6232fe460107 (diff)
downloadgcc-964119deb75540897c552b09c00d9a02e3f54f6b.zip
gcc-964119deb75540897c552b09c00d9a02e3f54f6b.tar.gz
gcc-964119deb75540897c552b09c00d9a02e3f54f6b.tar.bz2
(gpc_reg_operand): Include kernel registers.
(call_operand, case SYMBOL_REF): Handle TARGET_LARGE_MEMORY and SYMBOL_REF_FLAG. From-SVN: r5541
-rw-r--r--gcc/config/a29k/a29k.c9
1 files changed, 6 insertions, 3 deletions
diff --git a/gcc/config/a29k/a29k.c b/gcc/config/a29k/a29k.c
index bf43a13..7d6e9c0 100644
--- a/gcc/config/a29k/a29k.c
+++ b/gcc/config/a29k/a29k.c
@@ -1,5 +1,5 @@
/* Subroutines used for code generation on AMD Am29000.
- Copyright (C) 1987, 1988, 1990, 1991, 1992 Free Software Foundation, Inc.
+ Copyright (C) 1987, 88, 90, 91, 92, 1993 Free Software Foundation, Inc.
Contributed by Richard Kenner (kenner@nyu.edu)
This file is part of GNU CC.
@@ -259,7 +259,8 @@ gpc_reg_operand (op, mode)
else
return 0;
- return regno >= FIRST_PSEUDO_REGISTER || regno < R_BP;
+ return (regno >= FIRST_PSEUDO_REGISTER || regno < R_BP
+ || (regno >= R_KR (0) && regno <= R_KR (31)));
}
/* Returns 1 if OP is either an 8-bit constant integer or a general register.
@@ -332,7 +333,9 @@ call_operand (op, mode)
{
case SYMBOL_REF:
return (TARGET_SMALL_MEMORY
- || ! strcmp (XSTR (op, 0), current_function_name));
+ || (! TARGET_LARGE_MEMORY
+ && ((GET_CODE (op) == SYMBOL_REF && SYMBOL_REF_FLAG (op))
+ || ! strcmp (XSTR (op, 0), current_function_name))));
case CONST_INT:
return (unsigned HOST_WIDE_INT) INTVAL (op) < 0x40000;