Commit 22a14e0d by Kazu Hirata Committed by Nick Clifton

config/m32r/m32r-protos.h...

config/m32r/m32r-protos.h: Remove the prototypes for
	call_address_operand, symbolic_operand, seth_add3_operand,
	cmp_int16_operand, uint16_operand, reg_or_int16_operand,
	reg_or_uint16_operand, reg_or_cmp_int16_operand,
	two_insn_const_operand, move_src_operand,
	move_double_src_operand, move_dest_operand,
	eqne_comparison_operator, signed_comparison_operator,
	large_insn_p, conditional_move_operand, carry_compare_operand,
	m32r_block_immediate_operand, extend_operand,
	reg_or_eq_int16_operand, int8_operand, and
	reg_or_zero_operand.
* config/m32r/m32r.c (call_address_operand, symbolic_operand,
	seth_add3_operand, int8_operand, cmp_int16_operand,
	uint16_operand, reg_or_int16_operand, reg_or_uint16_operand,
	reg_or_eq_int16_operand, reg_or_cmp_int16_operand,
	reg_or_zero_operand, two_insn_const_operand, move_src_operand,
	move_double_src_operand, move_dest_operand,
	eqne_comparison_operator, signed_comparison_operator,
	extend_operand, small_insn_p, large_insn_p,
	conditional_move_operand, carry_compare_operand,
	m32r_block_immediate_operand): Move to predicates.md.
	(MAX_MOVE_BYTES): Move to m32r.h.
* config/m32r/m32r.h (PREDICATE_CODES): Remove.
* config/m32r/m32r.md: Include predicates.md.
* config/m32r/predicates.md: New.

