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:
parent
394c46fe47
commit
5505f548bb
5 changed files with 114 additions and 73 deletions
|
@ -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
|
||||
|
|
69
gcc/config/m68k/m68k-protos.h
Normal file
69
gcc/config/m68k/m68k-protos.h
Normal 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));
|
|
@ -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;
|
||||
{
|
||||
|
|
|
@ -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:
|
||||
|
|
|
@ -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. */
|
||||
|
|
Loading…
Add table
Reference in a new issue