dsp16xx-protos.h: New file.
authorKaveh R. Ghazi <ghazi@caip.rutgers.edu>
Fri, 14 Jan 2000 16:16:46 +0000 (16:16 +0000)
committerKaveh Ghazi <ghazi@gcc.gnu.org>
Fri, 14 Jan 2000 16:16:46 +0000 (16:16 +0000)
* 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.

From-SVN: r31416

gcc/ChangeLog
gcc/config/dsp16xx/dsp16xx-protos.h [new file with mode: 0644]
gcc/config/dsp16xx/dsp16xx.c
gcc/config/dsp16xx/dsp16xx.h
gcc/config/dsp16xx/dsp16xx.md

index d1a86ab..29f0ccf 100644 (file)
@@ -1,5 +1,17 @@
 2000-01-14  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.
+
+2000-01-14  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
+
        * convex-protos.h: New file.
 
        * convex.c: Include tm_p.h.  Add static prototypes.  Fix compile
diff --git a/gcc/config/dsp16xx/dsp16xx-protos.h b/gcc/config/dsp16xx/dsp16xx-protos.h
new file mode 100644 (file)
index 0000000..dc92954
--- /dev/null
@@ -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));
index a0ca8c9..0c81dd1 100644 (file)
@@ -36,18 +36,21 @@ Boston, MA 02111-1307, USA.  */
 #include "function.h"
 #include "flags.h"
 #include "ggc.h"
-
-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;
+#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;
+
+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, type, named)
      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[];
 {
index 625deaf..26a6931 100644 (file)
@@ -19,20 +19,18 @@ 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.  */
 
-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_libcall;
 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 ();
index 5ded3bb..8f96467 100644 (file)
 
           case 2:
              return \"%0&%H1\";
+           default:
+              abort();
          }
 }"
   [(set_attr "type" "f3_alu,malu,f3_alu_i")])
 
     case 7:
       return \"%3=%2\;*%0++%3\";
+    default:
+      abort();
     }
 }")
 
     case 3:
     case 4:
       return \"%m0=%m1-%m2\";
+    default:
+      abort();
     }
 }")
 
                case 8:
                case 9:
                   return \"\";
+                default:
+                   abort();
         }
 }"
 [(set_attr "type" "move,move,load_i,load_i,load,store,load,store,move,move")])
 
                 case 9: case 10:
                   return \"%0=%1\";
+                default:
+                   abort();
        }
 }")
 
 
                 case 9: case 10:
                   return \"%0=%1\";
+                default:
+                   abort();
        }
 }")
 
                case 5:
                case 6:
                   return \"%u0=%u1\;%w0=%w1\";
+                default:
+                   abort();
         }
 }"
 [(set_attr "type" "move,move,load_i,load,store,load,store")])