1 /* Prototypes for v850.c functions used in the md file & elsewhere. 2 Copyright (C) 1999, 2000, 2002 Free Software Foundation, Inc. 3 4 This file is part of GCC. 5 6 GCC is free software; you can redistribute it and/or modify 7 it under the terms of the GNU General Public License as published by 8 the Free Software Foundation; either version 2, or (at your option) 9 any later version. 10 11 GCC is distributed in the hope that it will be useful, 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 17 along with GCC; see the file COPYING. If not, write to 18 the Free Software Foundation, 59 Temple Place - Suite 330, 19 Boston, MA 02111-1307, USA. */ 20 21 /* Function prototypes that cannot exist in v850.h due to dependency 22 complications. */ 23 #ifndef GCC_V850_PROTOS_H 24 #define GCC_V850_PROTOS_H 25 26 #define Mmode enum machine_mode 27 28 extern void expand_prologue (void); 29 extern void expand_epilogue (void); 30 extern void sdata_section (void); 31 extern void rosdata_section (void); 32 extern void sbss_section (void); 33 extern void tdata_section (void); 34 extern void zdata_section (void); 35 extern void rozdata_section (void); 36 extern void zbss_section (void); 37 extern int v850_handle_pragma (int (*)(void), void (*)(int), char *); 38 extern void override_options (void); 39 extern int compute_register_save_size (long *); 40 extern int compute_frame_size (int, long *); 41 extern void v850_init_expanders (void); 42 43 #ifdef RTX_CODE 44 extern int v850_output_addr_const_extra (FILE *, rtx); 45 extern rtx v850_return_addr (int); 46 extern void print_operand (FILE *, rtx, int ); 47 extern void print_operand_address (FILE *, rtx); 48 extern const char *output_move_double (rtx *); 49 extern const char *output_move_single (rtx *); 50 extern void notice_update_cc (rtx, rtx); 51 extern char * construct_save_jarl (rtx); 52 extern char * construct_restore_jr (rtx); 53 #ifdef HAVE_MACHINE_MODES 54 extern int reg_or_int9_operand (rtx, Mmode); 55 extern int reg_or_const_operand (rtx, Mmode); 56 extern char * construct_dispose_instruction (rtx); 57 extern char * construct_prepare_instruction (rtx); 58 extern int pattern_is_ok_for_prepare (rtx, Mmode); 59 extern int pattern_is_ok_for_dispose (rtx, Mmode); 60 extern int ep_memory_operand (rtx, Mmode, int); 61 extern int reg_or_0_operand (rtx, Mmode); 62 extern int reg_or_int5_operand (rtx, Mmode); 63 extern int call_address_operand (rtx, Mmode); 64 extern int movsi_source_operand (rtx, Mmode); 65 extern int power_of_two_operand (rtx, Mmode); 66 extern int not_power_of_two_operand (rtx, Mmode); 67 extern int special_symbolref_operand (rtx, Mmode); 68 extern int pattern_is_ok_for_prologue (rtx, Mmode); 69 extern int pattern_is_ok_for_epilogue (rtx, Mmode); 70 extern int register_is_ok_for_epilogue (rtx, Mmode); 71 #ifdef TREE_CODE 72 extern rtx function_arg (CUMULATIVE_ARGS *, Mmode, tree, int); 73 extern rtx v850_va_arg (tree, tree); 74 #endif 75 #endif 76 #endif /* TREE_CODE */ 77 78 #ifdef TREE_CODE 79 extern int v850_interrupt_function_p (tree); 80 extern void v850_output_aligned_bss (FILE *, tree, const char *, int, int); 81 extern void v850_output_common (FILE *, tree, const char *, int, int); 82 extern void v850_output_local (FILE *, tree, const char *, int, int); 83 extern v850_data_area v850_get_data_area (tree); 84 #ifdef HAVE_MACHINE_MODES 85 extern int function_arg_partial_nregs (CUMULATIVE_ARGS *, Mmode, tree, int); 86 #endif 87 #endif 88 89 extern void ghs_pragma_section (struct cpp_reader *); 90 extern void ghs_pragma_interrupt (struct cpp_reader *); 91 extern void ghs_pragma_starttda (struct cpp_reader *); 92 extern void ghs_pragma_startsda (struct cpp_reader *); 93 extern void ghs_pragma_startzda (struct cpp_reader *); 94 extern void ghs_pragma_endtda (struct cpp_reader *); 95 extern void ghs_pragma_endsda (struct cpp_reader *); 96 extern void ghs_pragma_endzda (struct cpp_reader *); 97 98 #undef Mmode 99 100 #endif /* ! GCC_V850_PROTOS_H */ 101