PATCH: Add dsp16xx-protos.h file

Kaveh R. Ghazi ghazi@caip.rutgers.edu
Thu Jan 13 15:53:00 GMT 2000


Tested by building cc1 configured as an i686-pc-linux-gnu ->
dsp16xx-unknown-none cross compiler.

Okay to install?

		--Kaveh



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

	* dsp16xx-protos.h: New file.

	* dsp16xx.c: Include tm_p.h.  Add static prototypes.  Fix compile
	time warnings.
	
	* dsp16xx.h: Move prototypes to dsp16xx-protos.h.  Fix compile time
	warnings.
	
	* dsp16xx.md: Likewise.

diff -rup orig/egcs-CVS20000113/gcc/config/dsp16xx/dsp16xx-protos.h egcs-CVS20000113/gcc/config/dsp16xx/dsp16xx-protos.h
--- orig/egcs-CVS20000113/gcc/config/dsp16xx/dsp16xx-protos.h	Thu Jan 13 08:12:19 2000
+++ egcs-CVS20000113/gcc/config/dsp16xx/dsp16xx-protos.h	Thu Jan 13 12:00:48 2000
@@ -0,0 +1,85 @@
+/* Definitions of target machine for GNU compiler.  AT&T DSP1600.
+   Copyright (C) 2000 Free Software Foundation, Inc.
+   Contributed by Michael Collison (collison@world.std.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 1, 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
+extern struct rtx_def *gen_compare_reg PARAMS ((enum rtx_code, rtx, rtx));
+extern int call_address_operand PARAMS ((rtx, enum machine_mode));
+extern int arith_reg_operand PARAMS ((rtx, enum machine_mode));
+extern int symbolic_address_operand PARAMS ((rtx, enum machine_mode));
+extern int Y_address_operand PARAMS ((rtx, enum machine_mode));
+extern int sp_operand PARAMS ((rtx, enum machine_mode));
+extern int sp_operand2 PARAMS ((rtx, enum machine_mode));
+extern int nonmemory_arith_operand PARAMS ((rtx, enum machine_mode));
+extern int dsp16xx_comparison_operator PARAMS ((rtx, enum machine_mode));
+
+extern void notice_update_cc PARAMS ((rtx));
+extern void double_reg_from_memory PARAMS ((rtx[]));
+extern void double_reg_to_memory PARAMS ((rtx[]));
+extern enum rtx_code next_cc_user_code PARAMS ((rtx));
+extern int next_cc_user_unsigned PARAMS ((rtx));
+extern struct rtx_def *gen_tst_reg PARAMS ((rtx));
+extern const char *output_block_move PARAMS ((rtx[]));
+extern enum reg_class preferred_reload_class PARAMS ((rtx, enum reg_class));
+extern enum reg_class secondary_reload_class PARAMS ((enum reg_class,
+						      enum machine_mode, rtx));
+extern int emit_move_sequence PARAMS ((rtx *, enum machine_mode));
+extern void print_operand PARAMS ((FILE *, rtx, int));
+extern void print_operand_address PARAMS ((FILE *, rtx));
+extern void output_dsp16xx_float_const PARAMS ((rtx *));
+extern void emit_1600_core_shift PARAMS ((enum rtx_code, rtx *, int));
+extern int dsp16xx_address_cost PARAMS ((rtx));
+extern int symbolic_address_p PARAMS ((rtx));
+#endif /* RTX_CODE */
+
+
+#ifdef TREE_CODE
+extern struct rtx_def *dsp16xx_function_arg PARAMS ((CUMULATIVE_ARGS,
+						     enum machine_mode,
+						     tree, int));
+extern void dsp16xx_function_arg_advance PARAMS ((CUMULATIVE_ARGS *,
+						  enum machine_mode,
+						  tree, int));
+#endif /* TREE_CODE */
+
+extern void dsp16xx_invalid_register_for_compare PARAMS ((void));
+extern int class_max_nregs PARAMS ((enum reg_class, enum machine_mode));
+extern enum reg_class limit_reload_class PARAMS ((enum reg_class, enum machine_mode));
+extern int dsp16xx_register_move_cost PARAMS ((enum reg_class, enum reg_class));
+extern int dsp16xx_makes_calls PARAMS ((void));
+extern long compute_frame_size PARAMS ((int));
+extern int dsp16xx_call_saved_register PARAMS ((int));
+extern int dsp16xx_call_saved_register PARAMS ((int));
+extern void init_emulation_routines PARAMS ((void));
+extern int ybase_regs_ever_used PARAMS ((void));
+extern void override_options PARAMS ((void));
+extern int dsp16xx_starting_frame_offset PARAMS ((void));
+extern int initial_frame_pointer_offset PARAMS ((void));
+extern void asm_output_common PARAMS ((FILE *, const char *, int, int));
+extern void asm_output_local PARAMS ((FILE *, const char *, int, int));
+extern void asm_output_float PARAMS ((FILE *, double));
+extern void asm_output_long PARAMS ((FILE *, long));
+extern void dsp16xx_file_start PARAMS ((void));
+extern struct rtx_def *(*dsp16xx_compare_gen) PARAMS (());
+extern int hard_regno_mode_ok PARAMS ((int, enum machine_mode));
+extern enum reg_class dsp16xx_reg_class_from_letter PARAMS ((int));
+extern int regno_reg_class PARAMS ((int));
+extern void function_prologue PARAMS ((FILE *, int));
+extern void function_epilogue PARAMS ((FILE *, int));
diff -rup orig/egcs-CVS20000113/gcc/config/dsp16xx/dsp16xx.c egcs-CVS20000113/gcc/config/dsp16xx/dsp16xx.c
--- orig/egcs-CVS20000113/gcc/config/dsp16xx/dsp16xx.c	Wed Sep 15 12:55:37 1999
+++ egcs-CVS20000113/gcc/config/dsp16xx/dsp16xx.c	Thu Jan 13 12:00:54 2000
@@ -36,18 +36,21 @@ Boston, MA 02111-1307, USA.  */
 #include "function.h"
 #include "flags.h"
 #include "ggc.h"
