* pdp11-protos.h: New file.
* pdp11.c: Include tm_p.h. Add static prototypes. Fix compile
time warnings.
* pdp11.h: Move prototypes to pdp11-protos.h. Fix compile time
warnings.
* pdp11.md: Likewise.
* 2bsd.h: Likewise.
From-SVN: r31429
+2000-01-14 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
+
+ * pdp11-protos.h: New file.
+
+ * pdp11.c: Include tm_p.h. Add static prototypes. Fix compile
+ time warnings.
+
+ * pdp11.h: Move prototypes to pdp11-protos.h. Fix compile time
+ warnings.
+
+ * pdp11.md: Likewise.
+
+ * 2bsd.h: Likewise.
+
2000-01-14 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
* mn10300-protos.h: New file.
/* Definitions of target machine for GNU compiler, for a PDP with 2BSD
- Copyright (C) 1995, 1996, 1999 Free Software Foundation, Inc.
+ Copyright (C) 1995, 96, 99, 2000 Free Software Foundation, Inc.
Contributed by Michael K. Gschwind (mike@vlsivie.tuwien.ac.at).
This file is part of GNU CC.
#undef INITIAL_FRAME_POINTER_OFFSET
#define INITIAL_FRAME_POINTER_OFFSET(DEPTH_VAR) \
{ \
- int offset, regno; \
+ int offset; \
offset = get_frame_size(); \
offset = (offset <= 2)? 0: (offset -2); \
(DEPTH_VAR) = offset+10; \
--- /dev/null
+/* Definitions of target machine for GNU compiler, for the pdp-11
+ Copyright (C) 2000 Free Software Foundation, Inc.
+ Contributed by Michael K. Gschwind (mike@vlsivie.tuwien.ac.at).
+
+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. */
+
+/* declarations */
+#ifdef RTX_CODE
+extern int arith_operand PARAMS ((rtx, enum machine_mode));
+extern int const_immediate_operand PARAMS ((rtx, enum machine_mode));
+extern int expand_shift_operand PARAMS ((rtx, enum machine_mode));
+extern int immediate15_operand PARAMS ((rtx, enum machine_mode));
+extern int simple_memory_operand PARAMS ((rtx, enum machine_mode));
+extern int comp_operator PARAMS ((rtx, enum machine_mode));
+
+extern int legitimate_address_p PARAMS ((enum machine_mode, rtx));
+extern void notice_update_cc_on_set PARAMS ((rtx, rtx));
+extern void output_addr_const_pdp11 PARAMS ((FILE *, rtx));
+extern const char *output_move_double PARAMS ((rtx *));
+extern const char *output_move_quad PARAMS ((rtx *));
+extern const char *output_block_move PARAMS ((rtx *));
+extern void print_operand_address PARAMS ((FILE *, rtx));
+extern int register_move_cost PARAMS ((enum reg_class, enum reg_class));
+extern int comparison_operator_index PARAMS ((rtx));
+#endif /* RTX_CODE */
+
+extern void output_ascii PARAMS ((FILE *, const char *, int));
+extern void output_function_epilogue PARAMS ((FILE *, int));
+extern void output_function_prologue PARAMS ((FILE *, int));
+extern const char *output_jump PARAMS ((const char *, const char *, int));
#include "insn-attr.h"
#include "flags.h"
#include "recog.h"
+#include "tm_p.h"
/*
#define FPU_REG_P(X) ((X)>=8 && (X)<14)
/* This is where the condition code register lives. */
/* rtx cc0_reg_rtx; - no longer needed? */
-static rtx find_addr_reg ();
+static rtx find_addr_reg PARAMS ((rtx));
+static const char *singlemove_string PARAMS ((rtx *));
/* Nonzero if OP is a valid second operand for an arithmetic insn. */
int
const_immediate_operand (op, mode)
rtx op;
- enum machine_mode mode;
+ enum machine_mode mode ATTRIBUTE_UNUSED;
{
return (GET_CODE (op) == CONST_INT);
}
int
immediate15_operand (op, mode)
rtx op;
- enum machine_mode mode;
+ enum machine_mode mode ATTRIBUTE_UNUSED;
{
return (GET_CODE (op) == CONST_INT && ((INTVAL (op) & 0x8000) == 0x0000));
}
int
expand_shift_operand (op, mode)
rtx op;
- enum machine_mode mode;
+ enum machine_mode mode ATTRIBUTE_UNUSED;
{
return (GET_CODE (op) == CONST_INT
&& abs (INTVAL(op)) > 1
/* 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;
{
/* Output assembler code to perform a doubleword move insn
with operands OPERANDS. */
-char *
+const char *
output_move_double (operands)
rtx *operands;
{
/* Output assembler code to perform a quadword move insn
with operands OPERANDS. */
-char *
+const char *
output_move_quad (operands)
rtx *operands;
{
void
output_ascii (file, p, size)
FILE *file;
- char *p;
+ const char *p;
int size;
{
int i;
return move_costs[(int)c1][(int)c2];
}
-char *
+const char *
output_jump(pos, neg, length)
+ const char *pos, *neg;
int length;
- char *pos, *neg;
{
static int x = 0;
void
notice_update_cc_on_set(exp, insn)
rtx exp;
- rtx insn;
+ rtx insn ATTRIBUTE_UNUSED;
{
if (GET_CODE (SET_DEST (exp)) == CC0)
{
}
-int simple_memory_operand(op, mode)
- rtx op;
- enum machine_mode mode;
+int
+simple_memory_operand(op, mode)
+ rtx op;
+ enum machine_mode mode ATTRIBUTE_UNUSED;
{
rtx addr;
*/
-char *
+const char *
output_block_move(operands)
rtx *operands;
{
int
comp_operator (op, mode)
rtx op;
- enum machine_mode mode;
+ enum machine_mode mode ATTRIBUTE_UNUSED;
{
return comparison_operator_index(op) >= 0;
}
/* Definitions of target machine for GNU compiler, for the pdp-11
- Copyright (C) 1994, 1995, 1996, 1998, 1999 Free Software Foundation, Inc.
+ Copyright (C) 1994, 95, 96, 98, 99, 2000 Free Software Foundation, Inc.
Contributed by Michael K. Gschwind (mike@vlsivie.tuwien.ac.at).
This file is part of GNU CC.
Boston, MA 02111-1307, USA. */
-/* declarations */
-int arith_operand ();
-int const_immediate_operand ();
-int expand_shift_operand ();
-int legitimate_address_p ();
-void notice_update_cc_on_set ();
-void output_addr_const_pdp11 ();
-void output_ascii ();
-void output_function_epilogue ();
-void output_function_prologue ();
-char *output_jump();
-char *output_move_double();
-char *output_move_quad();
-char *output_block_move();
-void print_operand_address ();
-int register_move_cost ();
-int simple_memory_operand ();
-
/* check whether load_fpu_reg or not */
#define LOAD_FPU_REG_P(x) ((x)>=8 && (x)<=11)
#define NO_LOAD_FPU_REG_P(x) ((x)==12 || (x)==13)
/* do we need reg def's R0 = %0 etc ??? */ \
)
#else
-#define ASM_FILE_START(FILE) (0)
+#define ASM_FILE_START(FILE)
#endif
;;- Machine description for the pdp11 for GNU C compiler
-;; Copyright (C) 1994, 1995, 1997, 1998, 1999 Free Software Foundation, Inc.
+;; Copyright (C) 1994, 95, 97-99, 2000 Free Software Foundation, Inc.
;; Contributed by Michael K. Gschwind (mike@vlsivie.tuwien.ac.at).
;; This file is part of GNU CC.
or is lateoperands the low word?? - looks like it! */
- unsigned int i;
rtx lateoperands[3];
lateoperands[0] = operands[0];
return \"\";
}
- lateoperands[2] = GEN_INT (INTVAL (operands[2]) >> 16) & 0xffff);
+ lateoperands[2] = GEN_INT ((INTVAL (operands[2]) >> 16) & 0xffff);
operands[2] = GEN_INT (INTVAL (operands[2]) & 0xffff);
if (INTVAL(operands[2]))
or is lateoperands the low word?? - looks like it! */
- unsigned int i;
rtx lateoperands[3];
lateoperands[0] = operands[0];
or is lateoperands the low word?? - looks like it! */
- unsigned int i;
rtx lateoperands[3];
lateoperands[0] = operands[0];
or is lateoperands the low word?? - looks like it! */
- unsigned int i;
rtx lateoperands[3];
lateoperands[0] = operands[0];
"*
{ /* Here we trust that operands don't overlap */
- unsigned int i;
rtx lateoperands[3];
lateoperands[0] = operands[0];