From: ghazi Date: Wed, 12 Jan 2000 19:24:13 +0000 (+0000) Subject: * m68k-protos.h: New file. X-Git-Tag: upstream/4.9.2~103780 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=f2fa409d93551a559c732a29ce4c678d717cc84b;p=platform%2Fupstream%2Flinaro-gcc.git * m68k-protos.h: New file. * m68k.c: Include tm_p.h. Add static prototypes. Fix compile time warnings. * m68k.h: Move prototypes to m68k-protos.h. Fix compile time warnings. * mot3300.h: Likewise. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@31358 138bc75d-0d04-0410-961f-82ee72b054a4 --- diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 1ba077d..ce2fed0 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,14 @@ +2000-01-12 Kaveh R. Ghazi + + * m68k-protos.h: New file. + + * m68k.c: Include tm_p.h. Add static prototypes. Fix compile + time warnings. + + * m68k.h: Move prototypes to m68k-protos.h. Fix compile time warnings. + + * mot3300.h: Likewise. + 2000-01-12 Richard Earnshaw * haifa-sched.c (split_edges): Pass edgeset_size as second arg to diff --git a/gcc/config/m68k/m68k-protos.h b/gcc/config/m68k/m68k-protos.h new file mode 100644 index 0000000..a31dc41 --- /dev/null +++ b/gcc/config/m68k/m68k-protos.h @@ -0,0 +1,69 @@ +/* Definitions of target machine for GNU compiler. Sun 68000/68020 version. + Copyright (C) 2000 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. */ + +/* Define functions defined in aux-output.c and used in templates. */ + +#ifdef RTX_CODE +extern const char *output_move_const_into_data_reg PARAMS ((rtx *)); +extern const char *output_move_simode_const PARAMS ((rtx *)); +extern const char *output_move_simode PARAMS ((rtx *)); +extern const char *output_move_himode PARAMS ((rtx *)); +extern const char *output_move_qimode PARAMS ((rtx *)); +extern const char *output_move_stricthi PARAMS ((rtx *)); +extern const char *output_move_strictqi PARAMS ((rtx *)); +extern const char *output_move_double PARAMS ((rtx *)); +extern const char *output_move_const_single PARAMS ((rtx *)); +extern const char *output_move_const_double PARAMS ((rtx *)); +extern const char *output_btst PARAMS ((rtx *, rtx, rtx, rtx, int)); +extern const char *output_scc_di PARAMS ((rtx, rtx, rtx, rtx)); +extern const char *output_addsi3 PARAMS ((rtx *)); +extern const char *output_andsi3 PARAMS ((rtx *)); +extern const char *output_iorsi3 PARAMS ((rtx *)); +extern const char *output_xorsi3 PARAMS ((rtx *)); +extern void output_dbcc_and_branch PARAMS ((rtx *)); +extern int const_uint32_operand PARAMS ((rtx, enum machine_mode)); +extern int const_sint32_operand PARAMS ((rtx, enum machine_mode)); +extern int floating_exact_log2 PARAMS ((rtx)); +extern int not_sp_operand PARAMS ((rtx, enum machine_mode)); +extern int valid_dbcc_comparison_p PARAMS ((rtx, enum machine_mode)); +extern int extend_operator PARAMS ((rtx, enum machine_mode)); +extern int strict_low_part_peephole_ok PARAMS ((enum machine_mode, rtx, rtx)); + +/* Functions from m68k.c used in macros. */ +extern int symbolic_operand PARAMS ((rtx, enum machine_mode)); +extern int const_int_cost PARAMS ((rtx)); +extern int standard_68881_constant_p PARAMS ((rtx)); +extern int standard_sun_fpa_constant_p PARAMS ((rtx)); +extern void print_operand_address PARAMS ((FILE *, rtx)); +extern void print_operand PARAMS ((FILE *, rtx, int)); +extern void notice_update_cc PARAMS ((rtx, rtx)); +//extern void finalize_pic PARAMS ((rtx, enum machine_mode)); +extern int general_src_operand PARAMS ((rtx, enum machine_mode)); +extern int nonimmediate_src_operand PARAMS ((rtx, enum machine_mode)); +extern int memory_src_operand PARAMS ((rtx, enum machine_mode)); +extern int pcrel_address PARAMS ((rtx, enum machine_mode)); +#endif /* RTX_CODE */ + +extern int flags_in_68881 PARAMS ((void)); +extern void output_function_prologue PARAMS ((FILE *, int)); +extern void output_function_epilogue PARAMS ((FILE *, int)); +extern int use_return_insn PARAMS ((void)); +extern void override_options PARAMS ((void)); +extern void init_68881_table PARAMS ((void)); diff --git a/gcc/config/m68k/m68k.c b/gcc/config/m68k/m68k.c index 8a798b7..7854a82 100644 --- a/gcc/config/m68k/m68k.c +++ b/gcc/config/m68k/m68k.c @@ -1,5 +1,5 @@ /* Subroutines for insn-output.c for Motorola 68000 family. - Copyright (C) 1987, 93-98, 1999 Free Software Foundation, Inc. + Copyright (C) 1987, 93-99, 2000 Free Software Foundation, Inc. This file is part of GNU CC. @@ -33,6 +33,7 @@ Boston, MA 02111-1307, USA. */ #include "insn-attr.h" #include "recog.h" #include "toplev.h" +#include "tm_p.h" /* Needed for use_return_insn. */ #include "flags.h" @@ -51,9 +52,9 @@ enum reg_class regno_reg_class[] if SGS_SWITCH_TABLE. */ int switch_table_difference_label_flag; -static rtx find_addr_reg (); -rtx legitimize_pic_address (); -void print_operand_address (); +static rtx find_addr_reg PARAMS ((rtx)); +rtx legitimize_pic_address PARAMS ((rtx, enum machine_mode, rtx)); +static const char *singlemove_string PARAMS ((rtx *)); /* Alignment to use for loops and jumps */ @@ -1030,7 +1031,7 @@ output_dbcc_and_branch (operands) } } -char * +const char * output_scc_di(op, operand1, operand2, dest) rtx op; rtx operand1; @@ -1217,7 +1218,7 @@ output_scc_di(op, operand1, operand2, dest) return ""; } -char * +const char * output_btst (operands, countop, dataop, insn, signpos) rtx *operands; rtx countop, dataop; @@ -1404,9 +1405,11 @@ legitimize_pic_address (orig, mode, reg) typedef enum { MOVL, SWAP, NEGW, NOTW, NOTB, MOVQ } CONST_METHOD; +static CONST_METHOD const_method PARAMS ((rtx)); + #define USE_MOVQ(i) ((unsigned)((i) + 128) <= 255) -CONST_METHOD +static CONST_METHOD const_method (constant) rtx constant; { @@ -1462,7 +1465,7 @@ const_int_cost (constant) } } -char * +const char * output_move_const_into_data_reg (operands) rtx *operands; { @@ -1515,7 +1518,7 @@ output_move_const_into_data_reg (operands) } } -char * +const char * output_move_simode_const (operands) rtx *operands; { @@ -1546,7 +1549,7 @@ output_move_simode_const (operands) return "move%.l %1,%0"; } -char * +const char * output_move_simode (operands) rtx *operands; { @@ -1563,7 +1566,7 @@ output_move_simode (operands) return "move%.l %1,%0"; } -char * +const char * output_move_himode (operands) rtx *operands; { @@ -1632,7 +1635,7 @@ output_move_himode (operands) return "move%.w %1,%0"; } -char * +const char * output_move_qimode (operands) rtx *operands; { @@ -1706,7 +1709,7 @@ output_move_qimode (operands) return "move%.b %1,%0"; } -char * +const char * output_move_stricthi (operands) rtx *operands; { @@ -1719,7 +1722,7 @@ output_move_stricthi (operands) return "move%.w %1,%0"; } -char * +const char * output_move_strictqi (operands) rtx *operands; { @@ -1735,7 +1738,7 @@ output_move_strictqi (operands) /* Return the best assembler insn template for moving operands[1] into operands[0] as a fullword. */ -static char * +static const char * singlemove_string (operands) rtx *operands; { @@ -1752,7 +1755,7 @@ singlemove_string (operands) /* Output assembler code to perform a doubleword move insn with operands OPERANDS. */ -char * +const char * output_move_double (operands) rtx *operands; { @@ -2130,7 +2133,7 @@ find_addr_reg (addr) /* Output assembler code to perform a 32 bit 3 operand add. */ -char * +const char * output_addsi3 (operands) rtx *operands; { @@ -2336,7 +2339,7 @@ notice_update_cc (exp, insn) cc_status.flags = CC_IN_68881; } -char * +const char * output_move_const_double (operands) rtx *operands; { @@ -2370,7 +2373,7 @@ output_move_const_double (operands) } } -char * +const char * output_move_const_single (operands) rtx *operands; { @@ -2413,7 +2416,7 @@ output_move_const_single (operands) static int inited_68881_table = 0; -char *strings_68881[7] = { +static const char *const strings_68881[7] = { "0.0", "1.0", "10.0", @@ -2545,7 +2548,7 @@ floating_exact_log2 (x) static int inited_FPA_table = 0; -char *strings_FPA[38] = { +static const char *const strings_FPA[38] = { /* small rationals */ "0.0", "1.0", @@ -3464,13 +3467,13 @@ memory_src_operand (op, mode) int pcrel_address (op, mode) rtx op; - enum machine_mode mode; + enum machine_mode mode ATTRIBUTE_UNUSED; { return (GET_CODE (op) == SYMBOL_REF || GET_CODE (op) == LABEL_REF || GET_CODE (op) == CONST); } -char * +const char * output_andsi3 (operands) rtx *operands; { @@ -3511,7 +3514,7 @@ output_andsi3 (operands) return "and%.l %2,%0"; } -char * +const char * output_iorsi3 (operands) rtx *operands; { @@ -3550,7 +3553,7 @@ output_iorsi3 (operands) return "or%.l %2,%0"; } -char * +const char * output_xorsi3 (operands) rtx *operands; { diff --git a/gcc/config/m68k/m68k.h b/gcc/config/m68k/m68k.h index 21acb26..5fda5f8 100644 --- a/gcc/config/m68k/m68k.h +++ b/gcc/config/m68k/m68k.h @@ -1,5 +1,5 @@ /* Definitions of target machine for GNU compiler. Sun 68000/68020 version. - Copyright (C) 1987, 88, 93-98, 1999 Free Software Foundation, Inc. + Copyright (C) 1987, 88, 93-99, 2000 Free Software Foundation, Inc. This file is part of GNU CC. @@ -2153,34 +2153,6 @@ do { long l; \ #define PRINT_OPERAND_ADDRESS(FILE, ADDR) print_operand_address (FILE, ADDR) -/* Define functions defined in aux-output.c and used in templates. */ - -extern char *output_move_const_into_data_reg (); -extern char *output_move_simode_const (); -extern char *output_move_simode (); -extern char *output_move_himode (); -extern char *output_move_qimode (); -extern char *output_move_stricthi (); -extern char *output_move_strictqi (); -extern char *output_move_double (); -extern char *output_move_const_single (); -extern char *output_move_const_double (); -extern char *output_btst (); -extern char *output_scc_di (); -extern char *output_addsi3 (); -extern char *output_andsi3 (); -extern char *output_iorsi3 (); -extern char *output_xorsi3 (); -extern void output_dbcc_and_branch (); -extern int const_uint32_operand (); -extern int const_sint32_operand (); -extern int floating_exact_log2 (); -extern int not_sp_operand (); -extern int valid_dbcc_comparison_p (); -extern int extend_operator (); -extern int flags_in_68881 (); -extern int strict_low_part_peephole_ok (); - /* Variables in m68k.c */ extern const char *m68k_align_loops_string; extern const char *m68k_align_jumps_string; @@ -2190,20 +2162,6 @@ extern int m68k_align_jumps; extern int m68k_align_funcs; extern int m68k_last_compare_had_fp_operands; -/* Functions from m68k.c used in macros. */ -extern int symbolic_operand (); -extern int const_int_cost (); -extern int standard_68881_constant_p (); -extern int standard_sun_fpa_constant_p (); -extern void output_function_prologue (); -extern void output_function_epilogue (); -extern int use_return_insn (); -extern void print_operand_address (); -extern void print_operand (); -extern void notice_update_cc (); -extern void finalize_pic (); -extern void override_options (); - /* Local variables: diff --git a/gcc/config/m68k/mot3300.h b/gcc/config/m68k/mot3300.h index 6c14d4f..f709719 100644 --- a/gcc/config/m68k/mot3300.h +++ b/gcc/config/m68k/mot3300.h @@ -1,6 +1,6 @@ /* Definitions of target machine for GNU compiler, SysV68 Motorola 3300 Delta Series. - Copyright (C) 1987, 93-98, 1999 Free Software Foundation, Inc. + Copyright (C) 1987, 93-99, 2000 Free Software Foundation, Inc. Contributed by Abramo and Roberto Bagnara (bagnara@dipisa.di.unipi.it) based on Alex Crain's 3B1 definitions. Maintained by Philippe De Muyter (phdm@info.ucl.ac.be). @@ -376,14 +376,14 @@ dtors_section () \ #define ASM_OUTPUT_DOUBLE(FILE,VALUE) \ do { long l[2]; \ REAL_VALUE_TO_TARGET_DOUBLE (VALUE, l); \ - fprintf (FILE, "\t%s 0x%x,0x%x\n", ASM_LONG, l[0], l[1]); \ + fprintf (FILE, "\t%s 0x%lx,0x%lx\n", ASM_LONG, l[0], l[1]); \ } while (0) #undef ASM_OUTPUT_LONG_DOUBLE #define ASM_OUTPUT_LONG_DOUBLE(FILE,VALUE) \ do { long l[3]; \ REAL_VALUE_TO_TARGET_LONG_DOUBLE (VALUE, l); \ - fprintf (FILE, "\t%s 0x%x,0x%x,0x%x\n", ASM_LONG, l[0], l[1], l[2]); \ + fprintf (FILE, "\t%s 0x%lx,0x%lx,0x%lx\n", ASM_LONG, l[0], l[1], l[2]); \ } while (0) /* This is how to output an assembler line defining a `float' constant. */ @@ -392,7 +392,7 @@ do { long l[3]; \ #define ASM_OUTPUT_FLOAT(FILE,VALUE) \ do { long l; \ REAL_VALUE_TO_TARGET_SINGLE (VALUE, l); \ - fprintf ((FILE), "\t%s 0x%x\n", ASM_LONG, l); \ + fprintf ((FILE), "\t%s 0x%lx\n", ASM_LONG, l); \ } while (0) /* This is how to output an assembler line defining an `int' constant. */ @@ -522,7 +522,7 @@ do { long l; \ #undef ASM_GENERATE_INTERNAL_LABEL #define ASM_GENERATE_INTERNAL_LABEL(LABEL, PREFIX, NUM) \ - sprintf ((LABEL), "%s%s%d", LOCAL_LABEL_PREFIX, (PREFIX), (NUM)) + sprintf ((LABEL), "%s%s%ld", LOCAL_LABEL_PREFIX, (PREFIX), (long)(NUM)) /* This is how to output an internal numbered label where PREFIX is the class of label and NUM is the number within the class. */