]>
Commit | Line | Data |
---|---|---|
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. */ | |
25 | enum 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 |
29 | extern void score_prologue (void); |
30 | extern void score_epilogue (int sibcall_p); | |
31 | extern void score_call (rtx *ops, bool sib); | |
32 | extern void score_call_value (rtx *ops, bool sib); | |
33 | extern void score_movdi (rtx *ops); | |
34 | extern void score_zero_extract_andi (rtx *ops); | |
35 | extern const char * score_linsn (rtx *ops, enum score_mem_unit unit, bool sign); | |
36 | extern const char * score_sinsn (rtx *ops, enum score_mem_unit unit); | |
37 | extern const char * score_limm (rtx *ops); | |
38 | extern const char * score_move (rtx *ops); | |
39 | extern bool score_unaligned_load (rtx* ops); | |
40 | extern bool score_unaligned_store (rtx* ops); | |
41 | extern bool score_block_move (rtx* ops); | |
899cc0f4 | 42 | extern int score_address_cost (rtx addr, bool speed); |
254f5222 CL |
43 | extern int score_address_p (enum machine_mode mode, rtx x, int strict); |
44 | extern int score_reg_class (int regno); | |
45 | extern int score_register_move_cost (enum machine_mode mode, enum reg_class to, | |
46 | enum reg_class from); | |
47 | extern int score_hard_regno_mode_ok (unsigned int, enum machine_mode); | |
48 | extern int score_const_ok_for_letter_p (HOST_WIDE_INT value, char c); | |
49 | extern int score_extra_constraint (rtx op, char c); | |
50 | extern rtx score_return_addr (int count, rtx frame); | |
254f5222 | 51 | extern int score_regno_mode_ok_for_base_p (int regno, int strict); |
254f5222 CL |
52 | extern void score_init_cumulative_args (CUMULATIVE_ARGS *cum, |
53 | tree fntype, rtx libname); | |
54 | extern void score_declare_object (FILE *stream, const char *name, | |
55 | const char *directive, const char *fmt, ...); | |
56 | extern int score_output_external (FILE *file, tree decl, const char *name); | |
0a2aaacc | 57 | extern enum reg_class score_secondary_reload_class (enum reg_class rclass, |
254f5222 CL |
58 | enum machine_mode mode, |
59 | rtx x); | |
996893ce | 60 | extern rtx score_function_value (const_tree valtype, const_tree func, |
254f5222 CL |
61 | enum machine_mode mode); |
62 | extern enum reg_class score_preferred_reload_class (rtx x, | |
0a2aaacc | 63 | enum reg_class rclass); |
254f5222 CL |
64 | extern HOST_WIDE_INT score_initial_elimination_offset (int from, int to); |
65 | extern void score_print_operand (FILE *file, rtx op, int letter); | |
66 | extern void score_print_operand_address (FILE *file, rtx addr); | |
254f5222 CL |
67 | extern int score_symbolic_constant_p (rtx x, |
68 | enum score_symbol_type *symbol_type); | |
69 | extern void score_movsicc (rtx *ops); | |
70 | extern const char * score_select_add_imm (rtx *ops, bool set_cc); | |
71 | extern const char * score_select (rtx *ops, const char *inst_pre, bool commu, | |
72 | const char *letter, bool set_cc); | |
73 | extern const char * score_output_casesi (rtx *operands); | |
74 | extern const char * score_rpush (rtx *ops); | |
75 | extern const char * score_rpop (rtx *ops); | |
68f932c4 RS |
76 | extern 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 | 80 | extern enum machine_mode score_select_cc_mode (enum rtx_code op, rtx x, rtx y); |
bdcee471 CL |
81 | #endif |
82 | ||
254f5222 | 83 | extern struct extern_list *extern_head; |
bdcee471 | 84 | |
254f5222 | 85 | #endif /* GCC_SCORE_PROTOS_H */ |