Fix problem noticed by Dale Johannesen on the gcc list.

* recog.c (asm_operand_ok): Add missing break after case 'X'.
	Change if statements to else if statements in default case.
	(extract_constrain_insn_cached): Fix misspelling of constrain_operands
	in comment.
	(constrain_operands_cached): Likewise.
	(constrain_operands): Change if statements to else if statements in
	default case.
	* reload.c (find_reloads): Likewise.

From-SVN: r73074
This commit is contained in:
James E Wilson 2003-10-30 01:40:48 +00:00 committed by Jim Wilson
parent a126dc3a79
commit 3b6c3bb05d
3 changed files with 45 additions and 43 deletions

View File

@ -1,3 +1,14 @@
2003-10-29 James E Wilson <wilson@specifixinc.com>
* recog.c (asm_operand_ok): Add missing break after case 'X'.
Change if statements to else if statements in default case.
(extract_constrain_insn_cached): Fix misspelling of constrain_operands
in comment.
(constrain_operands_cached): Likewise.
(constrain_operands): Change if statements to else if statements in
default case.
* reload.c (find_reloads): Likewise.
2003-10-29 Richard Henderson <rth@redhat.com>
* config/m68k/m68k.c (notice_update_cc): Clear cc status for

View File

@ -1746,6 +1746,7 @@ asm_operand_ok (rtx op, const char *constraint)
case 'X':
result = 1;
break;
case 'g':
if (general_operand (op, VOIDmode))
@ -1764,20 +1765,16 @@ asm_operand_ok (rtx op, const char *constraint)
result = 1;
}
#ifdef EXTRA_CONSTRAINT_STR
if (EXTRA_CONSTRAINT_STR (op, c, constraint))
else if (EXTRA_CONSTRAINT_STR (op, c, constraint))
result = 1;
else if (EXTRA_MEMORY_CONSTRAINT (c, constraint)
/* Every memory operand can be reloaded to fit. */
&& memory_operand (op, VOIDmode))
result = 1;
else if (EXTRA_ADDRESS_CONSTRAINT (c, constraint)
/* Every address operand can be reloaded to fit. */
&& address_operand (op, VOIDmode))
result = 1;
if (EXTRA_MEMORY_CONSTRAINT (c, constraint))
{
/* Every memory operand can be reloaded to fit. */
if (memory_operand (op, VOIDmode))
result = 1;
}
if (EXTRA_ADDRESS_CONSTRAINT (c, constraint))
{
/* Every address operand can be reloaded to fit. */
if (address_operand (op, VOIDmode))
result = 1;
}
#endif
break;
}
@ -1970,7 +1967,7 @@ extract_insn_cached (rtx insn)
extract_insn (insn);
recog_data.insn = insn;
}
/* Do cached extract_insn, constrain_operand and complain about failures.
/* Do cached extract_insn, constrain_operands and complain about failures.
Used by insn_attrtab. */
void
extract_constrain_insn_cached (rtx insn)
@ -1980,7 +1977,7 @@ extract_constrain_insn_cached (rtx insn)
&& !constrain_operands (reload_completed))
fatal_insn_not_found (insn);
}
/* Do cached constrain_operand and complain about failures. */
/* Do cached constrain_operands and complain about failures. */
int
constrain_operands_cached (int strict)
{
@ -2535,27 +2532,20 @@ constrain_operands (int strict)
else if (EXTRA_CONSTRAINT_STR (op, c, p))
win = 1;
if (EXTRA_MEMORY_CONSTRAINT (c, p))
{
/* Every memory operand can be reloaded to fit. */
if (strict < 0 && GET_CODE (op) == MEM)
win = 1;
/* Before reload, accept what reload can turn into mem. */
if (strict < 0 && CONSTANT_P (op))
win = 1;
/* During reload, accept a pseudo */
if (reload_in_progress && GET_CODE (op) == REG
&& REGNO (op) >= FIRST_PSEUDO_REGISTER)
win = 1;
}
if (EXTRA_ADDRESS_CONSTRAINT (c, p))
{
/* Every address operand can be reloaded to fit. */
if (strict < 0)
win = 1;
}
else if (EXTRA_MEMORY_CONSTRAINT (c, p)
/* Every memory operand can be reloaded to fit. */
&& ((strict < 0 && GET_CODE (op) == MEM)
/* Before reload, accept what reload can turn
into mem. */
|| (strict < 0 && CONSTANT_P (op))
/* During reload, accept a pseudo */
|| (reload_in_progress && GET_CODE (op) == REG
&& REGNO (op) >= FIRST_PSEUDO_REGISTER)))
win = 1;
else if (EXTRA_ADDRESS_CONSTRAINT (c, p)
/* Every address operand can be reloaded to fit. */
&& strict < 0)
win = 1;
#endif
break;
}

View File

@ -3264,17 +3264,18 @@ find_reloads (rtx insn, int replace, int ind_levels, int live_known,
win = 1;
/* If the address was already reloaded,
we win as well. */
if (GET_CODE (operand) == MEM && address_reloaded[i])
else if (GET_CODE (operand) == MEM
&& address_reloaded[i])
win = 1;
/* Likewise if the address will be reloaded because
reg_equiv_address is nonzero. For reg_equiv_mem
we have to check. */
if (GET_CODE (operand) == REG
&& REGNO (operand) >= FIRST_PSEUDO_REGISTER
&& reg_renumber[REGNO (operand)] < 0
&& ((reg_equiv_mem[REGNO (operand)] != 0
&& EXTRA_CONSTRAINT_STR (reg_equiv_mem[REGNO (operand)], c, p))
|| (reg_equiv_address[REGNO (operand)] != 0)))
else if (GET_CODE (operand) == REG
&& REGNO (operand) >= FIRST_PSEUDO_REGISTER
&& reg_renumber[REGNO (operand)] < 0
&& ((reg_equiv_mem[REGNO (operand)] != 0
&& EXTRA_CONSTRAINT_STR (reg_equiv_mem[REGNO (operand)], c, p))
|| (reg_equiv_address[REGNO (operand)] != 0)))
win = 1;
/* If we didn't already win, we can reload