]> gcc.gnu.org Git - gcc.git/blame - gcc/config/sparc/sparc-protos.h
sparc-protos.h (sparc_va_arg): Remove.
[gcc.git] / gcc / config / sparc / sparc-protos.h
CommitLineData
6a151f87 1/* Prototypes of target machine for SPARC.
3e2cc1d1 2 Copyright (C) 1999, 2000, 2003, 2004 Free Software Foundation, Inc.
b1474bb7 3 Contributed by Michael Tiemann (tiemann@cygnus.com).
6a151f87 4 64-bit SPARC-V9 support by Michael Tiemann, Jim Wilson, and Doug Evans,
b1474bb7
KG
5 at Cygnus Support.
6
de0a398e 7This file is part of GCC.
b1474bb7 8
de0a398e 9GCC is free software; you can redistribute it and/or modify
b1474bb7
KG
10it under the terms of the GNU General Public License as published by
11the Free Software Foundation; either version 2, or (at your option)
12any later version.
13
de0a398e 14GCC is distributed in the hope that it will be useful,
b1474bb7
KG
15but WITHOUT ANY WARRANTY; without even the implied warranty of
16MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
17GNU General Public License for more details.
18
19You should have received a copy of the GNU General Public License
de0a398e 20along with GCC; see the file COPYING. If not, write to
b1474bb7
KG
21the Free Software Foundation, 59 Temple Place - Suite 330,
22Boston, MA 02111-1307, USA. */
23
24#ifndef __SPARC_PROTOS_H__
25#define __SPARC_PROTOS_H__
26
27#ifdef TREE_CODE
e80d5f80
KG
28extern struct rtx_def *function_value (tree, enum machine_mode, int);
29extern void function_arg_advance (CUMULATIVE_ARGS *,
30 enum machine_mode, tree, int);
31extern struct rtx_def *function_arg (const CUMULATIVE_ARGS *,
32 enum machine_mode, tree, int, int);
33extern int function_arg_partial_nregs (const CUMULATIVE_ARGS *,
34 enum machine_mode, tree, int);
35extern int function_arg_pass_by_reference (const CUMULATIVE_ARGS *,
36 enum machine_mode, tree, int);
b1474bb7 37#ifdef RTX_CODE
e80d5f80
KG
38extern void init_cumulative_args (CUMULATIVE_ARGS *, tree, rtx, tree);
39extern void sparc_va_start (tree, rtx);
b1474bb7 40#endif
e80d5f80 41extern unsigned long sparc_type_code (tree);
b1474bb7
KG
42#ifdef ARGS_SIZE_RTX
43/* expr.h defines ARGS_SIZE_RTX and `enum direction' */
e80d5f80 44extern enum direction function_arg_padding (enum machine_mode, tree);
b1474bb7
KG
45#endif /* ARGS_SIZE_RTX */
46#endif /* TREE_CODE */
47
e80d5f80 48extern void order_regs_for_local_alloc (void);
9ac617d4
EB
49extern HOST_WIDE_INT sparc_compute_frame_size (HOST_WIDE_INT, int);
50extern void sparc_expand_prologue (void);
51extern void sparc_expand_epilogue (void);
e80d5f80
KG
52extern int check_pic (int);
53extern int short_branch (int, int);
e80d5f80
KG
54extern void sparc_profile_hook (int);
55extern void sparc_override_options (void);
e80d5f80 56extern void sparc_output_scratch_registers (FILE *);
b1474bb7
KG
57
58#ifdef RTX_CODE
e80d5f80 59extern enum machine_mode select_cc_mode (enum rtx_code, rtx, rtx);
b1474bb7 60/* Define the function that build the compare insn for scc and bcc. */
e80d5f80
KG
61extern rtx gen_compare_reg (enum rtx_code code, rtx, rtx);
62extern void sparc_emit_float_lib_cmp (rtx, rtx, enum rtx_code);
b178305d
EB
63extern void sparc_emit_floatunsdi (rtx [2], enum machine_mode);
64extern void sparc_emit_fixunsdi (rtx [2], enum machine_mode);
e80d5f80
KG
65extern void emit_tfmode_binop (enum rtx_code, rtx *);
66extern void emit_tfmode_unop (enum rtx_code, rtx *);
67extern void emit_tfmode_cvt (enum rtx_code, rtx *);
b1474bb7 68/* This function handles all v9 scc insns */
e80d5f80
KG
69extern int gen_v9_scc (enum rtx_code, rtx *);
70extern void sparc_initialize_trampoline (rtx, rtx, rtx);
71extern void sparc64_initialize_trampoline (rtx, rtx, rtx);
5751a10b
JJ
72extern bool legitimate_constant_p (rtx);
73extern bool constant_address_p (rtx);
74extern bool legitimate_pic_operand_p (rtx);
75extern int legitimate_address_p (enum machine_mode, rtx, int);
e80d5f80 76extern rtx legitimize_pic_address (rtx, enum machine_mode, rtx);
5751a10b
JJ
77extern rtx legitimize_tls_address (rtx);
78extern rtx legitimize_address (rtx, rtx, enum machine_mode);
e80d5f80
KG
79extern void sparc_defer_case_vector (rtx, rtx, int);
80extern void sparc_emit_set_const32 (rtx, rtx);
81extern void sparc_emit_set_const64 (rtx, rtx);
82extern void sparc_emit_set_symbolic_const64 (rtx, rtx, rtx);
83extern int sparc_splitdi_legitimate (rtx, rtx);
84extern int sparc_absnegfloat_split_legitimate (rtx, rtx);
a6163c22 85extern const char *output_cbranch (rtx, rtx, int, int, int, int, rtx);
9ac617d4 86extern const char *output_return (rtx);
e80d5f80 87extern const char *output_sibcall (rtx, rtx);
a6163c22
EB
88extern const char *output_v8plus_shift (rtx *, rtx, const char *);
89extern const char *output_v9branch (rtx, rtx, int, int, int, int, int, rtx);
e80d5f80
KG
90extern void emit_v9_brxx_insn (enum rtx_code, rtx, rtx);
91extern void print_operand (FILE *, rtx, int);
92extern int mems_ok_for_ldd_peep (rtx, rtx, rtx);
93extern int arith_double_4096_operand (rtx, enum machine_mode);
94extern int arith_4096_operand (rtx, enum machine_mode);
95extern int zero_operand (rtx, enum machine_mode);
96extern int fp_zero_operand (rtx, enum machine_mode);
97extern int reg_or_0_operand (rtx, enum machine_mode);
5751a10b 98extern int tls_symbolic_operand (rtx);
e80d5f80 99extern int empty_delay_slot (rtx);
9ac617d4 100extern int eligible_for_return_delay (rtx);
e80d5f80 101extern int eligible_for_sibcall_delay (rtx);
5751a10b 102extern int tls_call_delay (rtx);
e80d5f80
KG
103extern int emit_move_sequence (rtx, enum machine_mode);
104extern int fp_sethi_p (rtx);
105extern int fp_mov_p (rtx);
106extern int fp_high_losum_p (rtx);
107extern int mem_min_alignment (rtx, int);
108extern int pic_address_needs_scratch (rtx);
109extern int reg_unused_after (rtx, rtx);
110extern int register_ok_for_ldd (rtx);
111extern int registers_ok_for_ldd_peep (rtx, rtx);
e80d5f80 112extern int v9_regcmp_p (enum rtx_code);
b1474bb7
KG
113/* Function used for V8+ code generation. Returns 1 if the high
114 32 bits of REG are 0 before INSN. */
e80d5f80
KG
115extern int sparc_check_64 (rtx, rtx);
116extern rtx gen_df_reg (rtx, int);
117extern int sparc_extra_constraint_check (rtx, int, int);
5751a10b 118extern void sparc_output_dwarf_dtprel (FILE*, int, rtx);
b1474bb7
KG
119#endif /* RTX_CODE */
120
121#endif /* __SPARC_PROTOS_H__ */
This page took 1.179608 seconds and 5 git commands to generate.