+#include "toplev.h"
+#include "recog.h"
+#include "tm_p.h"
+
+const char *text_seg_name;
+const char *rsect_text;
+const char *data_seg_name;
+const char *rsect_data;
+const char *bss_seg_name;
+const char *rsect_bss;
+const char *const_seg_name;
+const char *rsect_const;
 
-char *text_seg_name;
-char *rsect_text;
-char *data_seg_name;
-char *rsect_data;
-char *bss_seg_name;
-char *rsect_bss;
-char *const_seg_name;
-char *rsect_const;
-
-char *chip_name;
-char *save_chip_name;
+const char *chip_name;
+const char *save_chip_name;
 
 /* Save the operands of a compare. The 16xx has not lt or gt, so
    in these cases we swap the operands and reverse the condition */
@@ -56,10 +59,10 @@ rtx dsp16xx_compare_op0;
 rtx dsp16xx_compare_op1;
 struct rtx_def *(*dsp16xx_compare_gen)();
 
-static char *fp;
-static char *sp;
-static char *rr;
-static char *a1h;
+static const char *fp;
+static const char *sp;
+static const char *rr;
+static const char *a1h;
 
 struct dsp16xx_frame_info current_frame_info;
 struct dsp16xx_frame_info zero_frame_info;
@@ -87,14 +90,14 @@ rtx dsp16xx_ashlhi3_libcall = (rtx) 0;
 rtx dsp16xx_ucmphi2_libcall = (rtx) 0;
 rtx dsp16xx_lshrhi3_libcall = (rtx) 0;
 
-char *himode_reg_name[] = HIMODE_REGISTER_NAMES;
+static const char *const himode_reg_name[] = HIMODE_REGISTER_NAMES;
 
 #define SHIFT_INDEX_1   0
 #define SHIFT_INDEX_4   1
 #define SHIFT_INDEX_8   2
 #define SHIFT_INDEX_16  3
 
-static char *ashift_right_asm[] = 
+static const char *const ashift_right_asm[] = 
 {
   "%0=%0>>1",
   "%0=%0>>4",
@@ -102,7 +105,7 @@ static char *ashift_right_asm[] = 
   "%0=%0>>16"
 };
 
-static char *ashift_right_asm_first[] = 
+static const char *const ashift_right_asm_first[] = 
 {
   "%0=%1>>1",
   "%0=%1>>4",
@@ -110,7 +113,7 @@ static char *ashift_right_asm_first[] = 
   "%0=%1>>16"
 };
 
