]> git.ipfire.org Git - thirdparty/gcc.git/blob - gcc/config/nios2/nios2-protos.h
nios2-protos.h (nios2_expand_return): Declare.
[thirdparty/gcc.git] / gcc / config / nios2 / nios2-protos.h
1 /* Subroutine declarations for Altera Nios II target support.
2 Copyright (C) 2012-2015 Free Software Foundation, Inc.
3 Contributed by Jonah Graham (jgraham@altera.com).
4 Contributed by Mentor Graphics, Inc.
5
6 This file is part of GCC.
7
8 GCC is free software; you can redistribute it and/or modify it
9 under the terms of the GNU General Public License as published
10 by the Free Software Foundation; either version 3, or (at your
11 option) any later version.
12
13 GCC is distributed in the hope that it will be useful, but WITHOUT
14 ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
15 or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public
16 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 #ifndef GCC_NIOS2_PROTOS_H
23 #define GCC_NIOS2_PROTOS_H
24
25 extern int nios2_initial_elimination_offset (int, int);
26 extern int nios2_can_use_return_insn (void);
27 extern void nios2_expand_prologue (void);
28 extern void nios2_expand_epilogue (bool);
29 extern bool nios2_expand_return (void);
30 extern void nios2_function_profiler (FILE *, int);
31
32 #ifdef RTX_CODE
33 extern bool nios2_emit_move_sequence (rtx *, machine_mode);
34 extern void nios2_emit_expensive_div (rtx *, machine_mode);
35 extern void nios2_adjust_call_address (rtx *, rtx);
36
37 extern rtx nios2_get_return_address (int);
38 extern void nios2_set_return_address (rtx, rtx);
39
40 extern bool nios2_validate_compare (machine_mode, rtx *, rtx *, rtx *);
41 extern bool nios2_validate_fpu_compare (machine_mode, rtx *, rtx *, rtx *,
42 bool);
43
44 extern bool nios2_fpu_insn_enabled (enum n2fpu_code);
45 extern const char * nios2_fpu_insn_asm (enum n2fpu_code);
46 extern const char * nios2_add_insn_asm (rtx_insn *, rtx *);
47
48 extern bool nios2_legitimate_pic_operand_p (rtx);
49 extern bool gprel_constant_p (rtx);
50 extern bool nios2_regno_ok_for_base_p (int, bool);
51 extern bool nios2_unspec_reloc_p (rtx);
52
53 extern int nios2_label_align (rtx);
54 extern bool nios2_cdx_narrow_form_p (rtx_insn *);
55
56 extern bool pop_operation_p (rtx);
57 extern bool ldstwm_operation_p (rtx, bool);
58 extern bool gen_ldstwm_peep (bool, int, rtx, rtx *);
59
60 extern void nios2_adjust_reg_alloc_order (void);
61
62 #ifdef TREE_CODE
63 #ifdef ARGS_SIZE_RTX
64 /* expr.h defines both ARGS_SIZE_RTX and `enum direction' */
65 extern enum direction nios2_function_arg_padding (machine_mode, const_tree);
66 extern enum direction nios2_block_reg_padding (machine_mode, tree, int);
67 #endif /* ARGS_SIZE_RTX */
68
69 #endif /* TREE_CODE */
70 #endif /* RTX_CODE */
71
72 #endif /* GCC_NIOS2_PROTOS_H */