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 const char *output_logical_op
PARAMS ((enum machine_mode
, int, rtx
*));
41 extern int expand_a_shift
PARAMS ((enum machine_mode
, int, rtx
[]));
42 extern int expand_a_rotate
PARAMS ((int, rtx
[]));
43 extern int fix_bit_operand
PARAMS ((rtx
*, int, enum rtx_code
));
44 extern int h8300_adjust_insn_length
PARAMS ((rtx
, int));
45 extern void split_adds_subs
PARAMS ((enum machine_mode
, rtx
[]));
47 extern int general_operand_src
PARAMS ((rtx
, enum machine_mode
));
48 extern int general_operand_dst
PARAMS ((rtx
, enum machine_mode
));
49 extern int general_operand_dst_push
PARAMS ((rtx
, enum machine_mode mode
));
50 extern int o_operand
PARAMS ((rtx
, enum machine_mode
));
51 extern int p_operand
PARAMS ((rtx
, enum machine_mode
));
52 extern int call_insn_operand
PARAMS ((rtx
, enum machine_mode
));
53 extern int two_insn_adds_subs_operand
PARAMS ((rtx
, enum machine_mode
));
54 extern int small_call_insn_operand
PARAMS ((rtx
, enum machine_mode
));
55 extern int jump_address_operand
PARAMS ((rtx
, enum machine_mode
));
56 extern int bit_operand
PARAMS ((rtx
, enum machine_mode
));
57 extern int bit_memory_operand
PARAMS ((rtx
, enum machine_mode
));
58 extern int eq_operator
PARAMS ((rtx
, enum machine_mode
));
59 extern int bit_operator
PARAMS ((rtx
, enum machine_mode
));
60 extern int nshift_operator
PARAMS ((rtx
, enum machine_mode
));
62 /* Used in builtins.c */
63 extern rtx h8300_return_addr_rtx
PARAMS ((int, rtx
));
67 extern struct rtx_def
*function_arg
PARAMS ((CUMULATIVE_ARGS
*,
68 enum machine_mode
, tree
, int));
69 extern int h8300_funcvec_function_p
PARAMS ((tree
));
70 extern int h8300_eightbit_data_p
PARAMS ((tree
));
71 extern int h8300_tiny_data_p
PARAMS ((tree
));
72 extern void h8300_encode_label
PARAMS ((tree
));
73 #endif /* TREE_CODE */
75 extern void h8300_init_once
PARAMS ((void));
76 extern void asm_file_start
PARAMS ((FILE *));
77 extern void asm_file_end
PARAMS ((FILE *));
78 extern int ok_for_bclr
PARAMS ((HOST_WIDE_INT
));
79 extern int small_power_of_two
PARAMS ((HOST_WIDE_INT
));
80 extern int initial_offset
PARAMS ((int, int));
83 extern void h8300_pr_interrupt
PARAMS ((cpp_reader
*));
84 extern void h8300_pr_saveall
PARAMS ((cpp_reader
*));
87 #endif /* ! GCC_H8300_PROTOS_H */