-static char *ashift_left_asm[] = 
+static const char *const ashift_left_asm[] = 
 {
   "%0=%0<<1",
   "%0=%0<<4",
@@ -118,7 +121,7 @@ static char *ashift_left_asm[] = 
   "%0=%0<<16"
 };
 
-static char *ashift_left_asm_first[] = 
+static const char *const ashift_left_asm_first[] = 
 {
   "%0=%1<<1",
   "%0=%1<<4",
@@ -126,7 +129,7 @@ static char *ashift_left_asm_first[] = 
   "%0=%1<<16"
 };
 
-static char *lshift_right_asm[] = 
+static const char *const lshift_right_asm[] = 
 {
   "%0=%0>>1\n\t%0=%b0&0x7fff",
   "%0=%0>>4\n\t%0=%b0&0x0fff",
@@ -134,7 +137,7 @@ static char *lshift_right_asm[] = 
   "%0=%0>>16\n\t%0=%b0&0x0000"
 };
 
-static char *lshift_right_asm_first[] = 
+static const char *const lshift_right_asm_first[] = 
 {
   "%0=%1>>1\n\t%0=%b0&0x7fff",
   "%0=%1>>4\n\t%0=%b0&0x0fff",
@@ -142,10 +145,12 @@ static char *lshift_right_asm_first[] = 
   "%0=%1>>16\n\t%0=%b0&0x0000"
 };
 
+static int reg_save_size PARAMS ((void));
+
 int 
 hard_regno_mode_ok (regno, mode)
