]>
Commit | Line | Data |
---|---|---|
0969ec7d | 1 | /* Prototypes of target machine for Visium. |
99dee823 | 2 | Copyright (C) 2002-2021 Free Software Foundation, Inc. |
0969ec7d EB |
3 | Contributed by C.Nettleton,J.P.Parkes and P.Garbett. |
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 | |
9 | by the Free Software Foundation; either version 3, or (at your | |
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 | |
18 | along with GCC; see the file COPYING3. If not see | |
19 | <http://www.gnu.org/licenses/>. */ | |
20 | ||
21 | #ifndef GCC_VISIUM_PROTOS_H | |
22 | #define GCC_VISIUM_PROTOS_H | |
23 | ||
24 | extern unsigned int visium_data_alignment (tree, unsigned int); | |
25 | extern void visium_init_expanders (void); | |
26 | extern int visium_interrupt_function_p (void); | |
27 | extern bool visium_can_use_return_insn_p (void); | |
28 | extern void visium_expand_prologue (void); | |
29 | extern void visium_expand_epilogue (void); | |
30 | extern int visium_epilogue_uses (int); | |
31 | extern void visium_profile_hook (void); | |
32 | extern int visium_hard_regno_rename_ok (unsigned int, unsigned int); | |
33 | extern int visium_initial_elimination_offset (int from, int to); | |
34 | #ifdef RTX_CODE | |
b8506a8a RS |
35 | extern void prepare_move_operands (rtx *, machine_mode); |
36 | extern bool ok_for_simple_move_operands (rtx *, machine_mode); | |
37 | extern bool ok_for_simple_move_strict_operands (rtx *, machine_mode); | |
38 | extern bool ok_for_simple_arith_logic_operands (rtx *, machine_mode); | |
0969ec7d EB |
39 | extern void visium_initialize_trampoline (rtx, rtx, rtx); |
40 | extern int empty_delay_slot (rtx_insn *); | |
41 | extern int gr5_hazard_bypass_p (rtx_insn *, rtx_insn *); | |
42 | extern rtx visium_return_addr_rtx (int, rtx); | |
43 | extern rtx visium_eh_return_handler_rtx (void); | |
44 | extern rtx visium_dynamic_chain_address (rtx); | |
b8506a8a | 45 | extern rtx visium_legitimize_reload_address (rtx, machine_mode, int, int, |
0969ec7d | 46 | int); |
b8506a8a | 47 | extern machine_mode visium_select_cc_mode (enum rtx_code, rtx, rtx); |
0969ec7d EB |
48 | extern void visium_split_cbranch (enum rtx_code, rtx, rtx, rtx); |
49 | extern const char *output_ubranch (rtx, rtx_insn *); | |
b8506a8a | 50 | extern const char *output_cbranch (rtx, enum rtx_code, machine_mode, int, |
0969ec7d | 51 | rtx_insn *); |
b8506a8a | 52 | extern void visium_split_double_move (rtx *, machine_mode); |
a8345bfd | 53 | extern void visium_split_double_add (enum rtx_code, rtx, rtx, rtx); |
b8506a8a RS |
54 | extern void visium_expand_copysign (rtx *, machine_mode); |
55 | extern void visium_expand_int_cstore (rtx *, machine_mode); | |
56 | extern void visium_expand_fp_cstore (rtx *, machine_mode); | |
0969ec7d EB |
57 | extern void visium_split_cstore (enum rtx_code, rtx, rtx, |
58 | enum rtx_code, rtx, rtx); | |
59 | extern int visium_expand_block_move (rtx *); | |
60 | extern int visium_expand_block_set (rtx *); | |
61 | extern unsigned int reg_or_subreg_regno (rtx); | |
62 | #endif /* RTX_CODE */ | |
63 | ||
bf7988f1 EB |
64 | extern rtl_opt_pass * make_pass_visium_reorg (gcc::context *); |
65 | ||
0969ec7d | 66 | #endif |