]> oss.titaniummirror.com Git - msp430-gcc.git/blobdiff - gcc/config/xtensa/xtensa-protos.h
Imported gcc-4.4.3
[msp430-gcc.git] / gcc / config / xtensa / xtensa-protos.h
index 9cda5e625dea55a773e24187d85d04652004471e..0447fae0a2ed9223178cd531d286890b26bf0924 100644 (file)
@@ -1,12 +1,13 @@
 /* Prototypes of target machine for GNU compiler for Xtensa.
 /* 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
    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
 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
 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
+<http://www.gnu.org/licenses/>.  */
 
 #ifndef __XTENSA_PROTOS_H__
 #define __XTENSA_PROTOS_H__
 
 
 #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
 
 /* 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
 
 #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 */
 
 #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
 #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 */
 
 #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__ */
 
 #endif /* !__XTENSA_PROTOS_H__ */