Commit aa388f29 by Richard Henderson Committed by Richard Henderson

builtins.c, [...]: Include tm_p.h.

        * builtins.c, dbxout.c, varasm.c: Include tm_p.h.

        * alpha/alpha.c (print_operand): Fix type of `code'.
        (alpha_output_filename): Constify.
        * alpha/alpha.h: Move all function declarations ...
        * alpha/alpha-protos.h: ... here.  New file.
        * alpha/elf.h (CONST_SECTION_FUNCTION): Prototype the function.
        (SECTION_FUNCTION_TEMPLATE): Likewise.

From-SVN: r29614
parent 1c0290ea
Thu Sep 23 05:32:06 1999 Richard Henderson <rth@cygnus.com>
* builtins.c, dbxout.c, varasm.c: Include tm_p.h.
* alpha/alpha.c (print_operand): Fix type of `code'.
(alpha_output_filename): Constify.
* alpha/alpha.h: Move all function declarations ...
* alpha/alpha-protos.h: ... here. New file.
* alpha/elf.h (CONST_SECTION_FUNCTION): Prototype the function.
(SECTION_FUNCTION_TEMPLATE): Likewise.
Thu Sep 23 11:15:36 1999 Bernd Schmidt <bernds@cygnus.co.uk> Thu Sep 23 11:15:36 1999 Bernd Schmidt <bernds@cygnus.co.uk>
* expmed.c (do_cmp_and_jump): Pass ccp_jump to can_compare_p. * expmed.c (do_cmp_and_jump): Pass ccp_jump to can_compare_p.
......
...@@ -38,6 +38,7 @@ Boston, MA 02111-1307, USA. */ ...@@ -38,6 +38,7 @@ Boston, MA 02111-1307, USA. */
#include "typeclass.h" #include "typeclass.h"
#include "defaults.h" #include "defaults.h"
#include "toplev.h" #include "toplev.h"
#include "tm_p.h"
#define CALLED_AS_BUILT_IN(NODE) \ #define CALLED_AS_BUILT_IN(NODE) \
(!strncmp (IDENTIFIER_POINTER (DECL_NAME (NODE)), "__builtin_", 10)) (!strncmp (IDENTIFIER_POINTER (DECL_NAME (NODE)), "__builtin_", 10))
......
/* Prototypes for alpha.c functions used in the md file & elsewhere.
Copyright (C) 1999 Free Software Foundation, Inc.
This file is part of GNU CC.
GNU CC 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 version.
GNU CC 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 GNU CC; see the file COPYING. If not, write to
the Free Software Foundation, 59 Temple Place - Suite 330,
Boston, MA 02111-1307, USA. */
extern void override_options PROTO ((void));
extern int zap_mask PROTO ((HOST_WIDE_INT));
extern int direct_return PROTO ((void));
extern int alpha_sa_size PROTO ((void));
extern int alpha_pv_save_size PROTO ((void));
extern int alpha_using_fp PROTO ((void));
extern void alpha_write_verstamp PROTO ((FILE *));
extern void alpha_expand_prologue PROTO ((void));
extern void output_end_prologue PROTO ((FILE *));
extern void alpha_expand_epilogue PROTO ((void));
extern void alpha_output_filename PROTO ((FILE *, const char *));
extern void alpha_output_lineno PROTO ((FILE *, int));
#ifdef RTX_CODE
extern int reg_or_0_operand PROTO ((rtx, enum machine_mode));
extern int reg_or_6bit_operand PROTO ((rtx, enum machine_mode));
extern int reg_or_8bit_operand PROTO ((rtx, enum machine_mode));
extern int cint8_operand PROTO ((rtx, enum machine_mode));
extern int add_operand PROTO ((rtx, enum machine_mode));
extern int sext_add_operand PROTO ((rtx, enum machine_mode));
extern int const48_operand PROTO ((rtx, enum machine_mode));
extern int and_operand PROTO ((rtx, enum machine_mode));
extern int or_operand PROTO ((rtx, enum machine_mode));
extern int mode_width_operand PROTO ((rtx, enum machine_mode));
extern int mode_mask_operand PROTO ((rtx, enum machine_mode));
extern int mul8_operand PROTO ((rtx, enum machine_mode));
extern int fp0_operand PROTO ((rtx, enum machine_mode));
extern int reg_or_fp0_operand PROTO ((rtx, enum machine_mode));
extern int hard_fp_register_operand PROTO ((rtx, enum machine_mode));
extern int reg_or_cint_operand PROTO ((rtx, enum machine_mode));
extern int some_operand PROTO ((rtx, enum machine_mode));
extern int input_operand PROTO ((rtx, enum machine_mode));
extern int current_file_function_operand PROTO ((rtx, enum machine_mode));
extern int call_operand PROTO ((rtx, enum machine_mode));
extern int alpha_comparison_operator PROTO ((rtx, enum machine_mode));
extern int alpha_swapped_comparison_operator PROTO ((rtx, enum machine_mode));
extern int signed_comparison_operator PROTO ((rtx, enum machine_mode));
extern int divmod_operator PROTO ((rtx, enum machine_mode));
extern int aligned_memory_operand PROTO ((rtx, enum machine_mode));
extern int unaligned_memory_operand PROTO ((rtx, enum machine_mode));
extern int reg_or_unaligned_mem_operand PROTO ((rtx, enum machine_mode));
extern int any_memory_operand PROTO ((rtx, enum machine_mode));
extern int reg_not_elim_operand PROTO ((rtx, enum machine_mode));
extern int normal_memory_operand PROTO ((rtx, enum machine_mode));
extern int reg_no_subreg_operand PROTO ((rtx, enum machine_mode));
extern void get_aligned_mem PROTO ((rtx, rtx *, rtx *));
extern rtx get_unaligned_address PROTO ((rtx, int));
extern void alpha_set_memflags PROTO ((rtx, rtx));
extern rtx alpha_emit_set_const PROTO ((rtx, enum machine_mode,
HOST_WIDE_INT, int));
extern rtx alpha_emit_set_long_const PROTO ((rtx, HOST_WIDE_INT,
HOST_WIDE_INT));
extern rtx alpha_emit_conditional_branch PROTO ((enum rtx_code));
extern rtx alpha_emit_conditional_move PROTO ((rtx, enum machine_mode));
extern void alpha_expand_unaligned_load PROTO ((rtx, rtx, HOST_WIDE_INT,
HOST_WIDE_INT, int));
extern void alpha_expand_unaligned_store PROTO ((rtx, rtx, HOST_WIDE_INT,
HOST_WIDE_INT));
extern int alpha_expand_block_move PROTO ((rtx []));
extern int alpha_expand_block_clear PROTO ((rtx []));
extern int alpha_adjust_cost PROTO ((rtx, rtx, rtx, int));
extern rtx alpha_return_addr PROTO ((int, rtx));
extern void print_operand PROTO ((FILE *, rtx, int));
extern void print_operand_address PROTO ((FILE *, rtx));
extern void alpha_initialize_trampoline PROTO ((rtx, rtx, rtx, int, int, int));
extern void alpha_reorg PROTO ((rtx));
#endif /* RTX_CODE */
#ifdef REAL_VALUE_TYPE
extern int check_float_value PROTO ((enum machine_mode,
REAL_VALUE_TYPE *, int));
#endif
#if OPEN_VMS
#ifdef HAVE_MACHINE_MODES
extern enum avms_arg_type alpha_arg_type PROTO ((enum machine_mode));
#endif
extern rtx alpha_arg_info_reg_val PROTO ((CUMULATIVE_ARGS));
extern void alpha_write_linkage PROTO ((FILE *));
#endif /* OPEN_VMS */
extern void alpha_need_linkage PROTO ((char *, int));
#ifdef TREE_CODE
extern tree alpha_build_va_list PROTO ((void));
#ifdef RTX_CODE
extern void alpha_va_start PROTO ((int, tree, rtx));
extern rtx alpha_va_arg PROTO ((tree, tree));
#endif
extern int vms_valid_decl_attribute_p PROTO ((tree, tree, tree, tree));
extern void alpha_start_function PROTO ((FILE *, char *, tree));
extern void alpha_end_function PROTO ((FILE *, char *, tree));
#endif /* TREE CODE */
...@@ -41,6 +41,7 @@ Boston, MA 02111-1307, USA. */ ...@@ -41,6 +41,7 @@ Boston, MA 02111-1307, USA. */
#include "function.h" #include "function.h"
#include "toplev.h" #include "toplev.h"
#include "ggc.h" #include "ggc.h"
#include "tm_p.h"
/* External data. */ /* External data. */
extern char *version_string; extern char *version_string;
...@@ -2642,7 +2643,7 @@ void ...@@ -2642,7 +2643,7 @@ void
print_operand (file, x, code) print_operand (file, x, code)
FILE *file; FILE *file;
rtx x; rtx x;
char code; int code;
{ {
int i; int i;
...@@ -4149,7 +4150,7 @@ long alpha_auto_offset; ...@@ -4149,7 +4150,7 @@ long alpha_auto_offset;
void void
alpha_output_filename (stream, name) alpha_output_filename (stream, name)
FILE *stream; FILE *stream;
char *name; const char *name;
{ {
static int first_time = TRUE; static int first_time = TRUE;
char ltext_label_name[100]; char ltext_label_name[100];
...@@ -5186,7 +5187,7 @@ alpha_arg_type (mode) ...@@ -5186,7 +5187,7 @@ alpha_arg_type (mode)
/* Return an rtx for an integer representing the VMS Argument Information /* Return an rtx for an integer representing the VMS Argument Information
register value. */ register value. */
struct rtx_def * rtx
alpha_arg_info_reg_val (cum) alpha_arg_info_reg_val (cum)
CUMULATIVE_ARGS cum; CUMULATIVE_ARGS cum;
{ {
......
...@@ -351,7 +351,6 @@ extern const char *alpha_mlat_string; /* For -mmemory-latency= */ ...@@ -351,7 +351,6 @@ extern const char *alpha_mlat_string; /* For -mmemory-latency= */
On the Alpha, it is used to translate target-option strings into On the Alpha, it is used to translate target-option strings into
numeric values. */ numeric values. */
extern void override_options ();
#define OVERRIDE_OPTIONS override_options () #define OVERRIDE_OPTIONS override_options ()
...@@ -795,7 +794,6 @@ enum reg_class { NO_REGS, GENERAL_REGS, FLOAT_REGS, ALL_REGS, ...@@ -795,7 +794,6 @@ enum reg_class { NO_REGS, GENERAL_REGS, FLOAT_REGS, ALL_REGS,
: (C) == 'S' ? (GET_CODE (OP) == CONST_INT \ : (C) == 'S' ? (GET_CODE (OP) == CONST_INT \
&& (unsigned HOST_WIDE_INT) INTVAL (OP) < 64) \ && (unsigned HOST_WIDE_INT) INTVAL (OP) < 64) \
: 0) : 0)
extern int normal_memory_operand ();
/* Given an rtx X being reloaded into a reg required to be /* Given an rtx X being reloaded into a reg required to be
in class CLASS, return the class of reg to actually use. in class CLASS, return the class of reg to actually use.
...@@ -1188,10 +1186,6 @@ extern int alpha_memory_latency; ...@@ -1188,10 +1186,6 @@ extern int alpha_memory_latency;
where the output has been placed if it can be done and the insns have been where the output has been placed if it can be done and the insns have been
emitted. If it would take more than N insns, zero is returned and no emitted. If it would take more than N insns, zero is returned and no
insns and emitted. */ insns and emitted. */
extern struct rtx_def *alpha_emit_set_const ();
extern struct rtx_def *alpha_emit_set_long_const ();
extern struct rtx_def *alpha_emit_conditional_branch ();
extern struct rtx_def *alpha_emit_conditional_move ();
/* Define the information needed to generate branch and scc insns. This is /* Define the information needed to generate branch and scc insns. This is
stored from the compare operation. Note that we can't use "rtx" here stored from the compare operation. Note that we can't use "rtx" here
...@@ -1218,7 +1212,6 @@ struct machine_function ...@@ -1218,7 +1212,6 @@ struct machine_function
/* Make (or fake) .linkage entry for function call. /* Make (or fake) .linkage entry for function call.
IS_LOCAL is 0 if name is used in call, 1 if name is used in definition. */ IS_LOCAL is 0 if name is used in call, 1 if name is used in definition. */
extern void alpha_need_linkage ();
/* This macro defines the start of an assembly comment. */ /* This macro defines the start of an assembly comment. */
...@@ -1228,18 +1221,15 @@ extern void alpha_need_linkage (); ...@@ -1228,18 +1221,15 @@ extern void alpha_need_linkage ();
#define ASM_DECLARE_FUNCTION_NAME(FILE,NAME,DECL) \ #define ASM_DECLARE_FUNCTION_NAME(FILE,NAME,DECL) \
alpha_start_function(FILE,NAME,DECL); alpha_start_function(FILE,NAME,DECL);
extern void alpha_start_function ();
/* This macro closes up a function definition for the assembler. */ /* This macro closes up a function definition for the assembler. */
#define ASM_DECLARE_FUNCTION_SIZE(FILE,NAME,DECL) \ #define ASM_DECLARE_FUNCTION_SIZE(FILE,NAME,DECL) \
alpha_end_function(FILE,NAME,DECL) alpha_end_function(FILE,NAME,DECL)
extern void alpha_end_function ();
/* This macro notes the end of the prologue. */ /* This macro notes the end of the prologue. */
#define FUNCTION_END_PROLOGUE(FILE) output_end_prologue (FILE) #define FUNCTION_END_PROLOGUE(FILE) output_end_prologue (FILE)
extern void output_end_prologue ();
/* Output any profiling code before the prologue. */ /* Output any profiling code before the prologue. */
...@@ -1327,7 +1317,6 @@ do { \ ...@@ -1327,7 +1317,6 @@ do { \
#define INITIALIZE_TRAMPOLINE(TRAMP, FNADDR, CXT) \ #define INITIALIZE_TRAMPOLINE(TRAMP, FNADDR, CXT) \
alpha_initialize_trampoline (TRAMP, FNADDR, CXT, 16, 24, 8) alpha_initialize_trampoline (TRAMP, FNADDR, CXT, 16, 24, 8)
extern void alpha_initialize_trampoline ();
/* A C expression whose value is RTL representing the value of the return /* A C expression whose value is RTL representing the value of the return
address for the frame COUNT steps up from the current frame. address for the frame COUNT steps up from the current frame.
...@@ -1335,7 +1324,6 @@ extern void alpha_initialize_trampoline (); ...@@ -1335,7 +1324,6 @@ extern void alpha_initialize_trampoline ();
the COUNT-1 frame if RETURN_ADDR_IN_PREVIOUS_FRAME is defined. */ the COUNT-1 frame if RETURN_ADDR_IN_PREVIOUS_FRAME is defined. */
#define RETURN_ADDR_RTX alpha_return_addr #define RETURN_ADDR_RTX alpha_return_addr
extern struct rtx_def *alpha_return_addr ();
/* Before the prologue, RA lives in $26. */ /* Before the prologue, RA lives in $26. */
#define INCOMING_RETURN_ADDR_RTX gen_rtx_REG (Pmode, 26) #define INCOMING_RETURN_ADDR_RTX gen_rtx_REG (Pmode, 26)
...@@ -2401,11 +2389,9 @@ extern long alpha_auto_offset; ...@@ -2401,11 +2389,9 @@ extern long alpha_auto_offset;
#define ASM_OUTPUT_SOURCE_LINE(STREAM, LINE) \ #define ASM_OUTPUT_SOURCE_LINE(STREAM, LINE) \
alpha_output_lineno (STREAM, LINE) alpha_output_lineno (STREAM, LINE)
extern void alpha_output_lineno ();
#define ASM_OUTPUT_SOURCE_FILENAME(STREAM, NAME) \ #define ASM_OUTPUT_SOURCE_FILENAME(STREAM, NAME) \
alpha_output_filename (STREAM, NAME) alpha_output_filename (STREAM, NAME)
extern void alpha_output_filename ();
/* mips-tfile.c limits us to strings of one page. We must underestimate this /* mips-tfile.c limits us to strings of one page. We must underestimate this
number, because the real length runs past this up to the next number, because the real length runs past this up to the next
...@@ -2514,55 +2500,3 @@ do { \ ...@@ -2514,55 +2500,3 @@ do { \
/* The system headers under Alpha systems are generally C++-aware. */ /* The system headers under Alpha systems are generally C++-aware. */
#define NO_IMPLICIT_EXTERN_C #define NO_IMPLICIT_EXTERN_C
/* Prototypes for alpha.c functions used in the md file & elsewhere. */
extern struct rtx_def *get_unaligned_address ();
extern void alpha_write_verstamp ();
extern void alpha_reorg ();
extern int check_float_value ();
extern int direct_return ();
extern int const48_operand ();
extern int add_operand ();
extern int and_operand ();
extern int unaligned_memory_operand ();
extern int zap_mask ();
extern int current_file_function_operand ();
extern int alpha_sa_size ();
extern int alpha_adjust_cost ();
extern void print_operand ();
extern void print_operand_address ();
extern int reg_or_0_operand ();
extern int reg_or_8bit_operand ();
extern int mul8_operand ();
extern int reg_or_6bit_operand ();
extern int alpha_comparison_operator ();
extern int alpha_swapped_comparison_operator ();
extern int sext_add_operand ();
extern int cint8_operand ();
extern int mode_mask_operand ();
extern int or_operand ();
extern int mode_width_operand ();
extern int reg_or_fp0_operand ();
extern int signed_comparison_operator ();
extern int fp0_operand ();
extern int some_operand ();
extern int input_operand ();
extern int divmod_operator ();
extern int call_operand ();
extern int reg_or_cint_operand ();
extern int hard_fp_register_operand ();
extern int reg_not_elim_operand ();
extern int normal_memory_operand ();
extern int reg_no_subreg_operand ();
extern void alpha_set_memflags ();
extern int aligned_memory_operand ();
extern void get_aligned_mem ();
extern void alpha_expand_unaligned_load ();
extern void alpha_expand_unaligned_store ();
extern int alpha_expand_block_move ();
extern int alpha_expand_block_clear ();
extern void alpha_expand_prologue ();
extern void alpha_expand_epilogue ();
extern union tree_node *alpha_build_va_list ();
extern void alpha_va_start ();
extern struct rtx_def *alpha_va_arg ();
...@@ -271,6 +271,7 @@ do { \ ...@@ -271,6 +271,7 @@ do { \
extern void text_section (); extern void text_section ();
#define CONST_SECTION_FUNCTION \ #define CONST_SECTION_FUNCTION \
void const_section PROTO ((void)); \
void \ void \
const_section () \ const_section () \
{ \ { \
...@@ -284,6 +285,7 @@ const_section () \ ...@@ -284,6 +285,7 @@ const_section () \
} }
#define SECTION_FUNCTION_TEMPLATE(FN, ENUM, OP) \ #define SECTION_FUNCTION_TEMPLATE(FN, ENUM, OP) \
void FN PROTO ((void)); \
void FN () \ void FN () \
{ \ { \
if (in_section != ENUM) \ if (in_section != ENUM) \
......
...@@ -80,6 +80,7 @@ Boston, MA 02111-1307, USA. */ ...@@ -80,6 +80,7 @@ Boston, MA 02111-1307, USA. */
#include "output.h" /* ASM_OUTPUT_SOURCE_LINE may refer to sdb functions. */ #include "output.h" /* ASM_OUTPUT_SOURCE_LINE may refer to sdb functions. */
#include "dbxout.h" #include "dbxout.h"
#include "toplev.h" #include "toplev.h"
#include "tm_p.h"
#ifdef XCOFF_DEBUGGING_INFO #ifdef XCOFF_DEBUGGING_INFO
#include "xcoffout.h" #include "xcoffout.h"
......
...@@ -42,10 +42,10 @@ Boston, MA 02111-1307, USA. */ ...@@ -42,10 +42,10 @@ Boston, MA 02111-1307, USA. */
#include "toplev.h" #include "toplev.h"
#include "dbxout.h" #include "dbxout.h"
#include "sdbout.h" #include "sdbout.h"
#include "obstack.h" #include "obstack.h"
#include "c-pragma.h" #include "c-pragma.h"
#include "ggc.h" #include "ggc.h"
#include "tm_p.h"
#ifdef XCOFF_DEBUGGING_INFO #ifdef XCOFF_DEBUGGING_INFO
#include "xcoffout.h" #include "xcoffout.h"
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment