* tm.texi (DEFAULT_RTX_COSTS): Document new macro.
* arm.h (DEFAULT_RTX_COSTS): Define instead of RTX_COSTS.
* cse.c (rtx_cost): Provide a default case in an enumeration
switch, and call DEFAULT_RTX_COSTS if it's defined.
Co-Authored-By: Nick Clifton <nickc@cygnus.com>
Co-Authored-By: Richard Earnshaw <rearnsha@arm.com>
From-SVN: r18513
+Thu Mar 12 15:13:16 1998 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
+ Richard Earnshaw <rearnsha@arm.com>
+ Nick Clifton <nickc@cygnus.com>
+
+ * tm.texi (DEFAULT_RTX_COSTS): Document new macro.
+
+ * arm.h (DEFAULT_RTX_COSTS): Define instead of RTX_COSTS.
+
+ * cse.c (rtx_cost): Provide a default case in an enumeration
+ switch, and call DEFAULT_RTX_COSTS if it's defined.
+
Thu Mar 12 10:02:38 1998 Manfred Hollstein <manfred@s-direktnet.de>
* basic-block.h (compute_preds_succs): Change return type in
/* Definitions of target machine for GNU compiler, for Acorn RISC Machine.
- Copyright (C) 1991, 93, 94, 95, 96, 1997 Free Software Foundation, Inc.
+ Copyright (C) 1991, 93, 94, 95, 96, 97, 1998 Free Software Foundation, Inc.
Contributed by Pieter `Tiggr' Schoenmakers (rcpieter@win.tue.nl)
and Martin Simmons (@harleqn.co.uk).
More major hacks by Richard Earnshaw (rwe11@cl.cam.ac.uk)
((X) == frame_pointer_rtx || (X) == stack_pointer_rtx \
|| (X) == arg_pointer_rtx)
-#define RTX_COSTS(X,CODE,OUTER_CODE) \
- default: \
+#define DEFAULT_RTX_COSTS(X,CODE,OUTER_CODE) \
return arm_rtx_costs (X, CODE, OUTER_CODE);
/* Moves to and from memory are quite expensive */
RTX_COSTS (x, code, outer_code);
#endif
CONST_COSTS (x, code, outer_code);
+
+ default:
+#ifdef DEFAULT_RTX_COSTS
+ DEFAULT_RTX_COSTS(x, code, outer_code);
+#endif
+ break;
}
/* Sum the costs of the sub-rtx's, plus cost of this operation,
This macro is optional; do not define it if the default cost assumptions
are adequate for the target machine.
+@findex DEFAULT_RTX_COSTS
+@item DEFAULT_RTX_COSTS (@var{x}, @var{code}, @var{outer_code})
+This macro, if defined, is called for any case not handled by the
+@code{RTX_COSTS} or @code{CONST_COSTS} macros. This eliminates the need
+to put case labels into the macro, but the code, or any functions it
+calls, must assume that the RTL in @var{x} could be of any type that has
+not already been handled. The arguments are the same as for
+@code{RTX_COSTS}, and the macro should execute a return statement giving
+the cost of any RTL expressions that it can handle. The default cost
+calculation is used for any RTL for which this macro does not return a
+value.
+
+This macro is optional; do not define it if the default cost assumptions
+are adequate for the target machine.
+
@findex ADDRESS_COST
@item ADDRESS_COST (@var{address})
An expression giving the cost of an addressing mode that contains