Commit 441d04c6 by Kaveh R. Ghazi Committed by Kaveh Ghazi

h8300-protos.h: New file.

        * h8300-protos.h: New file.

        * h8300.c: Include tm_p.h.  Add static prototypes.  Fix compile
        time warnings.

        * h8300.h: Move prototypes to h8300-protos.h.  Fix compile time
        warnings.

        * h8300.md: Likewise.

From-SVN: r31426
parent 05b13f59
2000-01-14 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
* h8300-protos.h: New file.
* h8300.c: Include tm_p.h. Add static prototypes. Fix compile
time warnings.
* h8300.h: Move prototypes to h8300-protos.h. Fix compile time
warnings.
* h8300.md: Likewise.
2000-01-14 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
* varasm.c (asm_output_bss): Mark parameters with ATTRIBUTE_UNUSED.
(asm_emit_uninitialised): Likewise.
......
/* Definitions of target machine for GNU compiler.
Hitachi H8/300 version generating coff
Copyright (C) 2000 Free SoftwareFoundation, Inc.
Contributed by Steve Chamberlain (sac@cygnus.com),
Jim Wilson (wilson@cygnus.com), and Doug Evans (dje@cygnus.com).
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. */
/* Declarations for functions used in insn-output.c. */
#ifdef RTX_CODE
extern const char *emit_a_shift PARAMS ((rtx, rtx *));
extern const char *output_adds_subs PARAMS ((rtx *));
extern const char * output_simode_bld PARAMS ((int, int, rtx[]));
extern void print_operand_address PARAMS ((FILE *, rtx));
extern const char *byte_reg PARAMS ((rtx, int));
extern int const_costs PARAMS ((rtx, enum rtx_code));
extern void print_operand PARAMS ((FILE *, rtx, int));
extern void final_prescan_insn PARAMS ((rtx, rtx *, int));
extern int do_movsi PARAMS ((rtx[]));
extern void notice_update_cc PARAMS ((rtx, rtx));
extern int expand_a_shift PARAMS ((enum machine_mode, int, rtx[]));
extern int fix_bit_operand PARAMS ((rtx *, int, enum rtx_code));
extern int h8300_adjust_insn_length PARAMS ((rtx, int));
extern int general_operand_src PARAMS ((rtx, enum machine_mode));
extern int general_operand_dst PARAMS ((rtx, enum machine_mode));
extern int o_operand PARAMS ((rtx, enum machine_mode));
extern int p_operand PARAMS ((rtx, enum machine_mode));
extern int call_insn_operand PARAMS ((rtx, enum machine_mode));
extern int adds_subs_operand PARAMS ((rtx, enum machine_mode));
extern int one_insn_adds_subs_operand PARAMS ((rtx, enum machine_mode));
extern int small_call_insn_operand PARAMS ((rtx, enum machine_mode));
extern int jump_address_operand PARAMS ((rtx, enum machine_mode));
extern int bit_operand PARAMS ((rtx, enum machine_mode));
extern int bit_memory_operand PARAMS ((rtx, enum machine_mode));
extern int eq_operator PARAMS ((rtx, enum machine_mode));
extern int bit_operator PARAMS ((rtx, enum machine_mode));
extern int nshift_operator PARAMS ((rtx, enum machine_mode));
#endif /* RTX_CODE */
#ifdef TREE_CODE
extern struct rtx_def *function_arg PARAMS ((CUMULATIVE_ARGS *,
enum machine_mode, tree, int));
extern int h8300_valid_machine_decl_attribute PARAMS ((tree, tree, tree,
tree));
extern int h8300_funcvec_function_p PARAMS ((tree));
extern int h8300_eightbit_data_p PARAMS ((tree));
extern int h8300_tiny_data_p PARAMS ((tree));
extern void h8300_encode_label PARAMS ((tree));
#endif /* TREE_CODE */
extern int handle_pragma PARAMS ((int (*)(void), void (*)(int), const char *));
extern void h8300_init_once PARAMS ((void));
extern void function_prologue PARAMS ((FILE *, int));
extern void function_epilogue PARAMS ((FILE *, int));
extern void asm_file_start PARAMS ((FILE *));
extern void asm_file_end PARAMS ((FILE *));
extern int ok_for_bclr PARAMS ((int));
extern int small_power_of_two PARAMS ((int));
extern int initial_offset PARAMS ((int, int));
/* Definitions of target machine for GNU compiler.
Hitachi H8/300 version generating coff
Copyright (C) 1992, 93-98, 1999 Free SoftwareFoundation, Inc.
Copyright (C) 1992, 93-99, 2000 Free SoftwareFoundation, Inc.
Contributed by Steve Chamberlain (sac@cygnus.com),
Jim Wilson (wilson@cygnus.com), and Doug Evans (dje@cygnus.com).
......@@ -30,8 +30,8 @@ extern int cpu_type;
/* Various globals defined in h8300.c. */
extern char *h8_push_op,*h8_pop_op,*h8_mov_op;
extern char **h8_reg_names;
extern const char *h8_push_op,*h8_pop_op,*h8_mov_op;
extern const char * const *h8_reg_names;
/* Names to predefine in the preprocessor for this target machine. */
......@@ -367,10 +367,10 @@ enum reg_class {
of length N_REG_CLASSES. */
#define REG_CLASS_CONTENTS \
{ 0, /* No regs */ \
0x2ff, /* GENERAL_REGS */ \
0x100, /* MAC_REGS */ \
0x3ff, /* ALL_REGS */ \
{ {0}, /* No regs */ \
{0x2ff}, /* GENERAL_REGS */ \
{0x100}, /* MAC_REGS */ \
{0x3ff}, /* ALL_REGS */ \
}
/* The same information, inverted:
......@@ -631,7 +631,6 @@ struct cum_arg { int nbytes; struct rtx_def * libcall; };
case the first 3 arguments are passed in registers.
See function `function_arg'. */
struct rtx_def *function_arg();
#define FUNCTION_ARG(CUM, MODE, TYPE, NAMED) \
function_arg (&CUM, MODE, TYPE, NAMED)
......@@ -826,11 +825,11 @@ struct rtx_def *function_arg();
&& REG_OK_FOR_BASE_P (XEXP (OP, 0))) \
|| (GET_CODE (OP) == MEM && GET_CODE (XEXP (OP, 0)) == SYMBOL_REF \
&& (TARGET_H8300S || SYMBOL_REF_FLAG (XEXP (OP, 0)))) \
|| (GET_CODE (OP) == MEM && GET_CODE (XEXP (OP, 0)) == CONST \
&& GET_CODE (XEXP (XEXP (OP, 0), 0)) == PLUS \
&& GET_CODE (XEXP (XEXP (XEXP (OP, 0), 0), 0)) == SYMBOL_REF \
&& GET_CODE (XEXP (XEXP (XEXP (OP, 0), 0), 1)) == CONST_INT) \
&& (TARGET_H8300S || SYMBOL_REF_FLAG (XEXP (XEXP (OP, 0), 0))))
|| ((GET_CODE (OP) == MEM && GET_CODE (XEXP (OP, 0)) == CONST \
&& GET_CODE (XEXP (XEXP (OP, 0), 0)) == PLUS \
&& GET_CODE (XEXP (XEXP (XEXP (OP, 0), 0), 0)) == SYMBOL_REF \
&& GET_CODE (XEXP (XEXP (XEXP (OP, 0), 0), 1)) == CONST_INT) \
&& (TARGET_H8300S || SYMBOL_REF_FLAG (XEXP (XEXP (OP, 0), 0)))))
#define EXTRA_CONSTRAINT(OP, C) \
((C) == 'U' ? OK_FOR_U (OP) : 0)
......@@ -958,7 +957,6 @@ struct rtx_def *function_arg();
/* A C expression whose value is nonzero if IDENTIFIER with arguments ARGS
is a valid machine specific attribute for DECL.
The attributes in ATTRIBUTES have previously been assigned to DECL. */
extern int h8300_valid_machine_decl_attribute ();
#define VALID_MACHINE_DECL_ATTRIBUTE(DECL, ATTRIBUTES, IDENTIFIER, ARGS) \
h8300_valid_machine_decl_attribute (DECL, ATTRIBUTES, IDENTIFIER, ARGS)
......@@ -1019,7 +1017,7 @@ h8300_valid_machine_decl_attribute (DECL, ATTRIBUTES, IDENTIFIER, ARGS)
/* Control the assembler format that we output. */
#define ASM_IDENTIFY_GCC /* nothing */
#define ASM_IDENTIFY_GCC(FILE) /* nothing */
/* Output at beginning/end of assembler file. */
......@@ -1384,7 +1382,6 @@ do { char dstr[30]; \
it should be pointing at the last character after the end of the pragma
(newline or end-of-file). */
#define HANDLE_PRAGMA(GETC, UNGETC, NAME) handle_pragma (GETC, UNGETC, NAME)
extern int handle_pragma ();
#define FINAL_PRESCAN_INSN(insn, operand, nop) final_prescan_insn (insn, operand,nop)
......@@ -1418,9 +1415,3 @@ extern int handle_pragma ();
#define MOVE_RATIO 3
/* Declarations for functions used in insn-output.c. */
char *emit_a_shift ();
int h8300_funcvec_function_p ();
char *output_adds_subs ();
char * output_simode_bld ();
;; GCC machine description for Hitachi H8/300
;; Copyright (C) 1992, 93, 94, 95, 96, 1997 Free Software Foundation, Inc.
;; Copyright (C) 1992, 93-99, 2000 Free Software Foundation, Inc.
;; Contributed by Steve Chamberlain (sac@cygnus.com),
;; Jim Wilson (wilson@cygnus.com), and Doug Evans (dje@cygnus.com).
......@@ -335,6 +335,8 @@
return \"mov.w %f1,%T0\;mov.w %e1,%T0\";
case 5:
return \"mov.w %T1,%e0\;mov.w %T1,%f0\";
default:
abort();
}
}"
[(set_attr "length" "4,4,8,8,4,4")
......@@ -393,7 +395,8 @@
return \"mov.w %f1,%T0\;mov.w %e1,%T0\";
case 5:
return \"mov.w %T1,%e0\;mov.w %T1,%f0\";
default:
abort();
}
}"
[(set_attr "length" "4,4,8,8,4,4")
......
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