1 /* Definitions of target machine for GNU compiler.
2 Hitachi H8/300 version generating coff
3 Copyright (C) 2000 Free SoftwareFoundation, Inc.
4 Contributed by Steve Chamberlain (sac@cygnus.com),
5 Jim Wilson (wilson@cygnus.com), and Doug Evans (dje@cygnus.com).
7 This file is part of GNU CC.
9 GNU CC is free software; you can redistribute it and/or modify
10 it under the terms of the GNU General Public License as published by
11 the Free Software Foundation; either version 2, or (at your option)
14 GNU CC is distributed in the hope that it will be useful,
15 but WITHOUT ANY WARRANTY; without even the implied warranty of
16 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
17 GNU General Public License for more details.
19 You should have received a copy of the GNU General Public License
20 along with GNU CC; see the file COPYING. If not, write to
21 the Free Software Foundation, 59 Temple Place - Suite 330,
22 Boston, MA 02111-1307, USA. */
24 #ifndef GCC_H8300_PROTOS_H
25 #define GCC_H8300_PROTOS_H
27 /* Declarations for functions used in insn-output.c. */
29 extern const char *emit_a_shift
PARAMS ((rtx
, rtx
*));
30 extern const char *emit_a_rotate
PARAMS ((int, rtx
*));
31 extern const char *output_adds_subs
PARAMS ((rtx
*));
32 extern const char *output_simode_bld
PARAMS ((int, int, rtx
[]));
33 extern void print_operand_address
PARAMS ((FILE *, rtx
));
34 extern const char *byte_reg
PARAMS ((rtx
, int));
35 extern int const_costs
PARAMS ((rtx
, enum rtx_code
));
36 extern void print_operand
PARAMS ((FILE *, rtx
, int));
37 extern void final_prescan_insn
PARAMS ((rtx
, rtx
*, int));
38 extern int do_movsi
PARAMS ((rtx
[]));
39 extern void notice_update_cc
PARAMS ((rtx
, rtx
));
40 extern int expand_a_shift
PARAMS ((enum machine_mode
, int, rtx
[]));
41 extern int expand_a_rotate
PARAMS ((int, rtx
[]));
42 extern int fix_bit_operand
PARAMS ((rtx
*, int, enum rtx_code
));
43 extern int h8300_adjust_insn_length
PARAMS ((rtx
, int));
44 extern void split_adds_subs
PARAMS ((enum machine_mode
, rtx
[]));
46 extern int general_operand_src
PARAMS ((rtx
, enum machine_mode
));
47 extern int general_operand_dst
PARAMS ((rtx
, enum machine_mode
));
48 extern int general_operand_dst_push
PARAMS ((rtx
, enum machine_mode mode
));
49 extern int o_operand
PARAMS ((rtx
, enum machine_mode
));
50 extern int p_operand
PARAMS ((rtx
, enum machine_mode
));
51 extern int call_insn_operand
PARAMS ((rtx
, enum machine_mode
));
52 extern int two_insn_adds_subs_operand
PARAMS ((rtx
, enum machine_mode
));
53 extern int small_call_insn_operand
PARAMS ((rtx
, enum machine_mode
));
54 extern int jump_address_operand
PARAMS ((rtx
, enum machine_mode
));
55 extern int bit_operand
PARAMS ((rtx
, enum machine_mode
));
56 extern int bit_memory_operand
PARAMS ((rtx
, enum machine_mode
));
57 extern int eq_operator
PARAMS ((rtx
, enum machine_mode
));
58 extern int bit_operator
PARAMS ((rtx
, enum machine_mode
));
59 extern int nshift_operator
PARAMS ((rtx
, enum machine_mode
));
63 extern struct rtx_def
*function_arg
PARAMS ((CUMULATIVE_ARGS
*,
64 enum machine_mode
, tree
, int));
65 extern int h8300_funcvec_function_p
PARAMS ((tree
));
66 extern int h8300_eightbit_data_p
PARAMS ((tree
));
67 extern int h8300_tiny_data_p
PARAMS ((tree
));
68 extern void h8300_encode_label
PARAMS ((tree
));
69 #endif /* TREE_CODE */
71 extern void h8300_init_once
PARAMS ((void));
72 extern void asm_file_start
PARAMS ((FILE *));
73 extern void asm_file_end
PARAMS ((FILE *));
74 extern int ok_for_bclr
PARAMS ((HOST_WIDE_INT
));
75 extern int small_power_of_two
PARAMS ((HOST_WIDE_INT
));
76 extern int initial_offset
PARAMS ((int, int));
79 extern void h8300_pr_interrupt
PARAMS ((cpp_reader
*));
80 extern void h8300_pr_saveall
PARAMS ((cpp_reader
*));
83 #endif /* ! GCC_H8300_PROTOS_H */