X-Git-Url: https://oss.titaniummirror.com/gitweb/?a=blobdiff_plain;f=gcc%2Fconfig%2Fxtensa%2Fxtensa-protos.h;h=0447fae0a2ed9223178cd531d286890b26bf0924;hb=6fed43773c9b0ce596dca5686f37ac3fc0fa11c0;hp=9cda5e625dea55a773e24187d85d04652004471e;hpb=27b11d56b743098deb193d510b337ba22dc52e5c;p=msp430-gcc.git diff --git a/gcc/config/xtensa/xtensa-protos.h b/gcc/config/xtensa/xtensa-protos.h index 9cda5e62..0447fae0 100644 --- a/gcc/config/xtensa/xtensa-protos.h +++ b/gcc/config/xtensa/xtensa-protos.h @@ -1,12 +1,13 @@ /* Prototypes of target machine for GNU compiler for Xtensa. - Copyright 2001,2002 Free Software Foundation, Inc. + Copyright 2001, 2002, 2003, 2004, 2005, 2007, 2008 + Free Software Foundation, Inc. Contributed by Bob Wilson (bwilson@tensilica.com) at Tensilica. This file is part of GCC. GCC is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free -Software Foundation; either version 2, or (at your option) any later +Software Foundation; either version 3, or (at your option) any later version. GCC is distributed in the hope that it will be useful, but WITHOUT ANY @@ -15,106 +16,79 @@ FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License -along with GCC; see the file COPYING. If not, write to the Free -Software Foundation, 59 Temple Place - Suite 330, Boston, MA -02111-1307, USA. */ +along with GCC; see the file COPYING3. If not see +. */ #ifndef __XTENSA_PROTOS_H__ #define __XTENSA_PROTOS_H__ -/* Functions to test whether an immediate fits in a given field. */ -extern int xtensa_simm7 PARAMS ((int)); -extern int xtensa_simm8 PARAMS ((int)); -extern int xtensa_simm8x256 PARAMS ((int)); -extern int xtensa_simm12b PARAMS ((int)); -extern int xtensa_uimm8 PARAMS ((int)); -extern int xtensa_uimm8x2 PARAMS ((int)); -extern int xtensa_uimm8x4 PARAMS ((int)); -extern int xtensa_ai4const PARAMS ((int)); -extern int xtensa_lsi4x4 PARAMS ((int)); -extern int xtensa_b4const PARAMS ((int)); -extern int xtensa_b4constu PARAMS ((int)); -extern int xtensa_tp7 PARAMS ((int)); +/* Functions to test whether an immediate fits in a given field. */ +extern bool xtensa_simm8 (HOST_WIDE_INT); +extern bool xtensa_simm8x256 (HOST_WIDE_INT); +extern bool xtensa_simm12b (HOST_WIDE_INT); +extern bool xtensa_b4const_or_zero (HOST_WIDE_INT); +extern bool xtensa_b4constu (HOST_WIDE_INT); +extern bool xtensa_mask_immediate (HOST_WIDE_INT); +extern bool xtensa_mem_offset (unsigned, enum machine_mode); /* Functions within xtensa.c that we reference. */ #ifdef RTX_CODE -extern int xt_true_regnum PARAMS ((rtx)); -extern int add_operand PARAMS ((rtx, enum machine_mode)); -extern int arith_operand PARAMS ((rtx, enum machine_mode)); -extern int nonimmed_operand PARAMS ((rtx, enum machine_mode)); -extern int mem_operand PARAMS ((rtx, enum machine_mode)); -extern int xtensa_valid_move PARAMS ((enum machine_mode, rtx *operands)); -extern int mask_operand PARAMS ((rtx, enum machine_mode)); -extern int extui_fldsz_operand PARAMS ((rtx, enum machine_mode)); -extern int sext_operand PARAMS ((rtx, enum machine_mode)); -extern int sext_fldsz_operand PARAMS ((rtx, enum machine_mode)); -extern int lsbitnum_operand PARAMS ((rtx, enum machine_mode)); -extern int branch_operand PARAMS ((rtx, enum machine_mode)); -extern int ubranch_operand PARAMS ((rtx, enum machine_mode)); -extern int call_insn_operand PARAMS ((rtx, enum machine_mode)); -extern int move_operand PARAMS ((rtx, enum machine_mode)); -extern int smalloffset_mem_p PARAMS ((rtx)); -extern int smalloffset_double_mem_p PARAMS ((rtx)); -extern int constantpool_address_p PARAMS ((rtx)); -extern int constantpool_mem_p PARAMS ((rtx)); -extern int non_const_move_operand PARAMS ((rtx, enum machine_mode)); -extern int const_float_1_operand PARAMS ((rtx, enum machine_mode)); -extern int fpmem_offset_operand PARAMS ((rtx, enum machine_mode)); -extern void xtensa_extend_reg PARAMS ((rtx, rtx)); -extern void xtensa_load_constant PARAMS ((rtx, rtx)); -extern int branch_operator PARAMS ((rtx, enum machine_mode)); -extern int ubranch_operator PARAMS ((rtx, enum machine_mode)); -extern int boolean_operator PARAMS ((rtx, enum machine_mode)); -extern void xtensa_expand_conditional_branch PARAMS ((rtx *, enum rtx_code)); -extern int xtensa_expand_conditional_move PARAMS ((rtx *, int)); -extern int xtensa_expand_scc PARAMS ((rtx *)); -extern int xtensa_expand_block_move PARAMS ((rtx *)); -extern int xtensa_emit_move_sequence PARAMS ((rtx *, enum machine_mode)); -extern bool xtensa_copy_incoming_a7 PARAMS ((rtx *, enum machine_mode)); -extern void xtensa_emit_block_move PARAMS ((rtx *, rtx *, int)); -extern void xtensa_expand_nonlocal_goto PARAMS ((rtx *)); -extern void xtensa_emit_loop_end PARAMS ((rtx, rtx *)); -extern char * xtensa_emit_call PARAMS ((int, rtx *)); +extern int xt_true_regnum (rtx); +extern int xtensa_valid_move (enum machine_mode, rtx *); +extern int smalloffset_mem_p (rtx); +extern int constantpool_address_p (rtx); +extern int constantpool_mem_p (rtx); +extern void xtensa_extend_reg (rtx, rtx); +extern void xtensa_expand_conditional_branch (rtx *, enum rtx_code); +extern int xtensa_expand_conditional_move (rtx *, int); +extern int xtensa_expand_scc (rtx *); +extern int xtensa_expand_block_move (rtx *); +extern void xtensa_split_operand_pair (rtx *, enum machine_mode); +extern int xtensa_emit_move_sequence (rtx *, enum machine_mode); +extern rtx xtensa_copy_incoming_a7 (rtx); +extern void xtensa_expand_nonlocal_goto (rtx *); +extern void xtensa_expand_compare_and_swap (rtx, rtx, rtx, rtx); +extern void xtensa_expand_atomic (enum rtx_code, rtx, rtx, rtx, bool); +extern void xtensa_emit_loop_end (rtx, rtx *); +extern char *xtensa_emit_branch (bool, bool, rtx *); +extern char *xtensa_emit_bit_branch (bool, bool, rtx *); +extern char *xtensa_emit_movcc (bool, bool, bool, rtx *); +extern char *xtensa_emit_call (int, rtx *); +extern bool xtensa_legitimate_address_p (enum machine_mode, rtx, bool); +extern rtx xtensa_legitimize_address (rtx, rtx, enum machine_mode); +extern bool xtensa_tls_referenced_p (rtx); #ifdef TREE_CODE -extern void init_cumulative_args PARAMS ((CUMULATIVE_ARGS *, tree, rtx)); -extern void xtensa_va_start PARAMS ((int, tree, rtx)); -extern rtx xtensa_va_arg PARAMS ((tree, tree)); +extern void init_cumulative_args (CUMULATIVE_ARGS *, int); #endif /* TREE_CODE */ -extern void print_operand PARAMS ((FILE *, rtx, int)); -extern void print_operand_address PARAMS ((FILE *, rtx)); -extern void xtensa_output_literal - PARAMS ((FILE *, rtx, enum machine_mode, int labelno)); -extern void xtensa_reorg PARAMS ((rtx)); -extern rtx xtensa_return_addr PARAMS ((int, rtx)); -extern rtx xtensa_builtin_saveregs PARAMS ((void)); -extern enum reg_class xtensa_preferred_reload_class - PARAMS ((rtx, enum reg_class, int)); -extern enum reg_class xtensa_secondary_reload_class - PARAMS ((enum reg_class, enum machine_mode, rtx, int)); -extern int a7_overlap_mentioned_p PARAMS ((rtx x)); +extern void print_operand (FILE *, rtx, int); +extern void print_operand_address (FILE *, rtx); +extern bool xtensa_output_addr_const_extra (FILE *, rtx); +extern void xtensa_output_literal (FILE *, rtx, enum machine_mode, int); +extern rtx xtensa_return_addr (int, rtx); +extern enum reg_class xtensa_preferred_reload_class (rtx, enum reg_class, int); +struct secondary_reload_info; +extern enum reg_class xtensa_secondary_reload (bool, rtx, enum reg_class, + enum machine_mode, + struct secondary_reload_info *); +extern void xtensa_initialize_trampoline (rtx, rtx, rtx); #endif /* RTX_CODE */ #ifdef TREE_CODE -extern void function_arg_advance - PARAMS ((CUMULATIVE_ARGS *, enum machine_mode, tree)); -extern struct rtx_def * function_arg - PARAMS ((CUMULATIVE_ARGS *, enum machine_mode, tree, int)); -extern tree xtensa_build_va_list PARAMS ((void)); +extern void function_arg_advance (CUMULATIVE_ARGS *, enum machine_mode, tree); +extern struct rtx_def *function_arg (CUMULATIVE_ARGS *, enum machine_mode, + tree, int); +extern int function_arg_boundary (enum machine_mode, tree); #endif /* TREE_CODE */ -extern int xtensa_mask_immediate PARAMS ((int)); -extern int xtensa_mem_offset PARAMS ((unsigned, enum machine_mode)); -extern void xtensa_setup_frame_addresses PARAMS ((void)); -extern int xtensa_dbx_register_number PARAMS ((int)); -extern void override_options PARAMS ((void)); -extern void xtensa_declare_object - PARAMS ((FILE *, char *, char *, char *, int)); -extern long compute_frame_size PARAMS ((int)); -extern int xtensa_frame_pointer_required PARAMS ((void)); -extern void xtensa_function_prologue PARAMS ((FILE *, int)); -extern void xtensa_function_epilogue PARAMS ((FILE *, int)); -extern void order_regs_for_local_alloc PARAMS ((void)); +extern void xtensa_setup_frame_addresses (void); +extern int xtensa_dbx_register_number (int); +extern void override_options (void); +extern long compute_frame_size (int); +extern int xtensa_frame_pointer_required (void); +extern void xtensa_expand_prologue (void); +extern void order_regs_for_local_alloc (void); +extern void xtensa_trampoline_template (FILE *); #endif /* !__XTENSA_PROTOS_H__ */