diff options
author | eager <eager@138bc75d-0d04-0410-961f-82ee72b054a4> | 2010-09-30 18:21:57 +0000 |
---|---|---|
committer | eager <eager@138bc75d-0d04-0410-961f-82ee72b054a4> | 2010-09-30 18:21:57 +0000 |
commit | d34b0d1e4502f0a0879adac335534686cc5b550a (patch) | |
tree | 3e6ddc920dca714da86387abe482505839030906 /gcc/config/microblaze/microblaze-protos.h | |
parent | 789e0a776f923336e4d6b5f6cd845157cd0b0ad8 (diff) | |
download | gcc-d34b0d1e4502f0a0879adac335534686cc5b550a.tar.gz |
Check in support for Xilinx MicroBlaze processor.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@164756 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'gcc/config/microblaze/microblaze-protos.h')
-rw-r--r-- | gcc/config/microblaze/microblaze-protos.h | 64 |
1 files changed, 64 insertions, 0 deletions
diff --git a/gcc/config/microblaze/microblaze-protos.h b/gcc/config/microblaze/microblaze-protos.h new file mode 100644 index 00000000000..ca8ca6e8dc3 --- /dev/null +++ b/gcc/config/microblaze/microblaze-protos.h @@ -0,0 +1,64 @@ +/* Definitions of target machine for GNU compiler, for Xilinx MicroBlaze. + Copyright 2009, 2010 Free Software Foundation, Inc. + + This file is part of GCC. + + Contributed by Michael Eager <eager@eagercon.com>. + + 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 3, or (at your + option) any later version. + + GCC is distributed in the hope that it will be useful, but WITHOUT + ANY WARRANTY; without even the implied warranty of MERCHANTABILITY + or 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 COPYING3. If not see + <http://www.gnu.org/licenses/>. */ + +#ifndef GCC_MICROBLAZE_PROTOS_H +#define GCC_MICROBLAZE_PROTOS_H + +#ifdef RTX_CODE +extern int pic_address_needs_scratch (rtx); +extern void expand_block_move (rtx *); +extern void microblaze_expand_prologue (void); +extern void microblaze_expand_epilogue (void); +extern void override_options (void); +extern int microblaze_expand_shift (rtx *); +extern bool microblaze_expand_move (enum machine_mode, rtx *); +extern bool microblaze_expand_block_move (rtx, rtx, rtx, rtx); +extern void microblaze_expand_divide (rtx *); +extern void microblaze_expand_conditional_branch (enum machine_mode, rtx *); +extern void microblaze_expand_conditional_branch_sf (rtx *); +extern int microblaze_can_use_return_insn (void); +extern int microblaze_const_double_ok (rtx, enum machine_mode); +extern void print_operand (FILE *, rtx, int); +extern void print_operand_address (FILE *, rtx); +extern void init_cumulative_args (CUMULATIVE_ARGS *,tree, rtx); +extern bool microblaze_legitimate_address_p (enum machine_mode, rtx, bool); +extern int microblaze_is_interrupt_handler (void); +extern rtx microblaze_return_addr (int, rtx); +extern int simple_memory_operand (rtx, enum machine_mode); +extern int double_memory_operand (rtx, enum machine_mode); + +extern int microblaze_regno_ok_for_base_p (int, int); +extern HOST_WIDE_INT microblaze_initial_elimination_offset (int, int); +extern void microblaze_declare_object (FILE *, const char *, const char *, + const char *, int); +extern void microblaze_asm_output_ident (FILE *, const char *); +#endif /* RTX_CODE */ + +#ifdef TREE_CODE +extern void function_arg_advance (CUMULATIVE_ARGS *, enum machine_mode, + tree, int); +extern rtx function_arg (CUMULATIVE_ARGS *, enum machine_mode, tree, int); +#endif /* TREE_CODE */ + +/* Declare functions in microblaze-c.c. */ +extern void microblaze_cpp_define (struct cpp_reader *); + +#endif /* GCC_MICROBLAZE_PROTOS_H */ |