aboutsummaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
authorKaveh R. Ghazi <ghazi@caip.rutgers.edu>2000-01-14 16:04:32 +0000
committerKaveh Ghazi <ghazi@gcc.gnu.org>2000-01-14 16:04:32 +0000
commit6b995286d688d8f2d23b5e179d5cbe44cce48308 (patch)
tree7c1decd8188ee45df99065ae16b5bb385263fdaa /gcc
parentab526045918871bdd1f351b9e7ce98946a8403d9 (diff)
downloadgcc-6b995286d688d8f2d23b5e179d5cbe44cce48308.zip
gcc-6b995286d688d8f2d23b5e179d5cbe44cce48308.tar.gz
gcc-6b995286d688d8f2d23b5e179d5cbe44cce48308.tar.bz2
convex-protos.h: New file.
* convex-protos.h: New file. * convex.c: Include tm_p.h. Add static prototypes. Fix compile time warnings. * convex.h: Move prototypes to convex-protos.h. Fix compile time warnings. From-SVN: r31415
Diffstat (limited to 'gcc')
-rw-r--r--gcc/ChangeLog10
-rw-r--r--gcc/config/convex/convex-protos.h50
-rw-r--r--gcc/config/convex/convex.c44
-rw-r--r--gcc/config/convex/convex.h21
4 files changed, 94 insertions, 31 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index 4431b3e..d1a86ab 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,5 +1,15 @@
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
+ time warnings.
+
+ * convex.h: Move prototypes to convex-protos.h. Fix compile time
+ warnings.
+
+2000-01-14 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
+
* elxsi-protos.h: New file.
* elxsi.c: Include tm_p.h. Add static prototypes. Fix compile
diff --git a/gcc/config/convex/convex-protos.h b/gcc/config/convex/convex-protos.h
new file mode 100644
index 0000000..9ec9680
--- /dev/null
+++ b/gcc/config/convex/convex-protos.h
@@ -0,0 +1,50 @@
+/* Definitions of target machine for GNU compiler. Convex 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. */
+
+#ifdef RTX_CODE
+extern int const_double_low_int PARAMS ((rtx));
+extern int const_double_high_int PARAMS ((rtx));
+extern const char *output_cmp PARAMS ((rtx, rtx, int));
+extern const char *output_condjump PARAMS ((rtx, const char *, int));
+extern const char *output_call PARAMS ((rtx, rtx *));
+extern rtx simplify_for_convex PARAMS ((rtx));
+extern void print_operand PARAMS ((FILE *, rtx, int));
+extern void print_operand_address PARAMS ((FILE *, rtx));
+extern void expand_movstr PARAMS ((rtx *));
+
+extern int nonmemory_operand PARAMS ((rtx, enum machine_mode));
+extern int nonmemory_cmpsf_operand PARAMS ((rtx, enum machine_mode));
+#endif /* RTX_CODE */
+
+#ifdef TREE_CODE
+extern void asm_declare_function_name PARAMS ((FILE *, const char *, tree));
+#endif /* TREE_CODE */
+
+#ifdef REAL_VALUE_TYPE
+extern int check_float_value PARAMS ((enum machine_mode, REAL_VALUE_TYPE *,
+ int));
+extern void outfloat PARAMS ((FILE *, REAL_VALUE_TYPE, const char *,
+ const char *, const char *));
+#endif /* REAL_VALUE_TYPE */
+
+extern void psw_disable_float PARAMS ((void));
+extern void init_convex PARAMS ((void));
+extern void replace_arg_pushes PARAMS ((void));
+extern void emit_ap_optimizations PARAMS ((void));
diff --git a/gcc/config/convex/convex.c b/gcc/config/convex/convex.c
index 63de08c..69e1339 100644
--- a/gcc/config/convex/convex.c
+++ b/gcc/config/convex/convex.c
@@ -1,5 +1,5 @@
/* Subroutines for insn-output.c for Convex.
- Copyright (C) 1988, 93, 94, 97, 98, 1999 Free Software Foundation, Inc.
+ Copyright (C) 1988, 93, 94, 97-99, 2000 Free Software Foundation, Inc.
This file is part of GNU CC.
@@ -32,6 +32,7 @@ Boston, MA 02111-1307, USA. */
#include "output.h"
#include "function.h"
#include "expr.h"
+#include "tm_p.h"
/* Tables used in convex.h */
@@ -55,13 +56,16 @@ static char cmp_modech;
/* Forwards */
+#if 0
static rtx frame_argblock;
static int frame_argblock_size;
static rtx convert_arg_pushes ();
-static void expand_movstr_call ();
+#endif
+static void expand_movstr_call PARAMS ((rtx *));
/* Here from OVERRIDE_OPTIONS at startup. Initialize constant tables. */
+void
init_convex ()
{
int regno;
@@ -101,6 +105,7 @@ init_convex ()
psw_disable_float ();
}
+void
psw_disable_float ()
{
#if __convex__ && __GNUC__
@@ -117,10 +122,10 @@ psw_disable_float ()
/* Here to output code for a compare insn. Output nothing, just
record the operands and their mode. */
-char *
+const char *
output_cmp (operand0, operand1, modech)
rtx operand0, operand1;
- char modech;
+ int modech;
{
cmp_operand0 = operand0;
cmp_operand1 = operand1;
@@ -137,11 +142,11 @@ output_cmp (operand0, operand1, modech)
(beq L5)
*/
-char *
+const char *
output_condjump (label, cond, jbr_sense)
rtx label;
- char *cond;
- char jbr_sense;
+ const char *cond;
+ int jbr_sense;
{
rtx operands[3];
char cmp_op[4];
@@ -251,6 +256,8 @@ simplify_for_convex (x)
case CONST:
return simplify_for_convex (XEXP (x, 0));
+ default:
+ break;
}
return x;
@@ -458,13 +465,13 @@ check_float_value (mode, dp, overflow)
void
asm_declare_function_name (file, name, decl)
FILE *file;
- char *name;
+ const char *name;
tree decl;
{
- tree parms;
int nargs = list_length (DECL_ARGUMENTS (decl));
- char *p, c;
+ const char *p;
+ char c;
extern char *version_string;
static char vers[4];
int i;
@@ -498,10 +505,11 @@ asm_declare_function_name (file, name, decl)
%z prints a CONST_INT shift count as a multiply operand -- viz. 1 << n.
*/
+void
print_operand (file, x, code)
FILE *file;
rtx x;
- char code;
+ int code;
{
long u[2];
REAL_VALUE_TYPE d;
@@ -531,9 +539,9 @@ print_operand (file, x, code)
}
#endif
if (code == 'u')
- fprintf (file, "#%#x", u[0]);
+ fprintf (file, "#%#lx", u[0]);
else if (code == 'v')
- fprintf (file, "#%#x", u[1]);
+ fprintf (file, "#%#lx", u[1]);
else
outfloat (file, d, "%.17e", "#", "");
break;
@@ -565,6 +573,7 @@ print_operand (file, x, code)
/* Print a memory operand whose address is X, on file FILE. */
+void
print_operand_address (file, addr)
FILE *file;
rtx addr;
@@ -612,10 +621,11 @@ print_operand_address (file, addr)
/* Output a float to FILE, value VALUE, format FMT, preceded by PFX
and followed by SFX. */
+void
outfloat (file, value, fmt, pfx, sfx)
FILE *file;
REAL_VALUE_TYPE value;
- char *fmt, *pfx, *sfx;
+ const char *fmt, *pfx, *sfx;
{
char buf[64];
fputs (pfx, file);
@@ -631,6 +641,7 @@ outfloat (file, value, fmt, pfx, sfx)
and the calling sequence does not require the arg block to be at the
top of the stack. */
+void
replace_arg_pushes ()
{
/* Doesn't work yet. */
@@ -644,9 +655,9 @@ replace_arg_pushes ()
4 - address of the arg list.
*/
-char *
+const char *
output_call (insn, operands)
- rtx insn, *operands;
+ rtx insn ATTRIBUTE_UNUSED, *operands;
{
if (operands[4] == stack_pointer_rtx)
output_asm_insn ("mov sp,ap", operands);
@@ -669,6 +680,7 @@ output_call (insn, operands)
/* Here after reloading, before the second scheduling pass. */
+void
emit_ap_optimizations ()
{
/* Removed for now. */
diff --git a/gcc/config/convex/convex.h b/gcc/config/convex/convex.h
index 4e4a1e3..86dc07e 100644
--- a/gcc/config/convex/convex.h
+++ b/gcc/config/convex/convex.h
@@ -1,5 +1,5 @@
/* Definitions of target machine for GNU compiler. Convex version.
- Copyright (C) 1988, 1994, 1995, 1996 Free Software Foundation, Inc.
+ Copyright (C) 1988, 1994, 1995, 1996, 2000 Free Software Foundation, Inc.
This file is part of GNU CC.
@@ -628,7 +628,7 @@ enum reg_class {
of length N_REG_CLASSES. */
#define REG_CLASS_CONTENTS \
- { 0, 0x00ff, 0xfe00, 0x0100, 0xff00, 0xfeff, 0xffff }
+ { {0}, {0x00ff}, {0xfe00}, {0x0100}, {0xff00}, {0xfeff}, {0xffff} }
/* The same information, inverted:
Return the class number of the smallest class containing
@@ -1107,7 +1107,7 @@ enum reg_class {
#define RTX_COSTS(RTX,CODE,OUTER_CODE) \
case PLUS: \
- if (regno_pointer_flag != 0 \
+ if (cfun->emit->regno_pointer_flag != 0 \
&& GET_CODE (XEXP (RTX, 0)) == REG \
&& REGNO_POINTER_FLAG (REGNO (XEXP (RTX, 0))) \
&& GET_CODE (XEXP (RTX, 1)) == CONST_INT) \
@@ -1172,11 +1172,10 @@ enum reg_class {
/* But must prevent real.c from constructing Vax dfloats */
#define REAL_VALUE_ATOF(X,S) atof (X)
-extern double atof();
/* Check a `double' value for validity for a particular machine mode. */
#define CHECK_FLOAT_VALUE(MODE, D, OVERFLOW) \
- OVERFLOW = check_float_value (MODE, &D, OVERFLOW)
+ (OVERFLOW = check_float_value (MODE, &D, OVERFLOW))
/* Tell final.c how to eliminate redundant test instructions. */
@@ -1235,13 +1234,13 @@ extern double atof();
that says to advance the location counter
to a multiple of 2**LOG bytes. */
-#define ASM_OUTPUT_ALIGN(FILE,LOG) \
+#define ASM_OUTPUT_ALIGN(FILE,LOG) do { \
if (current_section_is_text && (LOG) > 1) \
fprintf (FILE, ".text %d\n", LOG); \
else if (current_section_is_text) \
fprintf (FILE, ".text\n.align %d\n", 1 << (LOG)); \
else \
- fprintf (FILE, ".align %d\n", 1 << (LOG))
+ fprintf (FILE, ".align %d\n", 1 << (LOG)); } while (0)
/* How to refer to registers in assembler output.
This sequence is indexed by compiler's hard-register-number (see above). */
@@ -1493,11 +1492,3 @@ extern enum reg_class reg_class_from_letter[];
extern char regno_ok_for_index_p_base[];
#define regno_ok_for_index_p (regno_ok_for_index_p_base + 1)
-extern int const_double_low_int ();
-extern int const_double_high_int ();
-extern char *output_cmp ();
-extern char *output_condjump ();
-extern char *output_call ();
-extern void gen_ap_for_call ();
-extern int check_float_value ();
-extern void asm_declare_function_name ();