arm.c: Verify modes on operands in predicates

From-SVN: r30088
This commit is contained in:
Bernd Schmidt 1999-10-19 16:47:23 +00:00 committed by Bernd Schmidt
parent 3a2ea2588f
commit 9ce71c6fbd
2 changed files with 25 additions and 4 deletions

View file

@ -1,3 +1,10 @@
Tue Oct 19 18:42:58 1999 Bernd Schmidt <bernds@cygnus.co.uk>
* arm.c (fpu_rhs_operand): Verify modes.
(fpu_add_operand): Likewise.
(di_operand): Likewise.
(soft_df_operand): Likewise.
Tue Oct 19 15:26:11 1999 Richard Earnshaw (rearnsha@arm.com)
* arm.c (arm_return_in_memory): APCS rules state that the elements

View file

@ -2213,8 +2213,12 @@ fpu_rhs_operand (op, mode)
{
if (s_register_operand (op, mode))
return TRUE;
else if (GET_CODE (op) == CONST_DOUBLE)
return (const_double_rtx_ok_for_fpu (op));
if (GET_MODE (op) != mode && mode != VOIDmode)
return FALSE;
if (GET_CODE (op) == CONST_DOUBLE)
return const_double_rtx_ok_for_fpu (op);
return FALSE;
}
@ -2226,7 +2230,11 @@ fpu_add_operand (op, mode)
{
if (s_register_operand (op, mode))
return TRUE;
else if (GET_CODE (op) == CONST_DOUBLE)
if (GET_MODE (op) != mode && mode != VOIDmode)
return FALSE;
if (GET_CODE (op) == CONST_DOUBLE)
return (const_double_rtx_ok_for_fpu (op)
|| neg_const_double_rtx_ok_for_fpu (op));
@ -2261,6 +2269,9 @@ di_operand (op, mode)
if (s_register_operand (op, mode))
return TRUE;
if (mode != VOIDmode && GET_MODE (op) != VOIDmode && GET_MODE (op) != DImode)
return FALSE;
if (GET_CODE (op) == SUBREG)
op = SUBREG_REG (op);
@ -2291,9 +2302,12 @@ soft_df_operand (op, mode)
if (s_register_operand (op, mode))
return TRUE;
if (mode != VOIDmode && GET_MODE (op) != mode)
return FALSE;
if (GET_CODE (op) == SUBREG)
op = SUBREG_REG (op);
switch (GET_CODE (op))
{
case CONST_DOUBLE: