(root)/
gcc-13.2.0/
gcc/
config/
csky/
csky-protos.h
       1  /* Prototype declarations for the C-SKY back end.
       2     Copyright (C) 2018-2023 Free Software Foundation, Inc.
       3     Contributed by C-SKY Microsystems and Mentor Graphics.
       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_CSKY_PROTOS_H
      22  #define GCC_CSKY_PROTOS_H
      23  
      24  extern bool csky_simple_addr_operand_p (rtx);
      25  extern bool csky_symbolic_address_p (rtx);
      26  extern bool csky_legitimate_pic_operand_p (rtx);
      27  
      28  extern void csky_cpu_cpp_builtins (cpp_reader *);
      29  
      30  extern bool csky_inlinable_constant (HOST_WIDE_INT value);
      31  extern bool csky_shifted_imm8_constant (unsigned HOST_WIDE_INT,
      32  					unsigned int *, unsigned int *);
      33  extern bool csky_valid_mem_constraint_operand (rtx, const char*);
      34  
      35  extern bool csky_minipool_load_p (rtx_insn *);
      36  extern const char *csky_output_move (rtx insn, rtx *, machine_mode);
      37  extern const char *csky_output_movedouble (rtx *, machine_mode);
      38  extern const char *csky_output_ck801_move (rtx, rtx *, machine_mode);
      39  extern const char *csky_output_ck801_movedouble (rtx *, machine_mode);
      40  extern char *csky_output_call (rtx *, int);
      41  extern const char *csky_output_casesi (rtx *);
      42  
      43  extern bool csky_split_and (rtx *);
      44  extern bool csky_split_ior (rtx *);
      45  extern bool csky_split_xor (rtx *);
      46  
      47  #ifdef RTX_CODE
      48  extern bool csky_emit_compare (enum rtx_code, rtx, rtx);
      49  extern bool csky_emit_compare_float (enum rtx_code, rtx, rtx);
      50  #endif /* RTX_CODE */
      51  
      52  extern rtx csky_return_addr (int, rtx);
      53  extern void csky_init_expanders (void);
      54  extern HOST_WIDE_INT csky_initial_elimination_offset (int, int);
      55  extern void csky_expand_prologue (void);
      56  extern void csky_expand_epilogue (void);
      57  extern const char *csky_output_return_instruction (void);
      58  extern void csky_set_eh_return_address (rtx, rtx);
      59  
      60  extern bool csky_symbol_mentioned_p (rtx);
      61  extern bool csky_label_mentioned_p (rtx);
      62  extern rtx csky_legitimize_pic_address (rtx, rtx, bool);
      63  
      64  extern bool csky_tls_referenced_p (rtx);
      65  extern rtx csky_legitimize_tls_address (rtx, rtx);
      66  
      67  extern int csky_compute_pushpop_length (rtx *);
      68  
      69  extern int csky_default_branch_cost (bool, bool);
      70  extern bool csky_default_logical_op_non_short_circuit (void);
      71  
      72  extern void csky_init_cumulative_args (CUMULATIVE_ARGS *, tree, rtx, tree);
      73  extern int csky_get_movedouble_length(rtx operands[]);
      74  
      75  /* The functions was used for fpuv3.  */
      76  extern const char *fpuv3_output_move (rtx *operands);
      77  extern int fpuv3_const_double_rtx (rtx);
      78  #endif /* GCC_CSKY_PROTOS_H */