m68hc11-protos.h revision 1.1.1.1
1/* Prototypes for exported functions defined in m68hc11.c 2 Copyright (C) 1999, 2000, 2001, 2002, 2003, 2004, 2005 3 Free Software Foundation, Inc. 4 Contributed by Stephane Carrez (stcarrez@nerim.fr) 5 6This file is part of GCC. 7 8GCC is free software; you can redistribute it and/or modify 9it under the terms of the GNU General Public License as published by 10the Free Software Foundation; either version 2, or (at your option) 11any later version. 12 13GCC is distributed in the hope that it will be useful, 14but WITHOUT ANY WARRANTY; without even the implied warranty of 15MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 16GNU General Public License for more details. 17 18You should have received a copy of the GNU General Public License 19along with GCC; see the file COPYING. If not, write to 20the Free Software Foundation, 51 Franklin Street, Fifth Floor, 21Boston, MA 02110-1301, USA. */ 22 23 24extern int m68hc11_override_options (void); 25extern int m68hc11_optimization_options (int,int); 26extern void m68hc11_conditional_register_usage (void); 27extern int hard_regno_mode_ok (int, enum machine_mode); 28extern int m68hc11_hard_regno_rename_ok (int, int); 29 30extern int m68hc11_total_frame_size (void); 31extern int m68hc11_initial_frame_pointer_offset (void); 32extern int m68hc11_initial_elimination_offset (int, int); 33 34extern void expand_prologue (void); 35extern void expand_epilogue (void); 36 37#ifdef TREE_CODE 38extern void m68hc11_function_arg_advance (CUMULATIVE_ARGS*, 39 enum machine_mode, 40 tree, 41 int); 42#endif 43 44#ifdef RTX_CODE 45extern int m68hc11_auto_inc_p (rtx); 46 47extern void m68hc11_initialize_trampoline (rtx, rtx, rtx); 48 49extern rtx m68hc11_expand_compare_and_branch (enum rtx_code, rtx, rtx, rtx); 50extern enum reg_class preferred_reload_class (rtx, enum reg_class); 51 52extern int m68hc11_go_if_legitimate_address (rtx, enum machine_mode, int); 53 54extern int m68hc11_legitimize_address (rtx*, rtx, enum machine_mode); 55 56extern void m68hc11_notice_update_cc (rtx, rtx); 57extern void m68hc11_notice_keep_cc (rtx); 58 59extern void m68hc11_gen_movqi (rtx, rtx*); 60extern void m68hc11_gen_movhi (rtx, rtx*); 61extern void m68hc11_gen_rotate (enum rtx_code, rtx, rtx*); 62 63extern void m68hc11_output_swap (rtx, rtx*); 64 65extern int next_insn_test_reg (rtx, rtx); 66 67extern void print_operand (FILE*, rtx, int); 68extern void print_operand_address (FILE*, rtx); 69 70extern int m68hc11_reload_operands (rtx*); 71 72extern int dead_register_here (rtx, rtx); 73 74extern int push_pop_operand_p (rtx); 75extern void m68hc11_split_move (rtx, rtx, rtx); 76extern void m68hc11_split_compare_and_branch (enum rtx_code, 77 rtx, rtx, rtx); 78 79extern rtx m68hc11_gen_lowpart (enum machine_mode, rtx); 80extern rtx m68hc11_gen_highpart (enum machine_mode, rtx); 81 82#ifdef HAVE_MACHINE_MODES 83extern int m68hc11_memory_move_cost (enum machine_mode, enum reg_class, int); 84extern int m68hc11_register_move_cost (enum machine_mode, 85 enum reg_class, enum reg_class); 86 87extern void m68hc11_emit_libcall (const char*, enum rtx_code, 88 enum machine_mode, enum machine_mode, 89 int, rtx*); 90extern int m68hc11_small_indexed_indirect_p (rtx, enum machine_mode); 91extern int m68hc11_symbolic_p (rtx, enum machine_mode); 92extern int m68hc11_indirect_p (rtx, enum machine_mode); 93extern int go_if_legitimate_address2 (rtx, enum machine_mode, int); 94 95extern int reg_or_indexed_operand (rtx,enum machine_mode); 96extern int memory_indexed_operand (rtx, enum machine_mode); 97 98extern void m68hc11_split_logical (enum machine_mode, int, rtx*); 99 100extern int m68hc11_register_indirect_p (rtx, enum machine_mode); 101extern int m68hc11_valid_addressing_p (rtx, enum machine_mode, int); 102 103extern int symbolic_memory_operand (rtx, enum machine_mode); 104 105extern int memory_reload_operand (rtx, enum machine_mode); 106extern int arith_src_operand (rtx, enum machine_mode); 107extern int soft_reg_operand (rtx, enum machine_mode); 108 109#if defined TREE_CODE 110extern void m68hc11_init_cumulative_args (CUMULATIVE_ARGS*, tree, rtx); 111 112extern rtx m68hc11_function_arg (const CUMULATIVE_ARGS* , 113 enum machine_mode, 114 tree, int); 115extern int m68hc11_function_arg_padding (enum machine_mode, tree); 116 117extern void m68hc11_function_epilogue (FILE*,int); 118 119extern int m68hc11_is_far_symbol (rtx); 120extern int m68hc11_is_trap_symbol (rtx); 121extern int m68hc11_page0_symbol_p (rtx x); 122 123#endif /* TREE_CODE */ 124 125extern HOST_WIDE_INT m68hc11_min_offset; 126extern HOST_WIDE_INT m68hc11_max_offset; 127extern int m68hc11_addr_mode; 128 129#endif /* HAVE_MACHINE_MODES */ 130#endif /* RTX_CODE */ 131 132