]>
Commit | Line | Data |
---|---|---|
2b046bda | 1 | /* Definitions of target machine for GNU compiler, Argonaut ARC cpu. |
2f83c7d6 | 2 | Copyright (C) 2000, 2004, 2007 Free Software Foundation, Inc. |
2b046bda | 3 | |
7ec022b2 | 4 | This file is part of GCC. |
2b046bda | 5 | |
7ec022b2 | 6 | GCC is free software; you can redistribute it and/or modify |
2b046bda | 7 | it under the terms of the GNU General Public License as published by |
2f83c7d6 | 8 | the Free Software Foundation; either version 3, or (at your option) |
2b046bda KG |
9 | any later version. |
10 | ||
7ec022b2 | 11 | GCC is distributed in the hope that it will be useful, |
2b046bda KG |
12 | but WITHOUT ANY WARRANTY; without even the implied warranty of |
13 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | |
14 | GNU General Public License for more details. | |
15 | ||
16 | You should have received a copy of the GNU General Public License | |
2f83c7d6 NC |
17 | along with GCC; see the file COPYING3. If not see |
18 | <http://www.gnu.org/licenses/>. */ | |
2b046bda | 19 | |
2b49e0aa | 20 | extern void arc_va_start (tree, rtx); |
2b046bda | 21 | |
586de218 | 22 | #ifdef RTX_CODE |
2b49e0aa | 23 | extern enum machine_mode arc_select_cc_mode (enum rtx_code, rtx, rtx); |
2b046bda KG |
24 | |
25 | /* Define the function that build the compare insn for scc and bcc. */ | |
2b49e0aa | 26 | extern struct rtx_def *gen_compare_reg (enum rtx_code, rtx, rtx); |
586de218 | 27 | #endif |
2b046bda KG |
28 | |
29 | /* Declarations for various fns used in the .md file. */ | |
2b49e0aa | 30 | extern const char *output_shift (rtx *); |
2b046bda | 31 | |
2b49e0aa KC |
32 | extern int symbolic_operand (rtx, enum machine_mode); |
33 | extern int arc_double_limm_p (rtx); | |
34 | extern int arc_eligible_for_epilogue_delay (rtx, int); | |
35 | extern void arc_initialize_trampoline (rtx, rtx, rtx); | |
36 | extern void arc_print_operand (FILE *, rtx, int); | |
37 | extern void arc_print_operand_address (FILE *, rtx); | |
38 | extern void arc_final_prescan_insn (rtx, rtx *, int); | |
39 | extern int call_address_operand (rtx, enum machine_mode); | |
40 | extern int call_operand (rtx, enum machine_mode); | |
41 | extern int symbolic_memory_operand (rtx, enum machine_mode); | |
42 | extern int short_immediate_operand (rtx, enum machine_mode); | |
43 | extern int long_immediate_operand (rtx, enum machine_mode); | |
44 | extern int long_immediate_loadstore_operand (rtx, enum machine_mode); | |
45 | extern int move_src_operand (rtx, enum machine_mode); | |
46 | extern int move_double_src_operand (rtx, enum machine_mode); | |
47 | extern int move_dest_operand (rtx, enum machine_mode); | |
48 | extern int load_update_operand (rtx, enum machine_mode); | |
49 | extern int store_update_operand (rtx, enum machine_mode); | |
50 | extern int nonvol_nonimm_operand (rtx, enum machine_mode); | |
51 | extern int const_sint32_operand (rtx, enum machine_mode); | |
52 | extern int const_uint32_operand (rtx, enum machine_mode); | |
53 | extern int proper_comparison_operator (rtx, enum machine_mode); | |
54 | extern int shift_operator (rtx, enum machine_mode); | |
2b046bda | 55 | |
2b49e0aa | 56 | extern enum arc_function_type arc_compute_function_type (tree); |
2b046bda KG |
57 | |
58 | ||
2b49e0aa KC |
59 | extern void arc_init (void); |
60 | extern unsigned int arc_compute_frame_size (int); | |
61 | extern void arc_save_restore (FILE *, const char *, unsigned int, | |
62 | unsigned int, const char *); | |
63 | extern int arc_delay_slots_for_epilogue (void); | |
2b49e0aa KC |
64 | extern void arc_ccfsm_at_label (const char *, int); |
65 | extern int arc_ccfsm_branch_deleted_p (void); | |
66 | extern void arc_ccfsm_record_branch_deleted (void); |