Commit 037f11ef by Kazu Hirata Committed by Kazu Hirata

h8300-protos.h: Update the prototype for const_costs.

	* config/h8300/h8300-protos.h: Update the prototype for
	const_costs.
	* config/h8300/h8300.c (const_costs): Treat SET as a little
	more expensive operation.
	* config/h8300/h8300.h (DEFAULT_RTX_COSTS): Update the
	reference to const_costs.

From-SVN: r49765
parent fdc76b09
2002-02-14 Kazu Hirata <kazu@hxi.com>
* config/h8300/h8300-protos.h: Update the prototype for
const_costs.
* config/h8300/h8300.c (const_costs): Treat SET as a little
more expensive operation.
* config/h8300/h8300.h (DEFAULT_RTX_COSTS): Update the
reference to const_costs.
2002-02-14 Hans-Peter Nilsson <hp@axis.com> 2002-02-14 Hans-Peter Nilsson <hp@axis.com>
* config.gcc (c4x-*-rtems*): Fix typo in tm_file setting. * config.gcc (c4x-*-rtems*): Fix typo in tm_file setting.
......
...@@ -30,7 +30,7 @@ extern const char *output_a_shift PARAMS ((rtx *)); ...@@ -30,7 +30,7 @@ extern const char *output_a_shift PARAMS ((rtx *));
extern const char *emit_a_rotate PARAMS ((enum rtx_code, rtx *)); extern const char *emit_a_rotate PARAMS ((enum rtx_code, rtx *));
extern const char *output_simode_bld PARAMS ((int, rtx[])); extern const char *output_simode_bld PARAMS ((int, rtx[]));
extern void print_operand_address PARAMS ((FILE *, rtx)); extern void print_operand_address PARAMS ((FILE *, rtx));
extern int const_costs PARAMS ((rtx, enum rtx_code)); extern int const_costs PARAMS ((rtx, enum rtx_code, enum rtx_code));
extern void print_operand PARAMS ((FILE *, rtx, int)); extern void print_operand PARAMS ((FILE *, rtx, int));
extern void final_prescan_insn PARAMS ((rtx, rtx *, int)); extern void final_prescan_insn PARAMS ((rtx, rtx *, int));
extern int do_movsi PARAMS ((rtx[])); extern int do_movsi PARAMS ((rtx[]));
......
...@@ -872,9 +872,10 @@ function_arg (cum, mode, type, named) ...@@ -872,9 +872,10 @@ function_arg (cum, mode, type, named)
/* Return the cost of the rtx R with code CODE. */ /* Return the cost of the rtx R with code CODE. */
int int
const_costs (r, c) const_costs (r, c, outer_code)
rtx r; rtx r;
enum rtx_code c; enum rtx_code c;
enum rtx_code outer_code;
{ {
switch (c) switch (c)
{ {
...@@ -882,15 +883,16 @@ const_costs (r, c) ...@@ -882,15 +883,16 @@ const_costs (r, c)
switch (INTVAL (r)) switch (INTVAL (r))
{ {
case 0: case 0:
return 0;
case 1: case 1:
case 2: case 2:
case -1: case -1:
case -2: case -2:
return 0; return 0 + (outer_code == SET);
case 4: case 4:
case -4: case -4:
if (TARGET_H8300H || TARGET_H8300S) if (TARGET_H8300H || TARGET_H8300S)
return 0; return 0 + (outer_code == SET);
else else
return 1; return 1;
default: default:
......
...@@ -1005,7 +1005,7 @@ struct cum_arg ...@@ -1005,7 +1005,7 @@ struct cum_arg
return it with a return statement. Otherwise, break from the switch. */ return it with a return statement. Otherwise, break from the switch. */
#define DEFAULT_RTX_COSTS(RTX, CODE, OUTER_CODE) \ #define DEFAULT_RTX_COSTS(RTX, CODE, OUTER_CODE) \
return (const_costs (RTX, CODE)); return (const_costs (RTX, CODE, OUTER_CODE));
#define BRANCH_COST 0 #define BRANCH_COST 0
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment