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> 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. * varasm.c (asm_output_bss): Mark parameters with ATTRIBUTE_UNUSED.
(asm_emit_uninitialised): Likewise. (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. /* Definitions of target machine for GNU compiler.
Hitachi H8/300 version generating coff 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), Contributed by Steve Chamberlain (sac@cygnus.com),
Jim Wilson (wilson@cygnus.com), and Doug Evans (dje@cygnus.com). Jim Wilson (wilson@cygnus.com), and Doug Evans (dje@cygnus.com).
...@@ -30,8 +30,8 @@ extern int cpu_type; ...@@ -30,8 +30,8 @@ extern int cpu_type;
/* Various globals defined in h8300.c. */ /* Various globals defined in h8300.c. */
extern char *h8_push_op,*h8_pop_op,*h8_mov_op; extern const char *h8_push_op,*h8_pop_op,*h8_mov_op;
extern char **h8_reg_names; extern const char * const *h8_reg_names;
/* Names to predefine in the preprocessor for this target machine. */ /* Names to predefine in the preprocessor for this target machine. */
...@@ -367,10 +367,10 @@ enum reg_class { ...@@ -367,10 +367,10 @@ enum reg_class {
of length N_REG_CLASSES. */ of length N_REG_CLASSES. */
#define REG_CLASS_CONTENTS \ #define REG_CLASS_CONTENTS \
{ 0, /* No regs */ \ { {0}, /* No regs */ \
0x2ff, /* GENERAL_REGS */ \ {0x2ff}, /* GENERAL_REGS */ \
0x100, /* MAC_REGS */ \ {0x100}, /* MAC_REGS */ \
0x3ff, /* ALL_REGS */ \ {0x3ff}, /* ALL_REGS */ \
} }
/* The same information, inverted: /* The same information, inverted:
...@@ -631,7 +631,6 @@ struct cum_arg { int nbytes; struct rtx_def * libcall; }; ...@@ -631,7 +631,6 @@ struct cum_arg { int nbytes; struct rtx_def * libcall; };
case the first 3 arguments are passed in registers. case the first 3 arguments are passed in registers.
See function `function_arg'. */ See function `function_arg'. */
struct rtx_def *function_arg();
#define FUNCTION_ARG(CUM, MODE, TYPE, NAMED) \ #define FUNCTION_ARG(CUM, MODE, TYPE, NAMED) \
function_arg (&CUM, MODE, TYPE, NAMED) function_arg (&CUM, MODE, TYPE, NAMED)
...@@ -826,11 +825,11 @@ struct rtx_def *function_arg(); ...@@ -826,11 +825,11 @@ struct rtx_def *function_arg();
&& REG_OK_FOR_BASE_P (XEXP (OP, 0))) \ && REG_OK_FOR_BASE_P (XEXP (OP, 0))) \
|| (GET_CODE (OP) == MEM && GET_CODE (XEXP (OP, 0)) == SYMBOL_REF \ || (GET_CODE (OP) == MEM && GET_CODE (XEXP (OP, 0)) == SYMBOL_REF \
&& (TARGET_H8300S || SYMBOL_REF_FLAG (XEXP (OP, 0)))) \ && (TARGET_H8300S || SYMBOL_REF_FLAG (XEXP (OP, 0)))) \
|| (GET_CODE (OP) == MEM && GET_CODE (XEXP (OP, 0)) == CONST \ || ((GET_CODE (OP) == MEM && GET_CODE (XEXP (OP, 0)) == CONST \
&& GET_CODE (XEXP (XEXP (OP, 0), 0)) == PLUS \ && 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), 0)) == SYMBOL_REF \
&& GET_CODE (XEXP (XEXP (XEXP (OP, 0), 0), 1)) == CONST_INT) \ && GET_CODE (XEXP (XEXP (XEXP (OP, 0), 0), 1)) == CONST_INT) \
&& (TARGET_H8300S || SYMBOL_REF_FLAG (XEXP (XEXP (OP, 0), 0)))) && (TARGET_H8300S || SYMBOL_REF_FLAG (XEXP (XEXP (OP, 0), 0)))))
#define EXTRA_CONSTRAINT(OP, C) \ #define EXTRA_CONSTRAINT(OP, C) \
((C) == 'U' ? OK_FOR_U (OP) : 0) ((C) == 'U' ? OK_FOR_U (OP) : 0)
...@@ -958,7 +957,6 @@ struct rtx_def *function_arg(); ...@@ -958,7 +957,6 @@ struct rtx_def *function_arg();
/* A C expression whose value is nonzero if IDENTIFIER with arguments ARGS /* A C expression whose value is nonzero if IDENTIFIER with arguments ARGS
is a valid machine specific attribute for DECL. is a valid machine specific attribute for DECL.
The attributes in ATTRIBUTES have previously been assigned to 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) \ #define VALID_MACHINE_DECL_ATTRIBUTE(DECL, ATTRIBUTES, IDENTIFIER, ARGS) \
h8300_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) ...@@ -1019,7 +1017,7 @@ h8300_valid_machine_decl_attribute (DECL, ATTRIBUTES, IDENTIFIER, ARGS)
/* Control the assembler format that we output. */ /* 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. */ /* Output at beginning/end of assembler file. */
...@@ -1384,7 +1382,6 @@ do { char dstr[30]; \ ...@@ -1384,7 +1382,6 @@ do { char dstr[30]; \
it should be pointing at the last character after the end of the pragma it should be pointing at the last character after the end of the pragma
(newline or end-of-file). */ (newline or end-of-file). */
#define HANDLE_PRAGMA(GETC, UNGETC, NAME) handle_pragma (GETC, UNGETC, NAME) #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) #define FINAL_PRESCAN_INSN(insn, operand, nop) final_prescan_insn (insn, operand,nop)
...@@ -1418,9 +1415,3 @@ extern int handle_pragma (); ...@@ -1418,9 +1415,3 @@ extern int handle_pragma ();
#define MOVE_RATIO 3 #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 ;; 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), ;; Contributed by Steve Chamberlain (sac@cygnus.com),
;; Jim Wilson (wilson@cygnus.com), and Doug Evans (dje@cygnus.com). ;; Jim Wilson (wilson@cygnus.com), and Doug Evans (dje@cygnus.com).
...@@ -335,6 +335,8 @@ ...@@ -335,6 +335,8 @@
return \"mov.w %f1,%T0\;mov.w %e1,%T0\"; return \"mov.w %f1,%T0\;mov.w %e1,%T0\";
case 5: case 5:
return \"mov.w %T1,%e0\;mov.w %T1,%f0\"; return \"mov.w %T1,%e0\;mov.w %T1,%f0\";
default:
abort();
} }
}" }"
[(set_attr "length" "4,4,8,8,4,4") [(set_attr "length" "4,4,8,8,4,4")
...@@ -393,7 +395,8 @@ ...@@ -393,7 +395,8 @@
return \"mov.w %f1,%T0\;mov.w %e1,%T0\"; return \"mov.w %f1,%T0\;mov.w %e1,%T0\";
case 5: case 5:
return \"mov.w %T1,%e0\;mov.w %T1,%f0\"; return \"mov.w %T1,%e0\;mov.w %T1,%f0\";
default:
abort();
} }
}" }"
[(set_attr "length" "4,4,8,8,4,4") [(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