Home | History | Annotate | Line # | Download | only in tilegx
      1   1.1  mrg /* Prototypes of target machine for TILE-Gx.
      2  1.10  mrg    Copyright (C) 2011-2022 Free Software Foundation, Inc.
      3   1.1  mrg    Contributed by Walter Lee (walt (at) tilera.com)
      4   1.1  mrg 
      5   1.1  mrg    This file is part of GCC.
      6   1.1  mrg 
      7   1.1  mrg    GCC is free software; you can redistribute it and/or modify it
      8   1.1  mrg    under the terms of the GNU General Public License as published
      9   1.1  mrg    by the Free Software Foundation; either version 3, or (at your
     10   1.1  mrg    option) any later version.
     11   1.1  mrg 
     12   1.1  mrg    GCC is distributed in the hope that it will be useful, but WITHOUT
     13   1.1  mrg    ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
     14   1.1  mrg    or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public
     15   1.1  mrg    License for more details.
     16   1.1  mrg 
     17   1.1  mrg    You should have received a copy of the GNU General Public License
     18   1.1  mrg    along with GCC; see the file COPYING3.  If not see
     19   1.1  mrg    <http://www.gnu.org/licenses/>.  */
     20   1.1  mrg 
     21   1.1  mrg #ifndef GCC_TILEGX_PROTOS_H
     22   1.1  mrg #define GCC_TILEGX_PROTOS_H
     23   1.1  mrg 
     24   1.1  mrg extern void tilegx_init_expanders (void);
     25   1.1  mrg extern void tilegx_compute_pcrel_address (rtx, rtx);
     26   1.1  mrg extern void tilegx_compute_pcrel_plt_address (rtx, rtx);
     27   1.1  mrg extern bool tilegx_legitimate_pic_operand_p (rtx);
     28   1.3  mrg extern rtx tilegx_simd_int (rtx, machine_mode);
     29   1.1  mrg 
     30   1.1  mrg #ifdef RTX_CODE
     31   1.1  mrg extern bool tilegx_bitfield_operand_p (HOST_WIDE_INT, int *, int *);
     32   1.1  mrg extern void tilegx_expand_set_const64 (rtx, rtx);
     33   1.3  mrg extern bool tilegx_expand_mov (machine_mode, rtx *);
     34   1.1  mrg extern void tilegx_expand_unaligned_load (rtx, rtx, HOST_WIDE_INT,
     35   1.1  mrg 					  HOST_WIDE_INT, bool);
     36   1.3  mrg extern void tilegx_expand_movmisalign (machine_mode, rtx *);
     37   1.1  mrg extern void tilegx_allocate_stack (rtx, rtx);
     38   1.1  mrg extern bool tilegx_expand_muldi (rtx, rtx, rtx);
     39   1.1  mrg extern void tilegx_expand_smuldi3_highpart (rtx, rtx, rtx);
     40   1.1  mrg extern void tilegx_expand_umuldi3_highpart (rtx, rtx, rtx);
     41   1.1  mrg 
     42   1.3  mrg extern bool tilegx_emit_setcc (rtx[], machine_mode);
     43   1.3  mrg extern void tilegx_emit_conditional_branch (rtx[], machine_mode);
     44   1.1  mrg extern rtx tilegx_emit_conditional_move (rtx);
     45   1.3  mrg extern const char *tilegx_output_cbranch_with_opcode (rtx_insn *, rtx *,
     46   1.1  mrg 						      const char *,
     47   1.1  mrg 						      const char *, int);
     48   1.3  mrg extern const char *tilegx_output_cbranch (rtx_insn *, rtx *, bool);
     49   1.1  mrg extern void tilegx_expand_tablejump (rtx, rtx);
     50   1.1  mrg extern void tilegx_expand_builtin_vector_binop (rtx (*)(rtx, rtx, rtx),
     51   1.3  mrg 						machine_mode, rtx,
     52   1.3  mrg 						machine_mode, rtx, rtx,
     53   1.1  mrg 						bool);
     54   1.1  mrg extern void tilegx_pre_atomic_barrier (enum memmodel);
     55   1.1  mrg extern void tilegx_post_atomic_barrier (enum memmodel);
     56   1.1  mrg #endif /* RTX_CODE */
     57   1.1  mrg 
     58   1.1  mrg extern bool tilegx_can_use_return_insn_p (void);
     59   1.1  mrg extern void tilegx_expand_prologue (void);
     60   1.1  mrg extern void tilegx_expand_epilogue (bool);
     61   1.1  mrg extern int tilegx_initial_elimination_offset (int, int);
     62   1.1  mrg extern rtx tilegx_return_addr (int, rtx);
     63   1.1  mrg extern rtx tilegx_eh_return_handler_rtx (void);
     64   1.3  mrg extern int tilegx_adjust_insn_length (rtx_insn *, int);
     65   1.1  mrg 
     66   1.1  mrg extern int tilegx_asm_preferred_eh_data_format (int, int);
     67   1.3  mrg extern void tilegx_final_prescan_insn (rtx_insn *);
     68   1.1  mrg extern const char *tilegx_asm_output_opcode (FILE *, const char *);
     69   1.1  mrg extern void tilegx_function_profiler (FILE *, int);
     70   1.1  mrg 
     71  1.10  mrg /* Declare functions in tilegx-c.cc */
     72   1.1  mrg 
     73   1.1  mrg extern void tilegx_cpu_cpp_builtins (struct cpp_reader *);
     74   1.1  mrg 
     75   1.1  mrg #endif /* GCC_TILEGX_PROTOS_H */
     76