h8300.c (h8300_and_costs): New.

* config/h8300/h8300.c (h8300_and_costs): New.
	* config/h8300/h8300.h (RTX_COSTS): Use h8300_and_costs.
	* config/h8300/h8300-protos.h: Add a prototype for
	h8300_and_costs.

From-SVN: r59606
This commit is contained in:
Kazu Hirata 2002-11-28 14:08:34 +00:00 committed by Kazu Hirata
parent 0e9501e6b1
commit 73cc75e983
4 changed files with 30 additions and 0 deletions

View File

@ -1,3 +1,10 @@
2002-11-28 Kazu Hirata <kazu@cs.umass.edu>
* config/h8300/h8300.c (h8300_and_costs): New.
* config/h8300/h8300.h (RTX_COSTS): Use h8300_and_costs.
* config/h8300/h8300-protos.h: Add a prototype for
h8300_and_costs.
2002-11-27 Zack Weinberg <zack@codesourcery.com>
* config/rs6000/rs6000.c (altivec_init_builtins): Make the

View File

@ -32,6 +32,7 @@ extern const char *emit_a_rotate PARAMS ((enum rtx_code, rtx *));
extern const char *output_simode_bld PARAMS ((int, rtx[]));
extern void print_operand_address PARAMS ((FILE *, rtx));
extern int const_costs PARAMS ((rtx, enum rtx_code, enum rtx_code));
extern int h8300_and_costs PARAMS ((rtx));
extern int h8300_shift_costs PARAMS ((rtx));
extern void print_operand PARAMS ((FILE *, rtx, int));
extern void final_prescan_insn PARAMS ((rtx, rtx *, int));

View File

@ -1135,6 +1135,26 @@ const_costs (r, c, outer_code)
}
}
int
h8300_and_costs (x)
rtx x;
{
rtx operands[4];
if (GET_MODE (x) == QImode)
return 1;
if (GET_MODE (x) != HImode
&& GET_MODE (x) != SImode)
return 100;
operands[0] = NULL;
operands[1] = NULL;
operands[2] = XEXP (x, 1);
operands[3] = x;
return compute_logical_op_length (GET_MODE (x), operands);
}
int
h8300_shift_costs (x)
rtx x;

View File

@ -1022,6 +1022,8 @@ struct cum_arg
switch on CODE. */
#define RTX_COSTS(RTX, CODE, OUTER_CODE) \
case AND: \
return COSTS_N_INSNS (h8300_and_costs (RTX)); \
case MOD: \
case DIV: \
return 60; \