]>
Commit | Line | Data |
---|---|---|
80920132 | 1 | /* Definitions of target machine for GNU compiler, for Xilinx MicroBlaze. |
aeee4812 | 2 | Copyright (C) 2009-2023 Free Software Foundation, Inc. |
80920132 ME |
3 | |
4 | This file is part of GCC. | |
5 | ||
6 | Contributed by Michael Eager <eager@eagercon.com>. | |
7 | ||
8 | GCC is free software; you can redistribute it and/or modify it | |
9 | under the terms of the GNU General Public License as published | |
10 | by the Free Software Foundation; either version 3, or (at your | |
11 | option) any later version. | |
12 | ||
13 | GCC is distributed in the hope that it will be useful, but WITHOUT | |
14 | ANY WARRANTY; without even the implied warranty of MERCHANTABILITY | |
15 | or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public | |
16 | License for more details. | |
17 | ||
18 | You should have received a copy of the GNU General Public License | |
19 | along with GCC; see the file COPYING3. If not see | |
20 | <http://www.gnu.org/licenses/>. */ | |
21 | ||
22 | #ifndef GCC_MICROBLAZE_PROTOS_H | |
23 | #define GCC_MICROBLAZE_PROTOS_H | |
24 | ||
25 | #ifdef RTX_CODE | |
26 | extern int pic_address_needs_scratch (rtx); | |
af1682fc | 27 | extern bool microblaze_constant_address_p (rtx x); |
80920132 ME |
28 | extern void expand_block_move (rtx *); |
29 | extern void microblaze_expand_prologue (void); | |
30 | extern void microblaze_expand_epilogue (void); | |
31 | extern void override_options (void); | |
32 | extern int microblaze_expand_shift (rtx *); | |
ef4bddc2 | 33 | extern bool microblaze_expand_move (machine_mode, rtx *); |
80920132 ME |
34 | extern bool microblaze_expand_block_move (rtx, rtx, rtx, rtx); |
35 | extern void microblaze_expand_divide (rtx *); | |
2bdf1dd5 | 36 | extern void microblaze_expand_conditional_branch (machine_mode, rtx *); |
b8506a8a | 37 | extern void microblaze_expand_conditional_branch_reg (machine_mode, rtx *); |
80920132 ME |
38 | extern void microblaze_expand_conditional_branch_sf (rtx *); |
39 | extern int microblaze_can_use_return_insn (void); | |
80920132 ME |
40 | extern void print_operand (FILE *, rtx, int); |
41 | extern void print_operand_address (FILE *, rtx); | |
42 | extern void init_cumulative_args (CUMULATIVE_ARGS *,tree, rtx); | |
ef4bddc2 | 43 | extern bool microblaze_legitimate_address_p (machine_mode, rtx, bool); |
ee61ea38 | 44 | extern int microblaze_is_interrupt_variant (void); |
86498dba AA |
45 | extern int microblaze_is_break_handler (void); |
46 | extern int microblaze_break_function_p (tree func); | |
80920132 | 47 | extern rtx microblaze_return_addr (int, rtx); |
ef4bddc2 RS |
48 | extern int simple_memory_operand (rtx, machine_mode); |
49 | extern int double_memory_operand (rtx, machine_mode); | |
86498dba | 50 | extern void microblaze_order_regs_for_local_alloc (void); |
80920132 ME |
51 | extern int microblaze_regno_ok_for_base_p (int, int); |
52 | extern HOST_WIDE_INT microblaze_initial_elimination_offset (int, int); | |
53 | extern void microblaze_declare_object (FILE *, const char *, const char *, | |
54 | const char *, int); | |
a8781821 | 55 | extern void microblaze_asm_output_ident (const char *); |
91c4e421 | 56 | extern int microblaze_legitimate_pic_operand (rtx); |
8cc9a5a5 EI |
57 | extern bool microblaze_tls_referenced_p (rtx); |
58 | extern int symbol_mentioned_p (rtx); | |
59 | extern int label_mentioned_p (rtx); | |
ef4bddc2 | 60 | extern bool microblaze_cannot_force_const_mem (machine_mode, rtx); |
b69195a0 | 61 | extern void microblaze_eh_return (rtx op0); |
80920132 ME |
62 | #endif /* RTX_CODE */ |
63 | ||
e53b6e56 | 64 | /* Declare functions in microblaze-c.cc. */ |
80920132 ME |
65 | extern void microblaze_cpp_define (struct cpp_reader *); |
66 | ||
67 | #endif /* GCC_MICROBLAZE_PROTOS_H */ |