(gpc_reg_operand): Include kernel registers.
authorRichard Kenner <kenner@gcc.gnu.org>
Fri, 1 Oct 1993 14:45:16 +0000 (10:45 -0400)
committerRichard Kenner <kenner@gcc.gnu.org>
Fri, 1 Oct 1993 14:45:16 +0000 (10:45 -0400)
(call_operand, case SYMBOL_REF): Handle TARGET_LARGE_MEMORY and
SYMBOL_REF_FLAG.

From-SVN: r5541

gcc/config/a29k/a29k.c

index bf43a13dede5a0247c7b8e1c124e48e546690c1d..7d6e9c0dd9178ca2602ff1b4cf0ba029dd9a3607 100644 (file)
@@ -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;