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>
* expmed.c (do_cmp_and_jump): Pass ccp_jump to can_compare_p.
......
......@@ -38,6 +38,7 @@ Boston, MA 02111-1307, USA. */
#include "typeclass.h"
#include "defaults.h"
#include "toplev.h"
#include "tm_p.h"
#define CALLED_AS_BUILT_IN(NODE) \
(!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. */
#include "function.h"
#include "toplev.h"
#include "ggc.h"
#include "tm_p.h"
/* External data. */
extern char *version_string;
......@@ -2642,7 +2643,7 @@ void
print_operand (file, x, code)
FILE *file;
rtx x;
char code;
int code;
{
int i;
......@@ -4149,7 +4150,7 @@ long alpha_auto_offset;
void
alpha_output_filename (stream, name)
FILE *stream;
char *name;
const char *name;
{
static int first_time = TRUE;
char ltext_label_name[100];
......@@ -5186,7 +5187,7 @@ alpha_arg_type (mode)
/* Return an rtx for an integer representing the VMS Argument Information
register value. */
struct rtx_def *
rtx
alpha_arg_info_reg_val (cum)
CUMULATIVE_ARGS cum;
{
......
......@@ -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
numeric values. */
extern void override_options ();
#define OVERRIDE_OPTIONS override_options ()
......@@ -795,7 +794,6 @@ enum reg_class { NO_REGS, GENERAL_REGS, FLOAT_REGS, ALL_REGS,
: (C) == 'S' ? (GET_CODE (OP) == CONST_INT \
&& (unsigned HOST_WIDE_INT) INTVAL (OP) < 64) \
: 0)
extern int normal_memory_operand ();
/* Given an rtx X being reloaded into a reg required to be
in class CLASS, return the class of reg to actually use.
......@@ -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
emitted. If it would take more than N insns, zero is returned and no
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
stored from the compare operation. Note that we can't use "rtx" here
......@@ -1218,7 +1212,6 @@ struct machine_function
/* 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. */
extern void alpha_need_linkage ();
/* This macro defines the start of an assembly comment. */
......@@ -1228,18 +1221,15 @@ extern void alpha_need_linkage ();
#define ASM_DECLARE_FUNCTION_NAME(FILE,NAME,DECL) \
alpha_start_function(FILE,NAME,DECL);
extern void alpha_start_function ();
/* This macro closes up a function definition for the assembler. */
#define ASM_DECLARE_FUNCTION_SIZE(FILE,NAME,DECL) \
alpha_end_function(FILE,NAME,DECL)
extern void alpha_end_function ();
/* This macro notes the end of the prologue. */
#define FUNCTION_END_PROLOGUE(FILE) output_end_prologue (FILE)
extern void output_end_prologue ();
/* Output any profiling code before the prologue. */
......@@ -1327,7 +1317,6 @@ do { \
#define INITIALIZE_TRAMPOLINE(TRAMP, FNADDR, CXT) \
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
address for the frame COUNT steps up from the current frame.
......@@ -1335,7 +1324,6 @@ extern void alpha_initialize_trampoline ();
the COUNT-1 frame if RETURN_ADDR_IN_PREVIOUS_FRAME is defined. */
#define RETURN_ADDR_RTX alpha_return_addr
extern struct rtx_def *alpha_return_addr ();
/* Before the prologue, RA lives in $26. */
#define INCOMING_RETURN_ADDR_RTX gen_rtx_REG (Pmode, 26)
......@@ -2401,11 +2389,9 @@ extern long alpha_auto_offset;
#define ASM_OUTPUT_SOURCE_LINE(STREAM, LINE) \
alpha_output_lineno (STREAM, LINE)
extern void alpha_output_lineno ();
#define ASM_OUTPUT_SOURCE_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
number, because the real length runs past this up to the next
......@@ -2514,55 +2500,3 @@ do { \
/* The system headers under Alpha systems are generally C++-aware. */
#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 ();
......@@ -270,27 +270,29 @@ do { \
extern void text_section ();
#define CONST_SECTION_FUNCTION \
void \
const_section () \
{ \
if (!USE_CONST_SECTION) \
text_section(); \
else if (in_section != in_const) \
{ \
fprintf (asm_out_file, "%s\n", CONST_SECTION_ASM_OP); \
in_section = in_const; \
} \
#define CONST_SECTION_FUNCTION \
void const_section PROTO ((void)); \
void \
const_section () \
{ \
if (!USE_CONST_SECTION) \
text_section(); \
else if (in_section != in_const) \
{ \
fprintf (asm_out_file, "%s\n", CONST_SECTION_ASM_OP); \
in_section = in_const; \
} \
}
#define SECTION_FUNCTION_TEMPLATE(FN, ENUM, OP) \
void FN () \
{ \
if (in_section != ENUM) \
{ \
fprintf (asm_out_file, "%s\n", OP); \
in_section = ENUM; \
} \
#define SECTION_FUNCTION_TEMPLATE(FN, ENUM, OP) \
void FN PROTO ((void)); \
void FN () \
{ \
if (in_section != ENUM) \
{ \
fprintf (asm_out_file, "%s\n", OP); \
in_section = ENUM; \
} \
}
......
......@@ -80,6 +80,7 @@ Boston, MA 02111-1307, USA. */
#include "output.h" /* ASM_OUTPUT_SOURCE_LINE may refer to sdb functions. */
#include "dbxout.h"
#include "toplev.h"
#include "tm_p.h"
#ifdef XCOFF_DEBUGGING_INFO
#include "xcoffout.h"
......
......@@ -42,10 +42,10 @@ Boston, MA 02111-1307, USA. */
#include "toplev.h"
#include "dbxout.h"
#include "sdbout.h"
#include "obstack.h"
#include "c-pragma.h"
#include "ggc.h"
#include "tm_p.h"
#ifdef XCOFF_DEBUGGING_INFO
#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