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 GNU CC. 5 6 GNU CC 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 GNU CC 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 GNU CC; 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 PARAMS ((void)); 29 extern void expand_epilogue PARAMS ((void)); 30 extern void sdata_section PARAMS ((void)); 31 extern void rosdata_section PARAMS ((void)); 32 extern void sbss_section PARAMS ((void)); 33 extern void tdata_section PARAMS ((void)); 34 extern void zdata_section PARAMS ((void)); 35 extern void rozdata_section PARAMS ((void)); 36 extern void zbss_section PARAMS ((void)); 37 extern int v850_handle_pragma PARAMS ((int (*)(void), void (*)(int), char *)); 38 extern void asm_file_start PARAMS ((FILE *)); 39 extern void override_options PARAMS ((void)); 40 extern int compute_register_save_size PARAMS ((long *)); 41 extern int compute_frame_size PARAMS ((int, long *)); 42 extern void v850_init_expanders PARAMS ((void)); 43 44 #ifdef RTX_CODE 45 extern int v850_output_addr_const_extra PARAMS ((FILE *, rtx)); 46 extern rtx v850_return_addr PARAMS ((int)); 47 extern void print_operand PARAMS ((FILE *, rtx, int )); 48 extern void print_operand_address PARAMS ((FILE *, rtx)); 49 extern int const_costs PARAMS ((rtx, enum rtx_code)); 50 extern const char *output_move_double PARAMS ((rtx *)); 51 extern const char *output_move_single PARAMS ((rtx *)); 52 extern void v850_reorg PARAMS ((rtx)); 53 extern void notice_update_cc PARAMS ((rtx, rtx)); 54 extern char * construct_save_jarl PARAMS ((rtx)); 55 extern char * construct_restore_jr PARAMS ((rtx)); 56 #ifdef HAVE_MACHINE_MODES 57 extern int reg_or_int9_operand PARAMS ((rtx, Mmode)); 58 extern int reg_or_const_operand PARAMS ((rtx, Mmode)); 59 extern char * construct_dispose_instruction PARAMS ((rtx)); 60 extern char * construct_prepare_instruction PARAMS ((rtx)); 61 extern int pattern_is_ok_for_prepare PARAMS ((rtx, Mmode)); 62 extern int pattern_is_ok_for_dispose PARAMS ((rtx, Mmode)); 63 extern int ep_memory_operand PARAMS ((rtx, Mmode, int)); 64 extern int reg_or_0_operand PARAMS ((rtx, Mmode)); 65 extern int reg_or_int5_operand PARAMS ((rtx, Mmode)); 66 extern int call_address_operand PARAMS ((rtx, Mmode)); 67 extern int movsi_source_operand PARAMS ((rtx, Mmode)); 68 extern int power_of_two_operand PARAMS ((rtx, Mmode)); 69 extern int not_power_of_two_operand PARAMS ((rtx, Mmode)); 70 extern int special_symbolref_operand PARAMS ((rtx, Mmode)); 71 extern int pattern_is_ok_for_prologue PARAMS ((rtx, Mmode)); 72 extern int pattern_is_ok_for_epilogue PARAMS ((rtx, Mmode)); 73 extern int register_is_ok_for_epilogue PARAMS ((rtx, Mmode)); 74 #ifdef TREE_CODE 75 extern rtx function_arg PARAMS ((CUMULATIVE_ARGS *, Mmode, tree, int)); 76 extern rtx v850_va_arg PARAMS ((tree, tree)); 77 #endif 78 #endif 79 #endif /* TREE_CODE */ 80 81 #ifdef TREE_CODE 82 extern int v850_interrupt_function_p PARAMS ((tree)); 83 extern void v850_output_aligned_bss PARAMS ((FILE *, tree, const char *, int, int)); 84 extern void v850_output_common PARAMS ((FILE *, tree, const char *, int, int)); 85 extern void v850_output_local PARAMS ((FILE *, tree, const char *, int, int)); 86 extern v850_data_area v850_get_data_area PARAMS ((tree)); 87 #ifdef HAVE_MACHINE_MODES 88 extern int function_arg_partial_nregs PARAMS ((CUMULATIVE_ARGS *, Mmode, tree, int)); 89 #endif 90 #endif 91 92 #ifdef GCC_C_PRAGMA_H 93 extern void ghs_pragma_section PARAMS ((cpp_reader *)); 94 extern void ghs_pragma_interrupt PARAMS ((cpp_reader *)); 95 extern void ghs_pragma_starttda PARAMS ((cpp_reader *)); 96 extern void ghs_pragma_startsda PARAMS ((cpp_reader *)); 97 extern void ghs_pragma_startzda PARAMS ((cpp_reader *)); 98 extern void ghs_pragma_endtda PARAMS ((cpp_reader *)); 99 extern void ghs_pragma_endsda PARAMS ((cpp_reader *)); 100 extern void ghs_pragma_endzda PARAMS ((cpp_reader *)); 101 #endif 102 103 #undef Mmode 104 105 #endif /* ! GCC_V850_PROTOS_H */ 106