-int regno;
-enum machine_mode mode;
+     int regno;
+     enum machine_mode mode;
 {
   switch ((int) mode)
     {
@@ -186,7 +191,7 @@ enum machine_mode mode;
 
 enum reg_class
 dsp16xx_reg_class_from_letter (c)
-int c;
+     int c;
 {
   switch (c)
     {
@@ -272,7 +277,7 @@ int c;
 
 int 
 regno_reg_class(regno)
-int regno;
+     int regno;
 {
   switch (regno)
     {
@@ -345,16 +350,16 @@ int regno;
 
 int
 class_max_nregs(class, mode)
-enum reg_class class;
-enum machine_mode mode;
+     enum reg_class class ATTRIBUTE_UNUSED;
+     enum machine_mode mode;
 {
     return (GET_MODE_SIZE(mode));
 }
 
 enum reg_class
 limit_reload_class (mode, class)
-enum machine_mode mode;
-enum reg_class class;
+     enum machine_mode mode;
+     enum reg_class class;
 {
   switch ((int) class)
     {
@@ -551,7 +556,7 @@ enum reg_class class;
 
 int
 dsp16xx_register_move_cost (from, to)
-enum reg_class from, to;
+     enum reg_class from, to;
 {
 #if 0
   if (from == NO_REGS || to == NO_REGS || (from == to))
@@ -870,15 +875,15 @@ secondary_reload_class (class, mode, in)
 
 int
 symbolic_address_operand (op, mode)
-rtx op;
-enum machine_mode mode;
+     rtx op;
+     enum machine_mode mode ATTRIBUTE_UNUSED;
 {
-    return (symbolic_address_p (op));
-
+  return (symbolic_address_p (op));
 }
 
-int symbolic_address_p (op)
-rtx op;
+int
+symbolic_address_p (op)
+     rtx op;
 {
   switch (GET_CODE (op))
     {
@@ -904,16 +909,16 @@ rtx op;
 
 int
 Y_address_operand (op, mode)
-rtx op;
-enum machine_mode mode;
+     rtx op;
+     enum machine_mode mode;
 {
-   return (memory_address_p (mode, op) && !symbolic_address_p (op));
+  return (memory_address_p (mode, op) && !symbolic_address_p (op));
 }	     
 
 int
 sp_operand (op, mode)
-rtx op;
-enum machine_mode mode;
+     rtx op;
+     enum machine_mode mode ATTRIBUTE_UNUSED;
 {
     return (GET_CODE (op) == PLUS
 	    && (XEXP (op, 0) == stack_pointer_rtx
@@ -923,8 +928,8 @@ enum machine_mode mode;
 
 int
 sp_operand2 (op, mode)
-rtx op;
-enum machine_mode mode;
+     rtx op;
+     enum machine_mode mode ATTRIBUTE_UNUSED;
 {
   if ((GET_CODE (op) == PLUS 
        && (XEXP (op, 0) == stack_pointer_rtx
@@ -944,16 +949,16 @@ enum machine_mode mode;
 
 int
 nonmemory_arith_operand (op, mode)
-rtx op;
-enum machine_mode mode;
+     rtx op;
+     enum machine_mode mode;
 {
   return (immediate_operand (op, mode) || arith_reg_operand (op, mode));
 }
 
 int
 arith_reg_operand (op, mode)
-rtx op;
-enum machine_mode mode;
+     rtx op;
+     enum machine_mode mode;
 {
   return (register_operand (op, mode)
 	  && (GET_CODE (op) != REG
@@ -964,8 +969,8 @@ enum machine_mode mode;
 
 int
 call_address_operand (op, mode)
-rtx op;
-enum machine_mode mode;
+     rtx op;
+     enum machine_mode mode ATTRIBUTE_UNUSED;
 {
     if (symbolic_address_p (op) || REG_P(op))
     {
@@ -988,7 +993,7 @@ dsp16xx_comparison_operator (op, mode)
 
 void
 notice_update_cc(exp)
-rtx exp;
+     rtx exp;
 {
     if (GET_CODE (exp) == SET)
     {
@@ -1104,8 +1109,9 @@ dsp16xx_makes_calls ()
   return 0;
 }
 
-long compute_frame_size (size)
-int size;
+long
+compute_frame_size (size)
+     int size;
 {
   long total_size;
   long var_size;
@@ -1144,7 +1150,7 @@ int size;
 
 int
 dsp16xx_call_saved_register (regno)
-int regno;
+     int regno;
 {
   return (regs_ever_live[regno] && !call_used_regs[regno] &&
 	  !IS_YBASE_REGISTER_WINDOW(regno));
@@ -1169,8 +1175,8 @@ ybase_regs_ever_used ()
 
 void 
 function_prologue (file, size)
-FILE *file;
-int  size;
+     FILE *file;
+     int  size;
 {
   int regno;
   long total_size;
@@ -1182,14 +1188,14 @@ int  size;
   total_size = compute_frame_size (size);
   
   fprintf( file, "\t/* FUNCTION PROLOGUE: */\n" );
-  fprintf (file, "\t/* total=%d, vars= %d, regs= %d, args=%d, extra= %d */\n",
+  fprintf (file, "\t/* total=%ld, vars= %ld, regs= %d, args=%d, extra= %ld */\n",
 	   current_frame_info.total_size,
 	   current_frame_info.var_size,
 	   current_frame_info.reg_size,
 	   current_function_outgoing_args_size,
 	   current_frame_info.extra_size);
   
-  fprintf (file, "\t/* fp save offset= %d, sp save_offset= %d */\n\n",
+  fprintf (file, "\t/* fp save offset= %ld, sp save_offset= %ld */\n\n",
 	   current_frame_info.fp_save_offset,
 	   current_frame_info.sp_save_offset);
   /* Set up the 'ybase' register window. */
@@ -1217,7 +1223,7 @@ int  size;
       else
         {
 	  if(SMALL_INTVAL(current_frame_info.var_size) && ((current_frame_info.var_size & 0x8000) == 0))
-	    fprintf (file, "\t%s=%d\n\t*%s++%s\n", reg_names[REG_J], current_frame_info.var_size, sp, reg_names[REG_J]);
+	    fprintf (file, "\t%s=%ld\n\t*%s++%s\n", reg_names[REG_J], current_frame_info.var_size, sp, reg_names[REG_J]);
 	  else
 	    fatal ("Stack size > 32k");
 	}
@@ -1244,7 +1250,7 @@ int  size;
       else
         {
 	  if(SMALL_INTVAL(current_frame_info.args_size) && ((current_frame_info.args_size & 0x8000) == 0))
-	    fprintf (file, "\t%s=%d\n\t*%s++%s\n", reg_names[REG_J], current_frame_info.args_size, sp, reg_names[REG_J]);
+	    fprintf (file, "\t%s=%ld\n\t*%s++%s\n", reg_names[REG_J], current_frame_info.args_size, sp, reg_names[REG_J]);
 	  else
 	    fatal ("Stack size > 32k");
 	}
@@ -1254,7 +1260,7 @@ int  size;
     {
       fprintf( file, "\t%s=%s\n", a1h, sp );
       fprintf( file, "\t%s=%s\n", fp, a1h );  /* Establish new base frame */
-      fprintf( file, "\t%s=%d\n", reg_names[REG_J], -total_size);
+      fprintf( file, "\t%s=%ld\n", reg_names[REG_J], -total_size);
       fprintf( file, "\t*%s++%s\n", fp, reg_names[REG_J]);
     }
   
@@ -1290,11 +1296,13 @@ init_emulation_routines ()
 }
 void
 function_epilogue (file, size)
-FILE *file;
-int   size;
+     FILE *file;
+     int size ATTRIBUTE_UNUSED;
 {
   int regno;
+#if OLD_REGISTER_SAVE  
   int initial_stack_dec = 0;
+#endif
   
   fp = reg_names[FRAME_POINTER_REGNUM];
   sp = reg_names[STACK_POINTER_REGNUM];
@@ -1309,7 +1317,7 @@ int   size;
 	fprintf (file, "\t*%s--\n", sp);
       else
 	{
-	  fprintf (file, "\t%s=%d\n\t*%s++%s\n", 
+	  fprintf (file, "\t%s=%ld\n\t*%s++%s\n", 
 		   reg_names[REG_J], -current_frame_info.args_size, sp, reg_names[REG_J]);
 	}
     }
@@ -1356,7 +1364,7 @@ int   size;
 	fprintf (file, "\t*%s--\n", sp);
       else
 	{
-	  fprintf (file, "\t%s=%d\n\t*%s++%s\n", 
+	  fprintf (file, "\t%s=%ld\n\t*%s++%s\n", 
 		   reg_names[REG_J], -current_frame_info.var_size, sp, reg_names[REG_J]);
 	}
     }
@@ -1391,7 +1399,7 @@ emit_move_sequence (operands, mode)
 
 void
 double_reg_from_memory (operands)
-rtx operands[];
+     rtx operands[];
 {
     rtx xoperands[4];
 
@@ -1412,7 +1420,6 @@ rtx operands[];
     else if (GET_CODE(XEXP(operands[1],0)) == PLUS)
     {
       rtx addr;
-      rtx base;
       int offset;
 
       output_asm_insn ("%u0=%1", operands);
@@ -1440,7 +1447,7 @@ rtx operands[];
 
 void
 double_reg_to_memory (operands)
-rtx operands[];
+     rtx operands[];
 {
     rtx xoperands[4];
 
@@ -1491,6 +1498,8 @@ rtx operands[];
 void
 override_options ()
 {
+  char *tmp;
+
   if (chip_name == (char *) 0)
     chip_name = DEFAULT_CHIP_NAME;
 
@@ -1508,19 +1517,21 @@ override_options ()
   
   save_chip_name = xstrdup (chip_name);
 
-  rsect_text = (char *) xmalloc (strlen(".rsect ") + 
-				 strlen(text_seg_name) + 3);
-  rsect_data = (char *) xmalloc (strlen(".rsect ") + 
-				 strlen(data_seg_name) + 3);
-  rsect_bss = (char *) xmalloc (strlen(".rsect ") + 
-				strlen(bss_seg_name) + 3);
-  rsect_const = (char *) xmalloc (strlen(".rsect ") + 
-				  strlen(const_seg_name) + 3);
-  
-  sprintf (rsect_text, ".rsect \"%s\"", text_seg_name);
-  sprintf (rsect_data, ".rsect \"%s\"", data_seg_name);
-  sprintf (rsect_bss,  ".rsect \"%s\"", bss_seg_name);
-  sprintf (rsect_const, ".rsect \"%s\"", const_seg_name);
+  rsect_text = tmp = (char *) xmalloc (strlen(".rsect ") + 
+				       strlen(text_seg_name) + 3);
+  sprintf (tmp, ".rsect \"%s\"", text_seg_name);
+
+  rsect_data = tmp = (char *) xmalloc (strlen(".rsect ") + 
+				       strlen(data_seg_name) + 3);
+  sprintf (tmp, ".rsect \"%s\"", data_seg_name);
+
+  rsect_bss = tmp = (char *) xmalloc (strlen(".rsect ") + 
+				      strlen(bss_seg_name) + 3);
+  sprintf (tmp,  ".rsect \"%s\"", bss_seg_name);
+
+  rsect_const = tmp = (char *) xmalloc (strlen(".rsect ") + 
+					strlen(const_seg_name) + 3);
+  sprintf (tmp, ".rsect \"%s\"", const_seg_name);
   
   if (optimize)
     {
@@ -1558,7 +1569,7 @@ override_options ()
 
 enum rtx_code
 next_cc_user_code (insn)
-rtx insn;
+     rtx insn;
 {
   if ( !(insn = next_cc0_user (insn)))
     abort ();
@@ -1592,9 +1603,9 @@ next_cc_user_unsigned (insn)
 
 void
 print_operand(file, op, letter)
-FILE *file;
-rtx op;
-int letter;
+     FILE *file;
+     rtx op;
+     int letter;
 {
     enum rtx_code code;
 
@@ -1688,8 +1699,8 @@ int letter;
 
 void
 print_operand_address(file, addr)
-FILE *file;
-rtx addr;
+     FILE *file;
+     rtx addr;
 {
   rtx base;
   int offset;
@@ -1733,9 +1744,8 @@ rtx addr;
 
 void
 output_dsp16xx_float_const(operands)
-rtx *operands;
+     rtx *operands;
 {
-  rtx dst = operands[0];
   rtx src = operands[1];
   
 #if HOST_FLOAT_FORMAT == TARGET_FLOAT_FORMAT
@@ -1752,7 +1762,7 @@ rtx *operands;
 #endif
 }
 
-int
+static int
 reg_save_size ()
 {
   int reg_save_size = 0;
@@ -1785,8 +1795,6 @@ dsp16xx_starting_frame_offset()
 int
 initial_frame_pointer_offset()
 {
-  int frame_size;
-  int regno;
   int offset = 0;
   
   offset = compute_frame_size (get_frame_size());
@@ -1804,10 +1812,10 @@ initial_frame_pointer_offset()
 #if 0
 void
 emit_1600_core_shift (shift_op, operands, shift_amount, mode)
-enum rtx_code shift_op;
-rtx *operands;
-int shift_amount;
-enum machine_mode mode;
+     enum rtx_code shift_op;
+     rtx *operands;
+     int shift_amount;
+     enum machine_mode mode;
 {
   int quotient;
   int i;
@@ -1868,15 +1876,15 @@ enum machine_mode mode;
 #else
 void
 emit_1600_core_shift (shift_op, operands, shift_amount)
-enum rtx_code shift_op;
-rtx *operands;
-int shift_amount;
+     enum rtx_code shift_op;
+     rtx *operands;
+     int shift_amount;
 {
   int quotient;
   int i;
   int first_shift_emitted = 0;
-  char **shift_asm_ptr;
-  char **shift_asm_ptr_first;
+  const char * const *shift_asm_ptr;
+  const char * const *shift_asm_ptr_first;
 
   if (shift_op == ASHIFT)
     {
@@ -1938,11 +1946,11 @@ int shift_amount;
 }
 #endif
 void
-  asm_output_common(file, name, size, rounded)
-FILE *file;
-char *name;
-int size;
-int rounded;
+asm_output_common(file, name, size, rounded)
+     FILE *file;
+     const char *name;
+     int size ATTRIBUTE_UNUSED;
+     int rounded;
 {
     bss_section ();
     ASM_GLOBALIZE_LABEL (file, name);
@@ -1956,10 +1964,10 @@ int rounded;
 
 void
 asm_output_local(file, name, size, rounded)
-FILE *file;
-char *name;
-int size;
-int rounded;
+     FILE *file;
+     const char *name;
+     int size ATTRIBUTE_UNUSED;
+     int rounded;
 {
     bss_section ();
     assemble_name (file, name);
@@ -1972,8 +1980,8 @@ int rounded;
 
 void
 asm_output_float (file, fp_const)
-FILE *file;
-double fp_const;
+     FILE *file;
+     double fp_const;
 {
 #if HOST_FLOAT_FORMAT == TARGET_FLOAT_FORMAT
       REAL_VALUE_TYPE d = fp_const;
@@ -1982,9 +1990,9 @@ double fp_const;
       REAL_VALUE_TO_TARGET_SINGLE (d, value);
       fputs ("\tint ", file);
 #ifdef WORDS_BIG_ENDIAN
-      fprintf (file, "0x%-4.4x, 0x%-4.4x", (value >> 16) & 0xffff, (value & 0xffff));
+      fprintf (file, "0x%-4.4lx, 0x%-4.4lx", (value >> 16) & 0xffff, (value & 0xffff));
 #else
-      fprintf (file, "0x%-4.4x, 0x%-4.4x", (value & 0xffff), (value >> 16) & 0xffff);
+      fprintf (file, "0x%-4.4lx, 0x%-4.4lx", (value & 0xffff), (value >> 16) & 0xffff);
 #endif
       fputs ("\n", file);
 #else
@@ -1994,21 +2002,21 @@ double fp_const;
 
 void
 asm_output_long (file, value)
-FILE *file;
-long value;
+     FILE *file;
+     long value;
 {
       fputs ("\tint ", file);
 #ifdef WORDS_BIG_ENDIAN
-      fprintf (file, "0x%-4.4x, 0x%-4.4x", (value >> 16) & 0xffff, (value & 0xffff));
+      fprintf (file, "0x%-4.4lx, 0x%-4.4lx", (value >> 16) & 0xffff, (value & 0xffff));
 #else
-      fprintf (file, "0x%-4.4x, 0x%-4.4x", (value & 0xffff), (value >> 16) & 0xffff);
+      fprintf (file, "0x%-4.4lx, 0x%-4.4lx", (value & 0xffff), (value >> 16) & 0xffff);
 #endif
       fputs ("\n", file);
 }
 
 int
 dsp16xx_address_cost (addr)
-rtx addr;
+     rtx addr;
 {
     switch (GET_CODE (addr))
     {
@@ -2129,7 +2137,7 @@ dsp16xx_function_arg_advance (cum, mode,
      CUMULATIVE_ARGS *cum;	/* current arg information */
      enum machine_mode mode;	/* current arg mode */
      tree type;			/* type of the argument or 0 if lib support */
-     int named;			/* whether or not the argument was named */
+     int named ATTRIBUTE_UNUSED;/* whether or not the argument was named */
 {
   if (TARGET_REGPARM)
     {
@@ -2259,7 +2267,7 @@ gen_compare_reg (code, x, y)
   return cc0_rtx;
 }
 
-char *
+const char *
 output_block_move (operands)
      rtx operands[];
 {
diff -rup orig/egcs-CVS20000113/gcc/config/dsp16xx/dsp16xx.h egcs-CVS20000113/gcc/config/dsp16xx/dsp16xx.h
--- orig/egcs-CVS20000113/gcc/config/dsp16xx/dsp16xx.h	Tue Jan  4 15:48:21 2000
+++ egcs-CVS20000113/gcc/config/dsp16xx/dsp16xx.h	Thu Jan 13 11:40:11 2000
@@ -19,20 +19,18 @@ along with GNU CC; see the file COPYING.
 the Free Software Foundation, 59 Temple Place - Suite 330,
 Boston, MA 02111-1307, USA.  */
 
-extern char *low_reg_names[];
-extern char *text_seg_name;
-extern char *rsect_text;
-extern char *data_seg_name;
-extern char *rsect_data;
-extern char *bss_seg_name;
-extern char *rsect_bss;
-extern char *const_seg_name;
-extern char *rsect_const;
-extern char *chip_name;
-extern char *save_chip_name;
+extern const char *low_reg_names[];
+extern const char *text_seg_name;
+extern const char *rsect_text;
+extern const char *data_seg_name;
+extern const char *rsect_data;
+extern const char *bss_seg_name;
+extern const char *rsect_bss;
+extern const char *const_seg_name;
+extern const char *rsect_const;
+extern const char *chip_name;
+extern const char *save_chip_name;
 extern struct rtx_def *dsp16xx_compare_op0, *dsp16xx_compare_op1;
-extern struct rtx_def *(*dsp16xx_compare_gen)();
-extern struct rtx_def *gen_compare_reg();
 extern struct rtx_def *dsp16xx_addhf3_libcall;
 extern struct rtx_def *dsp16xx_subhf3_libcall;
 extern struct rtx_def *dsp16xx_mulhf3_libcall;
@@ -56,29 +54,6 @@ extern struct rtx_def *dsp16xx_ashrhi3_l
 extern struct rtx_def *dsp16xx_ashlhi3_libcall;
 extern struct rtx_def *dsp16xx_lshrhi3_libcall;
 
-
-extern int hard_regno_mode_ok ();
-extern enum reg_class dsp16xx_reg_class_from_letter ();
-extern enum reg_class dsp16xx_limit_reload_class ();
-extern int hard_regno_nregs ();
-extern int regno_reg_class ();
-extern int move_operand ();
-extern int symbolic_address_p ();
-extern int Y_address ();
-extern int call_address_operand ();
-extern void notice_update_cc();
-extern void function_prologue ();
-extern void function_epilogue ();
-extern int  dsp1600_comparison_reverse ();
-extern void double_reg_from_memory ();
-extern void double_reg_to_memory ();
-extern struct rtx_def *dsp16xx_function_arg ();
-extern void dsp16xx_function_arg_advance ();
-extern enum rtx_code next_cc_user_code ();
-extern int next_cc_user_unsigned ();
-extern struct rtx_def *gen_tst_reg ();
-extern char *output_block_move();
-
 /* RUN-TIME TARGET SPECIFICATION */
 #define DSP16XX   1
 
@@ -1671,11 +1646,11 @@ const_section ()                        
 #define ASM_OUTPUT_ASCII(MYFILE, MYSTRING, MYLENGTH) \
   do {									      \
     FILE *_hide_asm_out_file = (MYFILE);				      \
-    unsigned char *_hide_p = (unsigned char *) (MYSTRING);		      \
+    const unsigned char *_hide_p = (const unsigned char *) (MYSTRING);	      \
     int _hide_thissize = (MYLENGTH);					      \
     {									      \
       FILE *asm_out_file = _hide_asm_out_file;				      \
-      unsigned char *p = _hide_p;					      \
+      const unsigned char *p = _hide_p;					      \
       int thissize = _hide_thissize;					      \
       int i;								      \
 									      \
@@ -1970,4 +1945,3 @@ const_section ()                        
    are not currently supporting c++. */
 #define INIT_SECTION_ASM_OP  1
 
-void dsp16xx_invalid_register_for_compare ();
diff -rup orig/egcs-CVS20000113/gcc/config/dsp16xx/dsp16xx.md egcs-CVS20000113/gcc/config/dsp16xx/dsp16xx.md
--- orig/egcs-CVS20000113/gcc/config/dsp16xx/dsp16xx.md	Tue Sep  7 01:48:26 1999
+++ egcs-CVS20000113/gcc/config/dsp16xx/dsp16xx.md	Thu Jan 13 12:07:32 2000
@@ -117,6 +117,8 @@
 
 	   case 2:
    	      return \"%0&%H1\";
+           default:
+              abort();
          }
 }"
   [(set_attr "type" "f3_alu,malu,f3_alu_i")])
@@ -405,6 +407,8 @@
 
     case 7:
       return \"%3=%2\;*%0++%3\";
+    default:
+      abort();
     }
 }")
 
@@ -485,6 +489,8 @@
     case 3:
     case 4:
       return \"%m0=%m1-%m2\";
+    default:
+      abort();
     }
 }")
 
@@ -921,6 +927,8 @@
 		case 8:
 		case 9:
 		   return \"\";
+                default:
+                   abort();
         }
 }"
 [(set_attr "type" "move,move,load_i,load_i,load,store,load,store,move,move")])
@@ -986,6 +994,8 @@
 
                 case 9: case 10:
 		   return \"%0=%1\";
+                default:
+                   abort();
 	}
 }")
 
@@ -1032,6 +1042,8 @@
 
                 case 9: case 10:
 		   return \"%0=%1\";
+                default:
+                   abort();
 	}
 }")
 
@@ -1187,6 +1199,8 @@
 		case 5:
 		case 6:
 		   return \"%u0=%u1\;%w0=%w1\";
+                default:
+                   abort();
         }
 }"
 [(set_attr "type" "move,move,load_i,load,store,load,store")])


More information about the Gcc-patches mailing list