m68k-protos.h: New file.

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

From-SVN: r31358
This commit is contained in:
Kaveh R. Ghazi 2000-01-12 19:24:13 +00:00 committed by Kaveh Ghazi
parent 394c46fe47
commit 5505f548bb
5 changed files with 114 additions and 73 deletions

View file

@ -1,3 +1,14 @@
2000-01-12 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.
2000-01-12 Richard Earnshaw <rearnsha@arm.com>
* haifa-sched.c (split_edges): Pass edgeset_size as second arg to

View file

@ -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));

View file

@ -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, dest)
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 (operands)
}
}
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;
{

View file

@ -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;
@ -2190,20 +2162,6 @@ 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 ();
/*
Local variables:

View file

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