From-SVN: r96691
parent 0a1948ed
2005-03-18 2005-03-18 Kazu Hirata <kazu@cs.umass.edu>
* config/m32r/m32r-protos.h: Remove the prototypes for
call_address_operand, symbolic_operand, seth_add3_operand,
cmp_int16_operand, uint16_operand, reg_or_int16_operand,
reg_or_uint16_operand, reg_or_cmp_int16_operand,
two_insn_const_operand, move_src_operand,
move_double_src_operand, move_dest_operand,
eqne_comparison_operator, signed_comparison_operator,
large_insn_p, conditional_move_operand, carry_compare_operand,
m32r_block_immediate_operand, extend_operand,
reg_or_eq_int16_operand, int8_operand, and
reg_or_zero_operand.
* config/m32r/m32r.c (call_address_operand, symbolic_operand,
seth_add3_operand, int8_operand, cmp_int16_operand,
uint16_operand, reg_or_int16_operand, reg_or_uint16_operand,
reg_or_eq_int16_operand, reg_or_cmp_int16_operand,
reg_or_zero_operand, two_insn_const_operand, move_src_operand,
move_double_src_operand, move_dest_operand,
eqne_comparison_operator, signed_comparison_operator,
extend_operand, small_insn_p, large_insn_p,
conditional_move_operand, carry_compare_operand,
m32r_block_immediate_operand): Move to predicates.md.
(MAX_MOVE_BYTES): Move to m32r.h.
* config/m32r/m32r.h (PREDICATE_CODES): Remove.
* config/m32r/m32r.md: Include predicates.md.
* config/m32r/predicates.md: New.
2005-03-18 Kazu Hirata <kazu@cs.umass.edu>
* hooks.c, hooks.h, intl.c, opts.h, prefix.c, tree-gimple.c,
......
/* Prototypes for m32r.c functions used in the md file & elsewhere.
Copyright (C) 1999, 2000, 2001, 2002, 2003, 2004
Copyright (C) 1999, 2000, 2001, 2002, 2003, 2004, 2005
Free Software Foundation, Inc.
This file is part of GCC.
......@@ -58,35 +58,13 @@ extern rtx m32r_return_addr (int);
extern rtx m32r_function_symbol (const char *);
#ifdef HAVE_MACHINE_MODES
extern int call_address_operand (rtx, Mmode);
extern int call_operand (rtx, Mmode);
extern int symbolic_operand (rtx, Mmode);
extern int small_data_operand (rtx, Mmode);
extern int addr24_operand (rtx, Mmode);
extern int addr32_operand (rtx, Mmode);
extern int call26_operand (rtx, Mmode);
extern int seth_add3_operand (rtx, Mmode);
extern int cmp_int16_operand (rtx, Mmode);
extern int uint16_operand (rtx, Mmode);
extern int reg_or_int16_operand (rtx, Mmode);
extern int reg_or_uint16_operand (rtx, Mmode);
extern int reg_or_cmp_int16_operand (rtx, Mmode);
extern int two_insn_const_operand (rtx, Mmode);
extern int move_src_operand (rtx, Mmode);
extern int move_double_src_operand (rtx, Mmode);
extern int move_dest_operand (rtx, Mmode);
extern int eqne_comparison_operator (rtx, Mmode);
extern int signed_comparison_operator (rtx, Mmode);
extern int memreg_operand (rtx, Mmode);
extern int small_insn_p (rtx, Mmode);
extern int large_insn_p (rtx, Mmode);
extern int conditional_move_operand (rtx, Mmode);
extern int carry_compare_operand (rtx, Mmode);
extern int m32r_block_immediate_operand (rtx, Mmode);
extern int extend_operand (rtx, Mmode);
extern int reg_or_eq_int16_operand (rtx, Mmode);
extern int int8_operand (rtx, Mmode);
extern int reg_or_zero_operand (rtx, Mmode);
#endif /* HAVE_MACHINE_MODES */
......
/* Definitions of target machine for GNU compiler, Renesas M32R cpu.
Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004
Free Software Foundation, Inc.
Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004,
2005 Free Software Foundation, Inc.
This file is part of GCC.
......@@ -1740,38 +1740,9 @@ enum m32r_function_type
#define M32R_INTERRUPT_P(TYPE) ((TYPE) == M32R_FUNCTION_INTERRUPT)
/* Define this if you have defined special-purpose predicates in the
file `MACHINE.c'. This macro is called within an initializer of an
array of structures. The first field in the structure is the name
of a predicate and the second field is an array of rtl codes. For
each predicate, list all rtl codes that can be in expressions
matched by the predicate. The list should have a trailing comma. */
#define PREDICATE_CODES \
{ "reg_or_zero_operand", { REG, SUBREG, CONST_INT }}, \
{ "conditional_move_operand", { REG, SUBREG, CONST_INT }}, \
{ "carry_compare_operand", { EQ, NE }}, \
{ "eqne_comparison_operator", { EQ, NE }}, \
{ "signed_comparison_operator", { EQ, NE, LT, LE, GT, GE }}, \
{ "move_dest_operand", { REG, SUBREG, MEM }}, \
{ "move_src_operand", { REG, SUBREG, MEM, CONST_INT, \
CONST_DOUBLE, LABEL_REF, CONST, \
SYMBOL_REF }}, \
{ "move_double_src_operand", { REG, SUBREG, MEM, CONST_INT, \
CONST_DOUBLE }}, \
{ "two_insn_const_operand", { CONST_INT }}, \
{ "symbolic_operand", { SYMBOL_REF, LABEL_REF, CONST }}, \
{ "int8_operand", { CONST_INT }}, \
{ "uint16_operand", { CONST_INT }}, \
{ "reg_or_int16_operand", { REG, SUBREG, CONST_INT }}, \
{ "reg_or_uint16_operand", { REG, SUBREG, CONST_INT }}, \
{ "reg_or_cmp_int16_operand", { REG, SUBREG, CONST_INT }}, \
{ "reg_or_eq_int16_operand", { REG, SUBREG, CONST_INT }}, \
{ "cmp_int16_operand", { CONST_INT }}, \
{ "call_address_operand", { SYMBOL_REF, LABEL_REF, CONST }}, \
{ "extend_operand", { REG, SUBREG, MEM }}, \
{ "small_insn_p", { INSN, CALL_INSN, JUMP_INSN }}, \
{ "m32r_block_immediate_operand",{ CONST_INT }}, \
{ "large_insn_p", { INSN, CALL_INSN, JUMP_INSN }}, \
{ "seth_add3_operand", { SYMBOL_REF, LABEL_REF, CONST }},
/* The maximum number of bytes to copy using pairs of load/store instructions.
If a block is larger than this then a loop will be generated to copy
MAX_MOVE_BYTES chunks at a time. The value of 32 is a semi-arbitrary choice.
A customer uses Dhrystome as their benchmark, and Dhrystone has a 31 byte
string copy in it. */
#define MAX_MOVE_BYTES 32
......@@ -199,6 +199,8 @@
"long_IF,long_E,memory*2")
(include "predicates.md")
;; Expand prologue as RTL
(define_expand "prologue"
[(const_int 1)]
......
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