This is the mail archive of the gcc-patches@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]

PATCH: Add m68k-protos.h file


Tested by building cc1 configured as an i686-pc-linux-gnu to
m68k-motorola-sysv cross compiler.

Okay to install?

		--Kaveh



2000-01-11  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>

	* 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.

diff -rup orig/egcs-CVS20000110/gcc/config/m68k/m68k-protos.h egcs-CVS20000110/gcc/config/m68k/m68k-protos.h
--- orig/egcs-CVS20000110/gcc/config/m68k/m68k-protos.h	Tue Jan 11 11:01:44 2000
+++ egcs-CVS20000110/gcc/config/m68k/m68k-protos.h	Tue Jan 11 11:40:55 2000
@@ -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 -rup orig/egcs-CVS20000110/gcc/config/m68k/m68k.c egcs-CVS20000110/gcc/config/m68k/m68k.c
--- orig/egcs-CVS20000110/gcc/config/m68k/m68k.c	Sat Dec  4 07:41:27 1999
+++ egcs-CVS20000110/gcc/config/m68k/m68k.c	Tue Jan 11 11:38:15 2000
@@ -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, de
   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 (operand
     }
 }
 
-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 -rup orig/egcs-CVS20000110/gcc/config/m68k/m68k.h egcs-CVS20000110/gcc/config/m68k/m68k.h
--- orig/egcs-CVS20000110/gcc/config/m68k/m68k.h	Fri Dec 10 14:33:00 1999
+++ egcs-CVS20000110/gcc/config/m68k/m68k.h	Tue Jan 11 11:09:35 2000
@@ -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;
@@ -2189,20 +2161,6 @@ extern int m68k_align_loops;
 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 ();
 
 
 /*
diff -rup orig/egcs-CVS20000110/gcc/config/m68k/mot3300.h egcs-CVS20000110/gcc/config/m68k/mot3300.h
--- orig/egcs-CVS20000110/gcc/config/m68k/mot3300.h	Wed Sep 15 17:41:15 1999
+++ egcs-CVS20000110/gcc/config/m68k/mot3300.h	Tue Jan 11 12:01:24 2000
@@ -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.  */

Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]