1  /* Prototypes for v850.cc functions used in the md file & elsewhere.
       2     Copyright (C) 1999-2023 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 3, 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 COPYING3.  If not see
      18     <http://www.gnu.org/licenses/>.  */
      19  
      20  /* Function prototypes that cannot exist in v850.h due to dependency
      21     complications.  */
      22  #ifndef GCC_V850_PROTOS_H
      23  #define GCC_V850_PROTOS_H
      24  
      25  extern void   expand_prologue               (void);
      26  extern void   expand_epilogue               (void);
      27  extern int    v850_handle_pragma            (int (*)(void), void (*)(int), char *);
      28  extern int    compute_register_save_size    (long *);
      29  extern int    compute_frame_size            (poly_int64, long *);
      30  extern void   v850_init_expanders           (void);
      31  
      32  #ifdef RTX_CODE
      33  extern rtx    v850_return_addr              (int);
      34  extern const char *output_move_single       (rtx *);
      35  extern char * construct_save_jarl           (rtx);
      36  extern char * construct_restore_jr          (rtx);
      37  #ifdef HAVE_MACHINE_MODES
      38  extern char * construct_dispose_instruction (rtx);
      39  extern char * construct_prepare_instruction (rtx);
      40  extern int    ep_memory_operand             (rtx, machine_mode, int);
      41  extern int    v850_adjust_insn_length       (rtx_insn *, int);
      42  extern const char * v850_gen_movdi          (rtx *);
      43  extern rtx    v850_gen_compare              (enum rtx_code, machine_mode,
      44  					     rtx, rtx);
      45  extern machine_mode  v850_gen_float_compare (enum rtx_code,
      46  						  machine_mode, rtx, rtx);
      47  extern machine_mode  v850_select_cc_mode (RTX_CODE, rtx, rtx);
      48  #endif
      49  #endif /* RTX_CODE */
      50  
      51  #ifdef TREE_CODE
      52  extern int    v850_interrupt_function_p     (tree);
      53  extern void   v850_output_aligned_bss       (FILE *, tree, const char *, unsigned HOST_WIDE_INT, int);
      54  extern void   v850_output_common            (FILE *, tree, const char *, int, int);
      55  extern void   v850_output_local             (FILE *, tree, const char *, int, int);
      56  extern v850_data_area v850_get_data_area    (tree);
      57  #endif
      58  
      59  extern void ghs_pragma_section		    (struct cpp_reader *);
      60  extern void ghs_pragma_interrupt	    (struct cpp_reader *);
      61  extern void ghs_pragma_starttda		    (struct cpp_reader *);
      62  extern void ghs_pragma_startsda		    (struct cpp_reader *);
      63  extern void ghs_pragma_startzda		    (struct cpp_reader *);
      64  extern void ghs_pragma_endtda		    (struct cpp_reader *);
      65  extern void ghs_pragma_endsda		    (struct cpp_reader *);
      66  extern void ghs_pragma_endzda		    (struct cpp_reader *);
      67  
      68  #endif /* ! GCC_V850_PROTOS_H */