1 /* Definitions of target machine for GNU compiler for
2    Motorola m88100 in an 88open OCS/BCS environment.
3    Copyright (C) 2000 Free Software Foundation, Inc.
4    Contributed by Michael Tiemann (tiemann@cygnus.com).
5    Currently maintained by (gcc@dg-rtp.dg.com)
6 
7 This file is part of GNU CC.
8 
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)
12 any later version.
13 
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.
18 
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.  */
23 
24 #ifdef RTX_CODE
25 extern int m88k_debugger_offset PARAMS ((rtx, int));
26 extern void emit_bcnd PARAMS ((enum rtx_code, rtx));
27 extern void expand_block_move PARAMS ((rtx, rtx, rtx *));
28 extern void print_operand PARAMS ((FILE *, rtx, int));
29 extern void print_operand_address PARAMS ((FILE *, rtx));
30 extern const char *output_load_const_int PARAMS ((enum machine_mode, rtx *));
31 extern const char *output_load_const_float PARAMS ((rtx *));
32 extern const char *output_load_const_double PARAMS ((rtx *));
33 extern const char *output_load_const_dimode PARAMS ((rtx *));
34 extern const char *output_and PARAMS ((rtx[]));
35 extern const char *output_ior PARAMS ((rtx[]));
36 extern const char *output_xor PARAMS ((rtx[]));
37 extern const char *output_call PARAMS ((rtx[], rtx));
38 
39 extern struct rtx_def *emit_test PARAMS ((enum rtx_code, enum machine_mode));
40 extern struct rtx_def *legitimize_address PARAMS ((int, rtx, rtx, rtx));
41 extern struct rtx_def *legitimize_operand PARAMS ((rtx, enum machine_mode));
42 
43 extern int pic_address_needs_scratch PARAMS ((rtx));
44 extern int symbolic_address_p PARAMS ((rtx));
45 extern int condition_value PARAMS ((rtx));
46 extern int emit_move_sequence PARAMS ((rtx *, enum machine_mode, rtx));
47 extern int mostly_false_jump PARAMS ((rtx, rtx));
48 extern int real_power_of_2_operand PARAMS ((rtx, enum machine_mode));
49 extern int move_operand PARAMS ((rtx, enum machine_mode));
50 extern int call_address_operand PARAMS ((rtx, enum machine_mode));
51 extern int reg_or_0_operand PARAMS ((rtx, enum machine_mode));
52 extern int arith_operand PARAMS ((rtx, enum machine_mode));
53 extern int arith5_operand PARAMS ((rtx, enum machine_mode));
54 extern int arith32_operand PARAMS ((rtx, enum machine_mode));
55 extern int arith64_operand PARAMS ((rtx, enum machine_mode));
56 extern int int5_operand PARAMS ((rtx, enum machine_mode));
57 extern int int32_operand PARAMS ((rtx, enum machine_mode));
58 extern int add_operand PARAMS ((rtx, enum machine_mode));
59 extern int reg_or_bbx_mask_operand PARAMS ((rtx, enum machine_mode));
60 extern int real_or_0_operand PARAMS ((rtx, enum machine_mode));
61 extern int partial_ccmode_register_operand PARAMS ((rtx, enum machine_mode));
62 extern int relop PARAMS ((rtx, enum machine_mode));
63 extern int even_relop PARAMS ((rtx, enum machine_mode));
64 extern int odd_relop PARAMS ((rtx, enum machine_mode));
65 extern int relop_no_unsigned PARAMS ((rtx, enum machine_mode));
66 extern int equality_op PARAMS ((rtx, enum machine_mode));
67 extern int pc_or_label_ref PARAMS ((rtx, enum machine_mode));
68 extern int symbolic_operand PARAMS ((rtx, enum machine_mode));
69 #ifdef TREE_CODE
70 extern void m88k_va_start PARAMS ((tree, rtx));
71 #endif /* TREE_CODE */
72 #endif /* RTX_CODE */
73 
74 #ifdef ANSI_PROTOTYPES
75 struct m88k_lang_independent_options;
76 #endif
77 extern void output_file_start PARAMS ((FILE *,
78 				       const struct m88k_lang_independent_options *,
79 				       int,
80 				       const struct m88k_lang_independent_options *,
81 				       int));
82 
83 extern int null_prologue PARAMS ((void));
84 extern int integer_ok_for_set PARAMS ((unsigned));
85 extern void m88k_layout_frame PARAMS ((void));
86 extern void m88k_expand_prologue PARAMS ((void));
87 extern void m88k_expand_epilogue PARAMS ((void));
88 extern void output_function_profiler PARAMS ((FILE *, int, const char *, int));
89 extern void output_ascii PARAMS ((FILE *, const char *, int,
90 				  const char *, int));
91 extern void output_label PARAMS ((int));
92 extern struct rtx_def *m88k_builtin_saveregs PARAMS ((void));
93 extern enum m88k_instruction classify_integer PARAMS ((enum machine_mode, int));
94 extern int mak_mask_p PARAMS ((int));
95 
96 #ifdef TREE_CODE
97 extern struct rtx_def *m88k_function_arg PARAMS ((CUMULATIVE_ARGS,
98 						  enum machine_mode, tree,
99 						  int));
100 extern struct rtx_def *m88k_va_arg PARAMS ((tree, tree));
101 extern tree m88k_build_va_list PARAMS ((void));
102 #endif /* TREE_CODE */
103