OSDN Git Service

9be73236aa24a73279aa8ab749c4d1ea73149edb
[pf3gnuchains/gcc-fork.git] / gcc / config / mcore / mcore-protos.h
1 /* Prototypes for exported functions defined in mcore.c
2    Copyright (C) 2000, 2002, 2003, 2004, 2005, 2007
3    Free Software Foundation, Inc.
4    Contributed by Nick Clifton (nickc@redhat.com)
5
6    This file is part of GCC.
7
8    GCC is free software; you can redistribute it and/or modify
9    it under the terms of the GNU General Public License as published by
10    the Free Software Foundation; either version 3, or (at your option)
11    any later version.
12
13    GCC is distributed in the hope that it will be useful,
14    but WITHOUT ANY WARRANTY; without even the implied warranty of
15    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
16    GNU General Public License for more details.
17
18    You should have received a copy of the GNU General Public License
19    along with GCC; see the file COPYING3.  If not see
20    <http://www.gnu.org/licenses/>.  */
21
22 extern const char * mcore_output_jump_label_table       (void);
23 extern void         mcore_expand_prolog                 (void);
24 extern void         mcore_expand_epilog                 (void);
25 extern int          mcore_const_ok_for_inline           (HOST_WIDE_INT);
26 extern int          mcore_num_ones                      (HOST_WIDE_INT);
27 extern int          mcore_num_zeros                     (HOST_WIDE_INT);
28 extern int          mcore_initial_elimination_offset    (int, int);
29 extern int          mcore_byte_offset                   (unsigned int);
30 extern int          mcore_halfword_offset               (unsigned int);
31 extern int          mcore_const_trick_uses_not          (HOST_WIDE_INT);
32 extern void         mcore_override_options              (void);
33 extern int          mcore_dllexport_name_p              (const char *);
34 extern int          mcore_dllimport_name_p              (const char *);
35 extern int          mcore_naked_function_p              (void);
36
37 #ifdef TREE_CODE
38 #ifdef HAVE_MACHINE_MODES
39 extern int          mcore_num_arg_regs                  (enum machine_mode, const_tree);
40 #endif /* HAVE_MACHINE_MODES */
41
42 #ifdef RTX_CODE
43 extern rtx          mcore_function_value                (const_tree, const_tree);
44 #endif /* RTX_CODE */
45 #endif /* TREE_CODE */
46
47 #ifdef RTX_CODE
48
49 extern const char * mcore_output_bclri                  (rtx, int);
50 extern const char * mcore_output_bseti                  (rtx, int);
51 extern const char * mcore_output_cmov                   (rtx *, int, const char *);
52 extern char *       mcore_output_call                   (rtx *, int);
53 extern int          mcore_is_dead                       (rtx, rtx);
54 extern int          mcore_expand_insv                   (rtx *);
55 extern bool         mcore_expand_block_move             (rtx *);
56 extern const char * mcore_output_andn                   (rtx, rtx *);
57 extern bool         mcore_gen_compare                   (RTX_CODE, rtx, rtx);
58 extern int          mcore_symbolic_address_p            (rtx);
59 extern bool         mcore_r15_operand_p                 (rtx);
60 extern enum reg_class mcore_secondary_reload_class      (enum reg_class, enum machine_mode, rtx);
61 extern enum reg_class mcore_reload_class                (rtx, enum reg_class);
62 extern int          mcore_is_same_reg                   (rtx, rtx);
63 extern int          mcore_arith_S_operand               (rtx);
64
65 #ifdef HAVE_MACHINE_MODES
66 extern const char * mcore_output_move                   (rtx, rtx *, enum machine_mode);
67 extern const char * mcore_output_movedouble             (rtx *, enum machine_mode);
68 extern int          const_ok_for_mcore                  (HOST_WIDE_INT);
69 #ifdef TREE_CODE
70 extern rtx          mcore_function_arg                  (CUMULATIVE_ARGS, enum machine_mode, tree, int);
71 #endif /* TREE_CODE */
72 #endif /* HAVE_MACHINE_MODES */
73 #endif /* RTX_CODE */