diff options
author | Kaveh R. Ghazi <ghazi@caip.rutgers.edu> | 2000-01-14 23:03:45 +0000 |
---|---|---|
committer | Kaveh Ghazi <ghazi@gcc.gnu.org> | 2000-01-14 23:03:45 +0000 |
commit | 69bc71fad0e2139696efc00a6864dc46a47bd645 (patch) | |
tree | cb8ab6db75c8ef493933685cd9b9ad612ecc6e65 | |
parent | ac42d1e9b14bcbb00948b877641286ac41f8a299 (diff) | |
download | gcc-69bc71fad0e2139696efc00a6864dc46a47bd645.zip gcc-69bc71fad0e2139696efc00a6864dc46a47bd645.tar.gz gcc-69bc71fad0e2139696efc00a6864dc46a47bd645.tar.bz2 |
mn10300-protos.h: New file.
* mn10300-protos.h: New file.
* mn10300.c: Include tm_p.h. Add static prototypes. Fix compile
time warnings.
* mn10300.h: Move prototypes to mn10300-protos.h. Fix compile time
warnings.
* mn10300.md: Likewise.
From-SVN: r31428
-rw-r--r-- | gcc/ChangeLog | 12 | ||||
-rw-r--r-- | gcc/config/mn10300/mn10300-protos.h | 56 | ||||
-rw-r--r-- | gcc/config/mn10300/mn10300.c | 31 | ||||
-rw-r--r-- | gcc/config/mn10300/mn10300.h | 46 | ||||
-rw-r--r-- | gcc/config/mn10300/mn10300.md | 34 |
5 files changed, 123 insertions, 56 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 8e49151..b4edc1a 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,5 +1,17 @@ 2000-01-14 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> + * mn10300-protos.h: New file. + + * mn10300.c: Include tm_p.h. Add static prototypes. Fix compile + time warnings. + + * mn10300.h: Move prototypes to mn10300-protos.h. Fix compile time + warnings. + + * mn10300.md: Likewise. + +2000-01-14 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> + * mn10200-protos.h: New file. * mn10200.c: Include tm_p.h. Add static prototypes. Fix compile diff --git a/gcc/config/mn10300/mn10300-protos.h b/gcc/config/mn10300/mn10300-protos.h new file mode 100644 index 0000000..2ae3ba5 --- /dev/null +++ b/gcc/config/mn10300/mn10300-protos.h @@ -0,0 +1,56 @@ +/* Definitions of target machine for GNU compiler. Matsushita MN10300 series + Copyright (C) 2000 Free Software Foundation, Inc. + Contributed by Jeff Law (law@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. */ + +#ifdef RTX_CODE + +#ifdef TREE_CODE +extern void mn10300_va_start PARAMS ((int, tree, rtx)); +#endif /* TREE_CODE */ + +extern struct rtx_def *legitimize_address PARAMS ((rtx, rtx, enum machine_mode)); +extern void print_operand PARAMS ((FILE *, rtx, int)); +extern void print_operand_address PARAMS ((FILE *, rtx)); +extern void notice_update_cc PARAMS ((rtx, rtx)); +extern enum reg_class secondary_reload_class PARAMS ((enum reg_class, + enum machine_mode, rtx)); +extern char *output_tst PARAMS ((rtx, rtx)); +extern int symbolic_operand PARAMS ((rtx, enum machine_mode)); +extern int call_address_operand PARAMS ((rtx, enum machine_mode)); +extern int impossible_plus_operand PARAMS ((rtx, enum machine_mode)); +extern int const_8bit_operand 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 function_arg_partial_nregs PARAMS ((CUMULATIVE_ARGS *, + enum machine_mode, tree, int)); +extern struct rtx_def *mn10300_va_arg PARAMS ((tree, tree)); +#endif /* TREE_CODE */ + +extern struct rtx_def *mn10300_builtin_saveregs PARAMS ((void)); +extern void asm_file_start PARAMS ((FILE *)); +extern void expand_prologue PARAMS ((void)); +extern void expand_epilogue PARAMS ((void)); +extern int initial_offset PARAMS ((int, int)); +extern int can_use_return_insn PARAMS ((void)); +extern int mask_ok_for_mem_btst PARAMS ((int, int)); + diff --git a/gcc/config/mn10300/mn10300.c b/gcc/config/mn10300/mn10300.c index 2c325bf..a8918b2 100644 --- a/gcc/config/mn10300/mn10300.c +++ b/gcc/config/mn10300/mn10300.c @@ -1,5 +1,5 @@ /* Subroutines for insn-output.c for Matsushita MN10300 series - Copyright (C) 1996, 1997, 1998, 1999 Free Software Foundation, Inc. + Copyright (C) 1996, 1997, 1998, 1999, 2000 Free Software Foundation, Inc. Contributed by Jeff Law (law@cygnus.com). This file is part of GNU CC. @@ -36,6 +36,8 @@ Boston, MA 02111-1307, USA. */ #include "expr.h" #include "function.h" #include "obstack.h" +#include "toplev.h" +#include "tm_p.h" /* The size of the callee register save area. Right now we save everything on entry since it costs us nothing in code size. It does cost us from a @@ -168,6 +170,8 @@ print_operand (file, x, code) print_operand_address (file, GEN_INT (CONST_DOUBLE_LOW (x))); break; + default: + break; } break; } @@ -220,6 +224,8 @@ print_operand (file, x, code) print_operand_address (file, GEN_INT (CONST_DOUBLE_HIGH (x))); break; + default: + break; } break; } @@ -549,7 +555,7 @@ notice_update_cc (body, insn) int call_address_operand (op, mode) rtx op; - enum machine_mode mode; + enum machine_mode mode ATTRIBUTE_UNUSED; { return (GET_CODE (op) == SYMBOL_REF || GET_CODE (op) == REG); } @@ -564,8 +570,6 @@ secondary_reload_class (class, mode, in) enum machine_mode mode; rtx in; { - int regno; - /* Memory loads less than a full word wide can't have an address or stack pointer destination. They must use a data register as an intermediate register. */ @@ -742,7 +746,7 @@ function_arg (cum, mode, type, named) CUMULATIVE_ARGS *cum; enum machine_mode mode; tree type; - int named; + int named ATTRIBUTE_UNUSED; { rtx result = 0; int size, align; @@ -795,7 +799,7 @@ function_arg_partial_nregs (cum, mode, type, named) CUMULATIVE_ARGS *cum; enum machine_mode mode; tree type; - int named; + int named ATTRIBUTE_UNUSED; { int size, align; @@ -924,11 +928,8 @@ output_tst (operand, insn) int impossible_plus_operand (op, mode) rtx op; - enum machine_mode mode; + enum machine_mode mode ATTRIBUTE_UNUSED; { - extern rtx *reg_equiv_mem; - rtx reg1, reg2; - if (GET_CODE (op) != PLUS) return 0; @@ -945,7 +946,7 @@ impossible_plus_operand (op, mode) int const_8bit_operand (op, mode) register rtx op; - enum machine_mode mode; + enum machine_mode mode ATTRIBUTE_UNUSED; { return (GET_CODE (op) == CONST_INT && INTVAL (op) >= 0 @@ -981,7 +982,7 @@ mask_ok_for_mem_btst (len, bit) int symbolic_operand (op, mode) register rtx op; - enum machine_mode mode; + enum machine_mode mode ATTRIBUTE_UNUSED; { switch (GET_CODE (op)) { @@ -1016,8 +1017,8 @@ symbolic_operand (op, mode) rtx legitimize_address (x, oldx, mode) rtx x; - rtx oldx; - enum machine_mode mode; + rtx oldx ATTRIBUTE_UNUSED; + enum machine_mode mode ATTRIBUTE_UNUSED; { /* Uh-oh. We might have an address for x[n-100000]. This needs special handling to avoid creating an indexed memory address @@ -1029,7 +1030,7 @@ legitimize_address (x, oldx, mode) by the index expression is computed first, then added to x to form the entire address. */ - rtx regx1, regx2, regy1, regy2, y; + rtx regx1, regy1, regy2, y; /* Strip off any CONST. */ y = XEXP (x, 1); diff --git a/gcc/config/mn10300/mn10300.h b/gcc/config/mn10300/mn10300.h index 8e77acc..d79d4e7 100644 --- a/gcc/config/mn10300/mn10300.h +++ b/gcc/config/mn10300/mn10300.h @@ -1,5 +1,5 @@ /* Definitions of target machine for GNU compiler. Matsushita MN10300 series - Copyright (C) 1996, 1997, 1998, 1999 Free Software Foundation, Inc. + Copyright (C) 1996, 1997, 1998, 1999, 2000 Free Software Foundation, Inc. Contributed by Jeff Law (law@cygnus.com). This file is part of GNU CC. @@ -251,19 +251,19 @@ enum reg_class { of length N_REG_CLASSES. */ #define REG_CLASS_CONTENTS \ -{ 0, /* No regs */ \ - 0x0000f, /* DATA_REGS */ \ - 0x001f0, /* ADDRESS_REGS */ \ - 0x00200, /* SP_REGS */ \ - 0x001ff, /* DATA_OR_ADDRESS_REGS */\ - 0x003f0, /* SP_OR_ADDRESS_REGS */\ - 0x2fc00, /* EXTENDED_REGS */ \ - 0x2fc0f, /* DATA_OR_EXTENDED_REGS */ \ - 0x2fdf0, /* ADDRESS_OR_EXTENDED_REGS */ \ - 0x2fe00, /* SP_OR_EXTENDED_REGS */ \ - 0x2fff0, /* SP_OR_ADDRESS_OR_EXTENDED_REGS */ \ - 0x2fdff, /* GENERAL_REGS */ \ - 0x2ffff, /* ALL_REGS */ \ +{ {0}, /* No regs */ \ + {0x0000f}, /* DATA_REGS */ \ + {0x001f0}, /* ADDRESS_REGS */ \ + {0x00200}, /* SP_REGS */ \ + {0x001ff}, /* DATA_OR_ADDRESS_REGS */\ + {0x003f0}, /* SP_OR_ADDRESS_REGS */\ + {0x2fc00}, /* EXTENDED_REGS */ \ + {0x2fc0f}, /* DATA_OR_EXTENDED_REGS */ \ + {0x2fdf0}, /* ADDRESS_OR_EXTENDED_REGS */ \ + {0x2fe00}, /* SP_OR_EXTENDED_REGS */ \ + {0x2fff0}, /* SP_OR_ADDRESS_OR_EXTENDED_REGS */ \ + {0x2fdff}, /* GENERAL_REGS */ \ + {0x2ffff}, /* ALL_REGS */ \ } /* The same information, inverted: @@ -504,7 +504,6 @@ struct cum_arg {int nbytes; }; /* On the MN10300 all args are pushed. */ -extern struct rtx_def *function_arg (); #define FUNCTION_ARG(CUM, MODE, TYPE, NAMED) \ function_arg (&CUM, MODE, TYPE, NAMED) @@ -606,16 +605,13 @@ extern struct rtx_def *function_arg (); Ordinarily they are not call used registers, but they are for _builtin_saveregs, so we must make this explicit. */ -extern struct rtx_def *mn10300_builtin_saveregs (); #define EXPAND_BUILTIN_SAVEREGS() mn10300_builtin_saveregs () /* Implement `va_start' for varargs and stdarg. */ -extern void mn10300_va_start(); #define EXPAND_BUILTIN_VA_START(stdarg, valist, nextarg) \ mn10300_va_start (stdarg, valist, nextarg) /* Implement `va_arg'. */ -extern struct rtx_def *mn10300_va_arg(); #define EXPAND_BUILTIN_VA_ARG(valist, type) \ mn10300_va_arg (valist, type) @@ -754,7 +750,6 @@ extern struct rtx_def *mn10300_va_arg(); It is always safe for this macro to do nothing. It exists to recognize opportunities to optimize the output. */ -extern struct rtx_def *legitimize_address (); #define LEGITIMIZE_ADDRESS(X, OLDX, MODE, WIN) \ { rtx orig_x = (X); \ (X) = legitimize_address (X, OLDX, MODE); \ @@ -1088,16 +1083,3 @@ do { char dstr[30]; \ #define FILE_ASM_OP "\t.file\n" -extern void asm_file_start (); -extern int const_costs (); -extern void print_operand (); -extern void print_operand_address (); -extern void expand_prologue (); -extern void expand_epilogue (); -extern void notice_update_cc (); -extern int call_address_operand (); -extern int impossible_plus_operand (); -extern enum reg_class secondary_reload_class (); -extern int initial_offset (); -extern char *output_tst (); -int symbolic_operand (); diff --git a/gcc/config/mn10300/mn10300.md b/gcc/config/mn10300/mn10300.md index 27fdb68..750d30a 100644 --- a/gcc/config/mn10300/mn10300.md +++ b/gcc/config/mn10300/mn10300.md @@ -1,5 +1,5 @@ ;; GCC machine description for Matsushita MN10300 -;; Copyright (C) 1996, 1997, 1998, 1999 Free Software Foundation, Inc. +;; Copyright (C) 1996, 1997, 1998, 1999, 2000 Free Software Foundation, Inc. ;; Contributed by Jeff Law (law@cygnus.com). ;; This file is part of GNU CC. @@ -97,6 +97,8 @@ case 8: case 9: return \"movbu %1,%0\"; + default: + abort(); } }" [(set_attr "cc" "none,none,clobber,none_0hit,none_0hit,none_0hit,none_0hit,none_0hit,none_0hit,none_0hit")]) @@ -133,6 +135,8 @@ case 8: case 9: return \"movbu %1,%0\"; + default: + abort(); } }" [(set_attr "cc" "none,none,clobber,none_0hit,none_0hit,none_0hit,none_0hit,none_0hit,none_0hit,none_0hit")]) @@ -193,6 +197,8 @@ case 8: case 9: return \"movhu %1,%0\"; + default: + abort(); } }" [(set_attr "cc" "none,none,clobber,none_0hit,none_0hit,none_0hit,none_0hit,none_0hit,none_0hit,none_0hit")]) @@ -228,6 +234,8 @@ case 8: case 9: return \"movhu %1,%0\"; + default: + abort(); } }" [(set_attr "cc" "none,none,clobber,none_0hit,none_0hit,none_0hit,none_0hit,none_0hit,none_0hit,none_0hit")]) @@ -332,6 +340,8 @@ return \"movu %1,%0\"; } return \"mov %1,%0\"; + default: + abort(); } }" [(set_attr "cc" "none,none,clobber,none_0hit,none_0hit,none_0hit,none_0hit,none_0hit,none_0hit,none_0hit,none_0hit,none_0hit,none_0hit,none_0hit")]) @@ -375,6 +385,8 @@ return \"movu %1,%0\"; } return \"mov %1,%0\"; + default: + abort(); } }" [(set_attr "cc" "none,none,clobber,none_0hit,none_0hit,none_0hit")]) @@ -517,6 +529,8 @@ output_asm_insn (\"mov %H1,%H0\", operands); return \"\"; } + default: + abort(); } }" [(set_attr "cc" "none,none,clobber,none_0hit,none_0hit,none_0hit,none_0hit,none_0hit,none_0hit,none_0hit,none_0hit,none_0hit")]) @@ -659,6 +673,8 @@ output_asm_insn (\"mov %H1,%H0\", operands); return \"\"; } + default: + abort(); } }" [(set_attr "cc" "none,none,clobber,none_0hit,none_0hit,none_0hit,none_0hit,none_0hit,none_0hit,none_0hit,none_0hit,none_0hit")]) @@ -807,6 +823,8 @@ return \"mov %1,%0\;add %2,%0\"; return \"mov %2,%0\;add %1,%0\"; } + default: + abort(); } }" [(set_attr "cc" "set_zn,none_0hit,none_0hit,set_zn,none_0hit,set_zn")]) @@ -847,6 +865,8 @@ == REGNO_REG_CLASS (true_regnum (operands[0]))) return \"mov %1,%0\;add %2,%0\"; return \"mov %2,%0\;add %1,%0\"; + default: + abort(); } }" [(set_attr "cc" "set_zn,none_0hit,none_0hit,set_zn,none_0hit,set_zn")]) @@ -1506,7 +1526,7 @@ "" " { - if (! call_address_operand (XEXP (operands[0], 0))) + if (! call_address_operand (XEXP (operands[0], 0), VOIDmode)) XEXP (operands[0], 0) = force_reg (SImode, XEXP (operands[0], 0)); emit_call_insn (gen_call_internal (XEXP (operands[0], 0), operands[1])); DONE; @@ -1535,7 +1555,7 @@ "" " { - if (! call_address_operand (XEXP (operands[1], 0))) + if (! call_address_operand (XEXP (operands[1], 0), VOIDmode)) XEXP (operands[1], 0) = force_reg (SImode, XEXP (operands[1], 0)); emit_call_insn (gen_call_value_internal (operands[0], XEXP (operands[1], 0), @@ -1996,9 +2016,7 @@ "" "* { - int i, need_comma; - int d2, d3, a2, a3; - int exreg1; + int need_comma; need_comma = 0; fputs (\"\\tret [\", asm_out_file); @@ -2046,9 +2064,7 @@ "" "* { - int i, need_comma; - int d2, d3, a2, a3; - int exreg1; + int need_comma; need_comma = 0; fputs (\"\\tmovm [\", asm_out_file); |