(RETURN_IN_MEMORY): Do nothing for structs and unions.

(EXTRA_CONSTRAINT): During reload, accept pseudo reg for Q.

From-SVN: r1199
This commit is contained in:
Richard Stallman 1992-06-13 20:40:10 +00:00
parent 48b7061600
commit db5e449c5e
1 changed files with 13 additions and 10 deletions

View File

@ -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