diff options
author | Richard Stallman <rms@gnu.org> | 1992-06-13 20:40:10 +0000 |
---|---|---|
committer | Richard Stallman <rms@gnu.org> | 1992-06-13 20:40:10 +0000 |
commit | db5e449c5e7cf20de09adb88e1d0eb22e9def100 (patch) | |
tree | 11a98a71acf8949a565bd449723ba9a6db928a18 | |
parent | 48b70616007696918b16f336d7d39275c5625903 (diff) | |
download | gcc-db5e449c5e7cf20de09adb88e1d0eb22e9def100.zip gcc-db5e449c5e7cf20de09adb88e1d0eb22e9def100.tar.gz gcc-db5e449c5e7cf20de09adb88e1d0eb22e9def100.tar.bz2 |
(RETURN_IN_MEMORY): Do nothing for structs and unions.
(EXTRA_CONSTRAINT): During reload, accept pseudo reg for Q.
From-SVN: r1199
-rw-r--r-- | gcc/config/sparc/sparc.h | 23 |
1 files changed, 13 insertions, 10 deletions
diff --git a/gcc/config/sparc/sparc.h b/gcc/config/sparc/sparc.h index 4e65e67..c9da4b7 100644 --- a/gcc/config/sparc/sparc.h +++ b/gcc/config/sparc/sparc.h @@ -1059,16 +1059,19 @@ extern union tree_node *current_function_decl; #define REG_OK_FOR_BASE_P(X) (((unsigned) REGNO (X)) - 32 >= 32 && REGNO (X) != 0) #define EXTRA_CONSTRAINT(OP, C) \ - ((C) == 'Q' ? \ - ((GET_CODE (OP) == MEM \ - && memory_address_p (GET_MODE (OP), XEXP (OP, 0)) \ - && ! symbolic_memory_operand (OP, VOIDmode))) \ - : ((C) == 'R' ? \ - (GET_CODE (OP) == LO_SUM \ - && GET_CODE (XEXP (OP, 0)) == REG \ - && REG_OK_FOR_BASE_P (XEXP (OP, 0))) \ - : ((C) == 'S' \ - ? CONSTANT_P (OP) || memory_address_p (Pmode, OP) : 0))) + ((C) == 'Q' \ + ? ((GET_CODE (OP) == MEM \ + && memory_address_p (GET_MODE (OP), XEXP (OP, 0)) \ + && ! symbolic_memory_operand (OP, VOIDmode)) \ + || (reload_in_progress && GET_CODE (OP) == REG \ + && REGNO (OP) >= FIRST_PSEUDO_REGISTER)) \ + : (C) == 'R' \ + ? (GET_CODE (OP) == LO_SUM \ + && GET_CODE (XEXP (OP, 0)) == REG \ + && REG_OK_FOR_BASE_P (XEXP (OP, 0))) \ + : (C) == 'S' \ + ? (CONSTANT_P (OP) || memory_address_p (Pmode, OP)) \ + : 0) #else |