]> git.ipfire.org Git - thirdparty/gcc.git/blame - gcc/config/score/score-protos.h
tm.texi.in (TARGET_RTX_COSTS): Add an opno paramter.
[thirdparty/gcc.git] / gcc / config / score / score-protos.h
CommitLineData
bdcee471 1/* score-protos.h for Sunplus S+CORE processor
d5cc9181
JR
2 Copyright (C) 2005, 2007, 2008, 2009, 2010, 2011
3 Free Software Foundation, Inc.
bdcee471
CL
4
5 This file is part of GCC.
6
7 GCC is free software; you can redistribute it and/or modify it
8 under the terms of the GNU General Public License as published
2f83c7d6 9 by the Free Software Foundation; either version 3, or (at your
bdcee471
CL
10 option) any later version.
11
12 GCC is distributed in the hope that it will be useful, but WITHOUT
13 ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
14 or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public
15 License for more details.
16
17 You should have received a copy of the GNU General Public License
2f83c7d6
NC
18 along with GCC; see the file COPYING3. If not see
19 <http://www.gnu.org/licenses/>. */
bdcee471 20
254f5222
CL
21#ifndef GCC_SCORE_PROTOS_H
22#define GCC_SCORE_PROTOS_H
23
24/* Machine Print. */
25enum score_mem_unit {SCORE_BYTE = 0, SCORE_HWORD = 1, SCORE_WORD = 2};
26
27#define SCORE_ALIGN_UNIT(V, UNIT) !(V & ((1 << UNIT) - 1))
28
254f5222
CL
29extern void score_prologue (void);
30extern void score_epilogue (int sibcall_p);
31extern void score_call (rtx *ops, bool sib);
32extern void score_call_value (rtx *ops, bool sib);
33extern void score_movdi (rtx *ops);
34extern void score_zero_extract_andi (rtx *ops);
35extern const char * score_linsn (rtx *ops, enum score_mem_unit unit, bool sign);
36extern const char * score_sinsn (rtx *ops, enum score_mem_unit unit);
37extern const char * score_limm (rtx *ops);
38extern const char * score_move (rtx *ops);
39extern bool score_unaligned_load (rtx* ops);
40extern bool score_unaligned_store (rtx* ops);
41extern bool score_block_move (rtx* ops);
899cc0f4 42extern int score_address_cost (rtx addr, bool speed);
254f5222
CL
43extern int score_address_p (enum machine_mode mode, rtx x, int strict);
44extern int score_reg_class (int regno);
45extern int score_register_move_cost (enum machine_mode mode, enum reg_class to,
46 enum reg_class from);
47extern int score_hard_regno_mode_ok (unsigned int, enum machine_mode);
48extern int score_const_ok_for_letter_p (HOST_WIDE_INT value, char c);
49extern int score_extra_constraint (rtx op, char c);
50extern rtx score_return_addr (int count, rtx frame);
254f5222 51extern int score_regno_mode_ok_for_base_p (int regno, int strict);
254f5222
CL
52extern void score_init_cumulative_args (CUMULATIVE_ARGS *cum,
53 tree fntype, rtx libname);
54extern void score_declare_object (FILE *stream, const char *name,
55 const char *directive, const char *fmt, ...);
56extern int score_output_external (FILE *file, tree decl, const char *name);
0a2aaacc 57extern enum reg_class score_secondary_reload_class (enum reg_class rclass,
254f5222
CL
58 enum machine_mode mode,
59 rtx x);
996893ce 60extern rtx score_function_value (const_tree valtype, const_tree func,
254f5222
CL
61 enum machine_mode mode);
62extern enum reg_class score_preferred_reload_class (rtx x,
0a2aaacc 63 enum reg_class rclass);
254f5222
CL
64extern HOST_WIDE_INT score_initial_elimination_offset (int from, int to);
65extern void score_print_operand (FILE *file, rtx op, int letter);
66extern void score_print_operand_address (FILE *file, rtx addr);
254f5222
CL
67extern int score_symbolic_constant_p (rtx x,
68 enum score_symbol_type *symbol_type);
69extern void score_movsicc (rtx *ops);
70extern const char * score_select_add_imm (rtx *ops, bool set_cc);
71extern const char * score_select (rtx *ops, const char *inst_pre, bool commu,
72 const char *letter, bool set_cc);
73extern const char * score_output_casesi (rtx *operands);
74extern const char * score_rpush (rtx *ops);
75extern const char * score_rpop (rtx *ops);
68f932c4
RS
76extern bool score_rtx_costs (rtx x, int code, int outer_code, int opno,
77 int *total, bool speed);
bdcee471
CL
78
79#ifdef RTX_CODE
254f5222 80extern enum machine_mode score_select_cc_mode (enum rtx_code op, rtx x, rtx y);
bdcee471
CL
81#endif
82
254f5222 83extern struct extern_list *extern_head;
bdcee471 84
254f5222 85#endif /* GCC_SCORE_PROTOS_H */