+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
{
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;
}
{
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));
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);
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: