mirror of
git://gcc.gnu.org/git/gcc.git
synced 2024-12-16 11:00:24 +08:00
In ChangeLog: 2001-11-08 Geoffrey Keating <geoffk@redhat.com>
In ChangeLog: 2001-11-08 Geoffrey Keating <geoffk@redhat.com> * config.sub: Import from master sources, rev. 1.230. * MAINTAINERS: Change 'stormy16' to 'xstormy16'. Index: gcc/ChangeLog 2001-11-08 Geoffrey Keating <geoffk@redhat.com> * config.gcc: Rename stormy16 to xstormy16. * config/stormy16/stormy-abi: Likewise. * config/stormy16/stormy16-protos.h: Likewise. * config/stormy16/stormy16.c: Likewise. * config/stormy16/stormy16.h: Likewise. * config/stormy16/stormy16.md: Likewise. Index: gcc/testsuite/ChangeLog 2001-11-08 Geoffrey Keating <geoffk@redhat.com> * g++.old-deja/g++.bugs/900227_01.C: Change stormy16 to xstormy16. * g++.old-deja/g++.eh/badalloc1.C: Change stormy16 to xstormy16. * g++.old-deja/g++.mike/ns15.C: Change stormy16 to xstormy16. * g++.old-deja/g++.pt/crash16.C: Change stormy16 to xstormy16. * gcc.c-torture/compile/961203-1.x: Change stormy16 to xstormy16. * gcc.c-torture/compile/980506-1.x: Change stormy16 to xstormy16. * gcc.c-torture/compile/990617-1.x: Change stormy16 to xstormy16. From-SVN: r46867
This commit is contained in:
parent
7857151141
commit
c6243b4cbd
@ -1,3 +1,8 @@
|
||||
2001-11-08 Geoffrey Keating <geoffk@redhat.com>
|
||||
|
||||
* config.sub: Import from master sources, rev. 1.230.
|
||||
* MAINTAINERS: Change 'stormy16' to 'xstormy16'.
|
||||
|
||||
2001-11-07 Laurent Guerby <guerby@acm.org>
|
||||
|
||||
* MAINTAINERS (Write After Approval): Add self.
|
||||
|
@ -43,7 +43,7 @@ alpha port Richard Henderson rth@redhat.com
|
||||
sparc port Richard Henderson rth@redhat.com
|
||||
sparc port David S. Miller davem@redhat.com
|
||||
sparc port Jakub Jelinek jakub@redhat.com
|
||||
stormy16 port Geoffrey Keating geoffk@redhat.com
|
||||
xstormy16 port Geoffrey Keating geoffk@redhat.com
|
||||
x86 ports Stan Cox scox@redhat.com
|
||||
c4x port Michael Hayes m.hayes@elec.canterbury.ac.nz
|
||||
arc port Richard Kenner kenner@nyu.edu
|
||||
|
20
config.sub
vendored
20
config.sub
vendored
@ -3,7 +3,7 @@
|
||||
# Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001
|
||||
# Free Software Foundation, Inc.
|
||||
|
||||
timestamp='2001-10-05'
|
||||
timestamp='2001-11-08'
|
||||
|
||||
# This file is (in principle) common to ALL GNU software.
|
||||
# The presence of a machine in this file suggests that SOME GNU software
|
||||
@ -245,14 +245,13 @@ case $basic_machine in
|
||||
| pdp10 | pdp11 | pj | pjl \
|
||||
| powerpc | powerpc64 | powerpc64le | powerpcle | ppcbe \
|
||||
| pyramid \
|
||||
| s390 | s390x \
|
||||
| sh | sh[34] | sh[34]eb | shbe | shle \
|
||||
| sparc | sparc64 | sparclet | sparclite | sparcv9 | sparcv9b \
|
||||
| stormy16 | strongarm \
|
||||
| strongarm \
|
||||
| tahoe | thumb | tic80 | tron \
|
||||
| v850 \
|
||||
| we32k \
|
||||
| x86 | xscale \
|
||||
| x86 | xscale | xstormy16 \
|
||||
| z8k)
|
||||
basic_machine=$basic_machine-unknown
|
||||
;;
|
||||
@ -304,14 +303,13 @@ case $basic_machine in
|
||||
| powerpc-* | powerpc64-* | powerpc64le-* | powerpcle-* | ppcbe-* \
|
||||
| pyramid-* \
|
||||
| romp-* | rs6000-* \
|
||||
| s390-* | s390x-* \
|
||||
| sh-* | sh[34]-* | sh[34]eb-* | shbe-* | shle-* \
|
||||
| sparc-* | sparc64-* | sparc86x-* | sparclite-* \
|
||||
| sparcv9-* | sparcv9b-* | stormy16-* | strongarm-* | sv1-* \
|
||||
| sparcv9-* | sparcv9b-* | strongarm-* | sv1-* \
|
||||
| t3e-* | tahoe-* | thumb-* | tic30-* | tic54x-* | tic80-* | tron-* \
|
||||
| v850-* | vax-* \
|
||||
| we32k-* \
|
||||
| x86-* | x86_64-* | xmp-* | xps100-* | xscale-* \
|
||||
| x86-* | x86_64-* | xmp-* | xps100-* | xscale-* | xstormy16-* \
|
||||
| ymp-* \
|
||||
| z8k-*)
|
||||
;;
|
||||
@ -786,6 +784,12 @@ case $basic_machine in
|
||||
rtpc | rtpc-*)
|
||||
basic_machine=romp-ibm
|
||||
;;
|
||||
s390 | s390-*)
|
||||
basic_machine=s390-ibm
|
||||
;;
|
||||
s390x | s390x-*)
|
||||
basic_machine=s390x-ibm
|
||||
;;
|
||||
sa29200)
|
||||
basic_machine=a29k-amd
|
||||
os=-udi
|
||||
@ -1070,7 +1074,7 @@ case $os in
|
||||
| -interix* | -uwin* | -rhapsody* | -darwin* | -opened* \
|
||||
| -openstep* | -oskit* | -conix* | -pw32* | -nonstopux* \
|
||||
| -storm-chaos* | -tops10* | -tenex* | -tops20* | -its* \
|
||||
| -os2* | -vos*)
|
||||
| -os2* | -vos* | -palmos* | -uclinux*)
|
||||
# Remember, each alternative MUST END IN *, to match a version number.
|
||||
;;
|
||||
-qnx*)
|
||||
|
@ -1,3 +1,17 @@
|
||||
2001-11-08 Geoffrey Keating <geoffk@redhat.com>
|
||||
|
||||
* config.gcc: Rename stormy16 to xstormy16.
|
||||
* config/stormy16/stormy-abi: Likewise.
|
||||
* config/stormy16/stormy16-protos.h: Likewise.
|
||||
* config/stormy16/stormy16.c: Likewise.
|
||||
* config/stormy16/stormy16.h: Likewise.
|
||||
* config/stormy16/stormy16.md: Likewise.
|
||||
|
||||
2001-11-06 Geoffrey Keating <geoffk@redhat.com>
|
||||
|
||||
* tree.h (TYPE_VOLATILE): Add enable-checking code.
|
||||
(TYPE_READONLY): Likewise.
|
||||
|
||||
Thu Nov 8 18:00:55 2001 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
|
||||
|
||||
* reload1.c (reload): Don't delete equiv insn if can throw.
|
||||
|
@ -1,4 +1,4 @@
|
||||
Stormy16 ABI
|
||||
xStormy16 ABI
|
||||
************
|
||||
|
||||
!!!!! NOTE !!!!!
|
||||
@ -114,10 +114,10 @@ ELF File Format
|
||||
ELF file header
|
||||
---------------
|
||||
|
||||
Stormy16 ELF files are distinguished by the value EM_STORMY16 in
|
||||
xStormy16 ELF files are distinguished by the value EM_XSTORMY16 in
|
||||
the e_machine field of the ELF file header:
|
||||
|
||||
#define EM_STORMY16 0xad45
|
||||
#define EM_XSTORMY16 0xad45
|
||||
|
||||
DWARF Register Number Mapping
|
||||
-----------------------------
|
||||
@ -131,17 +131,17 @@ RELA relocs are used exclusively. The relocation types defined are:
|
||||
|
||||
Name Value Field Calculation Overflow
|
||||
----------------------------------------------------------------
|
||||
R_STORMY16_NONE 0 none none none
|
||||
R_STORMY16_32 1 32 S + A none
|
||||
R_STORMY16_16 2 16 S + A unsigned
|
||||
R_STORMY16_8 3 8 S + A unsigned
|
||||
R_STORMY16_PC32 4 32 S + A - P none
|
||||
R_STORMY16_PC16 5 16 S + A - P signed
|
||||
R_STORMY16_PC8 6 8 S + A - P signed
|
||||
R_STORMY16_REL_12 7 16:12:0 S + A - P signed
|
||||
R_STORMY16_24 8 32:23:1 (S + A) >> 1 unsigned
|
||||
R_STORMY16_GNU_VTINHERIT 9 n/a n/a n/a
|
||||
R_STORMY16_GNU_VTENTRY 10 n/a n/a n/a
|
||||
R_XSTORMY16_NONE 0 none none none
|
||||
R_XSTORMY16_32 1 32 S + A none
|
||||
R_XSTORMY16_16 2 16 S + A unsigned
|
||||
R_XSTORMY16_8 3 8 S + A unsigned
|
||||
R_XSTORMY16_PC32 4 32 S + A - P none
|
||||
R_XSTORMY16_PC16 5 16 S + A - P signed
|
||||
R_XSTORMY16_PC8 6 8 S + A - P signed
|
||||
R_XSTORMY16_REL_12 7 16:12:0 S + A - P signed
|
||||
R_XSTORMY16_24 8 32:23:1 (S + A) >> 1 unsigned
|
||||
R_XSTORMY16_GNU_VTINHERIT 9 n/a n/a n/a
|
||||
R_XSTORMY16_GNU_VTENTRY 10 n/a n/a n/a
|
||||
|
||||
In the 'Calculation' column, 'S' is the value of the symbol to which
|
||||
the reloc refers, 'A' is the addend, and 'P' represents the place of
|
||||
|
@ -1,4 +1,4 @@
|
||||
/* Prototypes for exported functions defined in stormy16.c
|
||||
/* Prototypes for exported functions defined in xstormy16.c
|
||||
Copyright (C) 2000, 2001 Free Software Foundation, Inc.
|
||||
Contributed by Red Hat, Inc.
|
||||
|
||||
@ -21,71 +21,71 @@ Boston, MA 02111-1307, USA. */
|
||||
|
||||
|
||||
|
||||
extern struct stormy16_stack_layout
|
||||
stormy16_compute_stack_layout PARAMS((void));
|
||||
extern void stormy16_expand_prologue PARAMS ((void));
|
||||
extern void stormy16_expand_epilogue PARAMS ((void));
|
||||
extern int stormy16_initial_elimination_offset PARAMS ((int, int));
|
||||
extern struct xstormy16_stack_layout
|
||||
xstormy16_compute_stack_layout PARAMS((void));
|
||||
extern void xstormy16_expand_prologue PARAMS ((void));
|
||||
extern void xstormy16_expand_epilogue PARAMS ((void));
|
||||
extern int xstormy16_initial_elimination_offset PARAMS ((int, int));
|
||||
extern int direct_return PARAMS ((void));
|
||||
extern int stormy16_interrupt_function_p PARAMS ((void));
|
||||
extern int stormy16_epilogue_uses PARAMS ((int));
|
||||
extern int xstormy16_interrupt_function_p PARAMS ((void));
|
||||
extern int xstormy16_epilogue_uses PARAMS ((int));
|
||||
|
||||
#if defined (TREE_CODE)
|
||||
# if defined (HAVE_MACHINE_MODES)
|
||||
extern CUMULATIVE_ARGS stormy16_function_arg_advance
|
||||
extern CUMULATIVE_ARGS xstormy16_function_arg_advance
|
||||
PARAMS ((CUMULATIVE_ARGS, enum machine_mode, tree, int));
|
||||
# endif
|
||||
extern void stormy16_setup_incoming_varargs
|
||||
extern void xstormy16_setup_incoming_varargs
|
||||
PARAMS ((CUMULATIVE_ARGS, int, tree, int *));
|
||||
extern tree stormy16_build_va_list PARAMS ((void));
|
||||
extern void stormy16_encode_section_info PARAMS ((tree));
|
||||
extern tree xstormy16_build_va_list PARAMS ((void));
|
||||
extern void xstormy16_encode_section_info PARAMS ((tree));
|
||||
#endif
|
||||
|
||||
#if defined (TREE_CODE) && defined (RTX_CODE)
|
||||
extern void stormy16_expand_builtin_va_start PARAMS ((int, tree, rtx));
|
||||
extern rtx stormy16_expand_builtin_va_arg PARAMS ((tree, tree));
|
||||
extern void stormy16_initialize_trampoline PARAMS ((rtx, rtx, rtx));
|
||||
extern rtx stormy16_function_value PARAMS ((tree, tree));
|
||||
extern void stormy16_asm_output_mi_thunk PARAMS ((FILE *, tree, int, tree));
|
||||
extern void xstormy16_expand_builtin_va_start PARAMS ((int, tree, rtx));
|
||||
extern rtx xstormy16_expand_builtin_va_arg PARAMS ((tree, tree));
|
||||
extern void xstormy16_initialize_trampoline PARAMS ((rtx, rtx, rtx));
|
||||
extern rtx xstormy16_function_value PARAMS ((tree, tree));
|
||||
extern void xstormy16_asm_output_mi_thunk PARAMS ((FILE *, tree, int, tree));
|
||||
#endif
|
||||
|
||||
#ifdef RTX_CODE
|
||||
extern void stormy16_emit_cbranch PARAMS ((enum rtx_code, rtx));
|
||||
extern char * stormy16_output_cbranch_hi PARAMS ((rtx, const char *, int,
|
||||
extern void xstormy16_emit_cbranch PARAMS ((enum rtx_code, rtx));
|
||||
extern char * xstormy16_output_cbranch_hi PARAMS ((rtx, const char *, int,
|
||||
rtx));
|
||||
extern char * stormy16_output_cbranch_si PARAMS ((rtx, const char *, int,
|
||||
extern char * xstormy16_output_cbranch_si PARAMS ((rtx, const char *, int,
|
||||
rtx));
|
||||
extern int stormy16_mode_dependent_address_p PARAMS ((rtx));
|
||||
extern int stormy16_extra_constraint_p PARAMS ((rtx, int));
|
||||
extern int xstormy16_mode_dependent_address_p PARAMS ((rtx));
|
||||
extern int xstormy16_extra_constraint_p PARAMS ((rtx, int));
|
||||
|
||||
extern void stormy16_print_operand PARAMS ((FILE *, rtx, int));
|
||||
extern void stormy16_print_operand_address PARAMS ((FILE *, rtx));
|
||||
extern void xstormy16_print_operand PARAMS ((FILE *, rtx, int));
|
||||
extern void xstormy16_print_operand_address PARAMS ((FILE *, rtx));
|
||||
|
||||
extern void stormy16_expand_casesi PARAMS ((rtx, rtx, rtx, rtx, rtx));
|
||||
extern void stormy16_output_addr_vec PARAMS ((FILE *, rtx, rtx));
|
||||
extern void stormy16_expand_call PARAMS ((rtx, rtx, rtx));
|
||||
extern void xstormy16_expand_casesi PARAMS ((rtx, rtx, rtx, rtx, rtx));
|
||||
extern void xstormy16_output_addr_vec PARAMS ((FILE *, rtx, rtx));
|
||||
extern void xstormy16_expand_call PARAMS ((rtx, rtx, rtx));
|
||||
#endif
|
||||
|
||||
#if defined (HAVE_MACHINE_MODES) && defined (RTX_CODE)
|
||||
extern int stormy16_ineqsi_operator PARAMS ((rtx, enum machine_mode));
|
||||
extern int xstormy16_ineqsi_operator PARAMS ((rtx, enum machine_mode));
|
||||
extern int equality_operator PARAMS ((rtx, enum machine_mode));
|
||||
extern int inequality_operator PARAMS ((rtx, enum machine_mode));
|
||||
extern void stormy16_split_cbranch PARAMS ((enum machine_mode,
|
||||
extern void xstormy16_split_cbranch PARAMS ((enum machine_mode,
|
||||
rtx, rtx, rtx, rtx));
|
||||
extern int short_memory_operand PARAMS ((rtx, enum machine_mode));
|
||||
extern enum reg_class stormy16_secondary_reload_class
|
||||
extern enum reg_class xstormy16_secondary_reload_class
|
||||
PARAMS ((enum reg_class, enum machine_mode, rtx));
|
||||
extern int stormy16_carry_plus_operand PARAMS ((rtx, enum machine_mode));
|
||||
extern enum reg_class stormy16_preferred_reload_class
|
||||
extern int xstormy16_carry_plus_operand PARAMS ((rtx, enum machine_mode));
|
||||
extern enum reg_class xstormy16_preferred_reload_class
|
||||
PARAMS ((rtx, enum reg_class));
|
||||
extern int stormy16_legitimate_address_p
|
||||
extern int xstormy16_legitimate_address_p
|
||||
PARAMS ((enum machine_mode, rtx, int));
|
||||
extern void stormy16_split_move PARAMS ((enum machine_mode, rtx, rtx));
|
||||
extern void stormy16_expand_move PARAMS ((enum machine_mode, rtx, rtx));
|
||||
extern void stormy16_expand_arith PARAMS ((enum machine_mode, enum rtx_code,
|
||||
extern void xstormy16_split_move PARAMS ((enum machine_mode, rtx, rtx));
|
||||
extern void xstormy16_expand_move PARAMS ((enum machine_mode, rtx, rtx));
|
||||
extern void xstormy16_expand_arith PARAMS ((enum machine_mode, enum rtx_code,
|
||||
rtx, rtx, rtx, rtx));
|
||||
extern int shift_operator PARAMS ((rtx, enum machine_mode));
|
||||
extern const char * stormy16_output_shift PARAMS ((enum machine_mode,
|
||||
extern const char * xstormy16_output_shift PARAMS ((enum machine_mode,
|
||||
enum rtx_code,
|
||||
rtx, rtx, rtx));
|
||||
#endif
|
||||
|
@ -1,4 +1,4 @@
|
||||
/* Stormy16 target functions.
|
||||
/* Xstormy16 target functions.
|
||||
Copyright (C) 1997, 1998, 1999, 2000, 2001 Free Software Foundation, Inc.
|
||||
Contributed by Red Hat, Inc.
|
||||
|
||||
@ -45,18 +45,18 @@ Boston, MA 02111-1307, USA. */
|
||||
#include "tm_p.h"
|
||||
|
||||
static rtx emit_addhi3_postreload PARAMS ((rtx, rtx, rtx));
|
||||
static void stormy16_asm_out_constructor PARAMS ((rtx, int));
|
||||
static void stormy16_asm_out_destructor PARAMS ((rtx, int));
|
||||
static void xstormy16_asm_out_constructor PARAMS ((rtx, int));
|
||||
static void xstormy16_asm_out_destructor PARAMS ((rtx, int));
|
||||
|
||||
/* Define the information needed to generate branch and scc insns. This is
|
||||
stored from the compare operation. */
|
||||
struct rtx_def * stormy16_compare_op0;
|
||||
struct rtx_def * stormy16_compare_op1;
|
||||
struct rtx_def * xstormy16_compare_op0;
|
||||
struct rtx_def * xstormy16_compare_op1;
|
||||
|
||||
/* Return 1 if this is a LT, GE, LTU, or GEU operator. */
|
||||
|
||||
int
|
||||
stormy16_ineqsi_operator (op, mode)
|
||||
xstormy16_ineqsi_operator (op, mode)
|
||||
register rtx op;
|
||||
enum machine_mode mode;
|
||||
{
|
||||
@ -113,12 +113,12 @@ inequality_operator (op, mode)
|
||||
/* Emit a branch of kind CODE to location LOC. */
|
||||
|
||||
void
|
||||
stormy16_emit_cbranch (code, loc)
|
||||
xstormy16_emit_cbranch (code, loc)
|
||||
enum rtx_code code;
|
||||
rtx loc;
|
||||
{
|
||||
rtx op0 = stormy16_compare_op0;
|
||||
rtx op1 = stormy16_compare_op1;
|
||||
rtx op0 = xstormy16_compare_op0;
|
||||
rtx op1 = xstormy16_compare_op1;
|
||||
rtx condition_rtx, loc_ref, branch, cy_clobber;
|
||||
rtvec vec;
|
||||
enum machine_mode mode;
|
||||
@ -136,10 +136,10 @@ stormy16_emit_cbranch (code, loc)
|
||||
|
||||
if (gt_p)
|
||||
lab = gen_label_rtx ();
|
||||
stormy16_emit_cbranch (unsigned_p ? LTU : LT, gt_p ? lab : loc);
|
||||
xstormy16_emit_cbranch (unsigned_p ? LTU : LT, gt_p ? lab : loc);
|
||||
/* This should be generated as a comparison against the temporary
|
||||
created by the previous insn, but reload can't handle that. */
|
||||
stormy16_emit_cbranch (gt_p ? NE : EQ, loc);
|
||||
xstormy16_emit_cbranch (gt_p ? NE : EQ, loc);
|
||||
if (gt_p)
|
||||
emit_label (lab);
|
||||
return;
|
||||
@ -157,17 +157,17 @@ stormy16_emit_cbranch (code, loc)
|
||||
|
||||
for (i = 0; i < num_words - 1; i++)
|
||||
{
|
||||
stormy16_compare_op0 = simplify_gen_subreg (word_mode, op0, mode,
|
||||
xstormy16_compare_op0 = simplify_gen_subreg (word_mode, op0, mode,
|
||||
i * UNITS_PER_WORD);
|
||||
stormy16_compare_op1 = simplify_gen_subreg (word_mode, op1, mode,
|
||||
xstormy16_compare_op1 = simplify_gen_subreg (word_mode, op1, mode,
|
||||
i * UNITS_PER_WORD);
|
||||
stormy16_emit_cbranch (NE, code == EQ ? lab : loc);
|
||||
xstormy16_emit_cbranch (NE, code == EQ ? lab : loc);
|
||||
}
|
||||
stormy16_compare_op0 = simplify_gen_subreg (word_mode, op0, mode,
|
||||
xstormy16_compare_op0 = simplify_gen_subreg (word_mode, op0, mode,
|
||||
i * UNITS_PER_WORD);
|
||||
stormy16_compare_op1 = simplify_gen_subreg (word_mode, op1, mode,
|
||||
xstormy16_compare_op1 = simplify_gen_subreg (word_mode, op1, mode,
|
||||
i * UNITS_PER_WORD);
|
||||
stormy16_emit_cbranch (code, loc);
|
||||
xstormy16_emit_cbranch (code, loc);
|
||||
|
||||
if (code == EQ)
|
||||
emit_label (lab);
|
||||
@ -212,10 +212,10 @@ stormy16_emit_cbranch (code, loc)
|
||||
|
||||
/* Take a SImode conditional branch, one of GT/LE/GTU/LEU, and split
|
||||
the arithmetic operation. Most of the work is done by
|
||||
stormy16_expand_arith. */
|
||||
xstormy16_expand_arith. */
|
||||
|
||||
void
|
||||
stormy16_split_cbranch (mode, label, comparison, dest, carry)
|
||||
xstormy16_split_cbranch (mode, label, comparison, dest, carry)
|
||||
enum machine_mode mode;
|
||||
rtx label;
|
||||
rtx comparison;
|
||||
@ -228,7 +228,7 @@ stormy16_split_cbranch (mode, label, comparison, dest, carry)
|
||||
rtx compare;
|
||||
|
||||
start_sequence ();
|
||||
stormy16_expand_arith (mode, COMPARE, dest, op0, op1, carry);
|
||||
xstormy16_expand_arith (mode, COMPARE, dest, op0, op1, carry);
|
||||
seq = gen_sequence ();
|
||||
end_sequence ();
|
||||
compare = SET_SRC (XVECEXP (PATTERN (XVECEXP (seq, 0, XVECLEN (seq, 0) - 1)),
|
||||
@ -249,7 +249,7 @@ stormy16_split_cbranch (mode, label, comparison, dest, carry)
|
||||
INSN is the insn. */
|
||||
|
||||
char *
|
||||
stormy16_output_cbranch_hi (op, label, reversed, insn)
|
||||
xstormy16_output_cbranch_hi (op, label, reversed, insn)
|
||||
rtx op;
|
||||
const char * label;
|
||||
int reversed;
|
||||
@ -326,7 +326,7 @@ stormy16_output_cbranch_hi (op, label, reversed, insn)
|
||||
INSN is the insn. */
|
||||
|
||||
char *
|
||||
stormy16_output_cbranch_si (op, label, reversed, insn)
|
||||
xstormy16_output_cbranch_si (op, label, reversed, insn)
|
||||
rtx op;
|
||||
const char * label;
|
||||
int reversed;
|
||||
@ -444,7 +444,7 @@ stormy16_output_cbranch_si (op, label, reversed, insn)
|
||||
This case often occurs between floating-point and general registers. */
|
||||
|
||||
enum reg_class
|
||||
stormy16_secondary_reload_class (class, mode, x)
|
||||
xstormy16_secondary_reload_class (class, mode, x)
|
||||
enum reg_class class;
|
||||
enum machine_mode mode;
|
||||
rtx x;
|
||||
@ -460,7 +460,7 @@ stormy16_secondary_reload_class (class, mode, x)
|
||||
|
||||
/* When reloading a PLUS, the carry register will be required
|
||||
unless the inc or dec instructions can be used. */
|
||||
if (stormy16_carry_plus_operand (x, mode))
|
||||
if (xstormy16_carry_plus_operand (x, mode))
|
||||
return CARRY_REGS;
|
||||
|
||||
return NO_REGS;
|
||||
@ -468,7 +468,7 @@ stormy16_secondary_reload_class (class, mode, x)
|
||||
|
||||
/* Recognise a PLUS that needs the carry register. */
|
||||
int
|
||||
stormy16_carry_plus_operand (x, mode)
|
||||
xstormy16_carry_plus_operand (x, mode)
|
||||
rtx x;
|
||||
enum machine_mode mode ATTRIBUTE_UNUSED;
|
||||
{
|
||||
@ -479,7 +479,7 @@ stormy16_carry_plus_operand (x, mode)
|
||||
|
||||
|
||||
enum reg_class
|
||||
stormy16_preferred_reload_class (x, class)
|
||||
xstormy16_preferred_reload_class (x, class)
|
||||
enum reg_class class;
|
||||
rtx x;
|
||||
{
|
||||
@ -501,7 +501,7 @@ stormy16_preferred_reload_class (x, class)
|
||||
&& (INTVAL (X) + (OFFSET) < 0x100 || INTVAL (X) + (OFFSET) >= 0x7F00))
|
||||
|
||||
int
|
||||
stormy16_legitimate_address_p (mode, x, strict)
|
||||
xstormy16_legitimate_address_p (mode, x, strict)
|
||||
enum machine_mode mode ATTRIBUTE_UNUSED;
|
||||
rtx x;
|
||||
int strict;
|
||||
@ -541,7 +541,7 @@ stormy16_legitimate_address_p (mode, x, strict)
|
||||
address for DImode or DFmode, or if the address is a post-increment
|
||||
or pre-decrement address. */
|
||||
int
|
||||
stormy16_mode_dependent_address_p (x)
|
||||
xstormy16_mode_dependent_address_p (x)
|
||||
rtx x;
|
||||
{
|
||||
if (LEGITIMATE_ADDRESS_CONST_INT_P (x, 0)
|
||||
@ -571,7 +571,7 @@ stormy16_mode_dependent_address_p (x)
|
||||
represented by the constraint letter C. If C is not defined as an extra
|
||||
constraint, the value returned should be 0 regardless of VALUE. */
|
||||
int
|
||||
stormy16_extra_constraint_p (x, c)
|
||||
xstormy16_extra_constraint_p (x, c)
|
||||
rtx x;
|
||||
int c;
|
||||
{
|
||||
@ -593,7 +593,7 @@ stormy16_extra_constraint_p (x, c)
|
||||
case 'S':
|
||||
return (GET_CODE (x) == MEM
|
||||
&& GET_CODE (XEXP (x, 0)) == CONST_INT
|
||||
&& stormy16_legitimate_address_p (VOIDmode, XEXP (x, 0), 0));
|
||||
&& xstormy16_legitimate_address_p (VOIDmode, XEXP (x, 0), 0));
|
||||
|
||||
/* 'T' is for Rx. */
|
||||
case 'T':
|
||||
@ -629,7 +629,7 @@ short_memory_operand (x, mode)
|
||||
*/
|
||||
|
||||
void
|
||||
stormy16_split_move (mode, dest, src)
|
||||
xstormy16_split_move (mode, dest, src)
|
||||
enum machine_mode mode;
|
||||
rtx dest;
|
||||
rtx src;
|
||||
@ -771,7 +771,7 @@ stormy16_split_move (mode, dest, src)
|
||||
mode MODE from SRC to DEST. */
|
||||
|
||||
void
|
||||
stormy16_expand_move (mode, dest, src)
|
||||
xstormy16_expand_move (mode, dest, src)
|
||||
enum machine_mode mode;
|
||||
rtx dest;
|
||||
rtx src;
|
||||
@ -781,7 +781,7 @@ stormy16_expand_move (mode, dest, src)
|
||||
&& ! reload_completed
|
||||
&& GET_CODE (dest) == MEM
|
||||
&& (GET_CODE (XEXP (dest, 0)) != CONST_INT
|
||||
|| ! stormy16_legitimate_address_p (mode, XEXP (dest, 0), 0))
|
||||
|| ! xstormy16_legitimate_address_p (mode, XEXP (dest, 0), 0))
|
||||
&& GET_CODE (src) != REG
|
||||
&& GET_CODE (src) != SUBREG)
|
||||
src = copy_to_mode_reg (mode, src);
|
||||
@ -790,7 +790,7 @@ stormy16_expand_move (mode, dest, src)
|
||||
if (reload_completed
|
||||
&& mode != HImode && mode != QImode)
|
||||
{
|
||||
stormy16_split_move (mode, dest, src);
|
||||
xstormy16_split_move (mode, dest, src);
|
||||
return;
|
||||
}
|
||||
|
||||
@ -818,7 +818,7 @@ AP-> Return address (two words)
|
||||
instruction. */
|
||||
|
||||
/* A structure to describe the layout. */
|
||||
struct stormy16_stack_layout
|
||||
struct xstormy16_stack_layout
|
||||
{
|
||||
/* Size of the topmost three items on the stack. */
|
||||
int locals_size;
|
||||
@ -839,12 +839,12 @@ struct stormy16_stack_layout
|
||||
&& (regs_ever_live[REGNUM] || ! current_function_is_leaf)))
|
||||
|
||||
/* Compute the stack layout. */
|
||||
struct stormy16_stack_layout
|
||||
stormy16_compute_stack_layout ()
|
||||
struct xstormy16_stack_layout
|
||||
xstormy16_compute_stack_layout ()
|
||||
{
|
||||
struct stormy16_stack_layout layout;
|
||||
struct xstormy16_stack_layout layout;
|
||||
int regno;
|
||||
const int ifun = stormy16_interrupt_function_p ();
|
||||
const int ifun = xstormy16_interrupt_function_p ();
|
||||
|
||||
layout.locals_size = get_frame_size ();
|
||||
|
||||
@ -882,13 +882,13 @@ stormy16_compute_stack_layout ()
|
||||
|
||||
/* Determine how all the special registers get eliminated. */
|
||||
int
|
||||
stormy16_initial_elimination_offset (from, to)
|
||||
xstormy16_initial_elimination_offset (from, to)
|
||||
int from, to;
|
||||
{
|
||||
struct stormy16_stack_layout layout;
|
||||
struct xstormy16_stack_layout layout;
|
||||
int result;
|
||||
|
||||
layout = stormy16_compute_stack_layout ();
|
||||
layout = xstormy16_compute_stack_layout ();
|
||||
|
||||
if (from == FRAME_POINTER_REGNUM && to == HARD_FRAME_POINTER_REGNUM)
|
||||
result = layout.sp_minus_fp - layout.locals_size;
|
||||
@ -929,21 +929,21 @@ emit_addhi3_postreload (dest, src0, src1)
|
||||
Also any insns generated here should have RTX_FRAME_RELATED_P(insn) = 1
|
||||
so that the debug info generation code can handle them properly. */
|
||||
void
|
||||
stormy16_expand_prologue ()
|
||||
xstormy16_expand_prologue ()
|
||||
{
|
||||
struct stormy16_stack_layout layout;
|
||||
struct xstormy16_stack_layout layout;
|
||||
int regno;
|
||||
rtx insn;
|
||||
rtx mem_push_rtx;
|
||||
rtx mem_fake_push_rtx;
|
||||
const int ifun = stormy16_interrupt_function_p ();
|
||||
const int ifun = xstormy16_interrupt_function_p ();
|
||||
|
||||
mem_push_rtx = gen_rtx_POST_INC (Pmode, stack_pointer_rtx);
|
||||
mem_push_rtx = gen_rtx_MEM (HImode, mem_push_rtx);
|
||||
mem_fake_push_rtx = gen_rtx_PRE_INC (Pmode, stack_pointer_rtx);
|
||||
mem_fake_push_rtx = gen_rtx_MEM (HImode, mem_fake_push_rtx);
|
||||
|
||||
layout = stormy16_compute_stack_layout ();
|
||||
layout = xstormy16_compute_stack_layout ();
|
||||
|
||||
/* Save the argument registers if necessary. */
|
||||
if (layout.stdarg_save_size)
|
||||
@ -1011,7 +1011,7 @@ int
|
||||
direct_return ()
|
||||
{
|
||||
return (reload_completed
|
||||
&& stormy16_compute_stack_layout ().frame_size == 0);
|
||||
&& xstormy16_compute_stack_layout ().frame_size == 0);
|
||||
}
|
||||
|
||||
/* Called after register allocation to add any instructions needed for
|
||||
@ -1023,17 +1023,17 @@ direct_return ()
|
||||
such scheduling. */
|
||||
|
||||
void
|
||||
stormy16_expand_epilogue ()
|
||||
xstormy16_expand_epilogue ()
|
||||
{
|
||||
struct stormy16_stack_layout layout;
|
||||
struct xstormy16_stack_layout layout;
|
||||
rtx mem_pop_rtx;
|
||||
int regno;
|
||||
const int ifun = stormy16_interrupt_function_p ();
|
||||
const int ifun = xstormy16_interrupt_function_p ();
|
||||
|
||||
mem_pop_rtx = gen_rtx_PRE_DEC (Pmode, stack_pointer_rtx);
|
||||
mem_pop_rtx = gen_rtx_MEM (HImode, mem_pop_rtx);
|
||||
|
||||
layout = stormy16_compute_stack_layout ();
|
||||
layout = xstormy16_compute_stack_layout ();
|
||||
|
||||
/* Pop the stack for the locals. */
|
||||
if (layout.locals_size)
|
||||
@ -1063,12 +1063,12 @@ stormy16_expand_epilogue ()
|
||||
}
|
||||
|
||||
int
|
||||
stormy16_epilogue_uses (regno)
|
||||
xstormy16_epilogue_uses (regno)
|
||||
int regno;
|
||||
{
|
||||
if (reload_completed && call_used_regs[regno])
|
||||
{
|
||||
const int ifun = stormy16_interrupt_function_p ();
|
||||
const int ifun = xstormy16_interrupt_function_p ();
|
||||
return REG_NEEDS_SAVE (regno, ifun);
|
||||
}
|
||||
return 0;
|
||||
@ -1083,10 +1083,10 @@ stormy16_epilogue_uses (regno)
|
||||
This function need not do anything if the argument in question was
|
||||
passed on the stack. The compiler knows how to track the amount of
|
||||
stack space used for arguments without any special help. However,
|
||||
it makes life easier for stormy16_build_va_list if it does update
|
||||
it makes life easier for xstormy16_build_va_list if it does update
|
||||
the word count. */
|
||||
CUMULATIVE_ARGS
|
||||
stormy16_function_arg_advance (cum, mode, type, named)
|
||||
xstormy16_function_arg_advance (cum, mode, type, named)
|
||||
CUMULATIVE_ARGS cum;
|
||||
enum machine_mode mode;
|
||||
tree type;
|
||||
@ -1096,10 +1096,10 @@ stormy16_function_arg_advance (cum, mode, type, named)
|
||||
and partially on the stack, the whole of it is passed on the
|
||||
stack. */
|
||||
if (cum < NUM_ARGUMENT_REGISTERS
|
||||
&& cum + STORMY16_WORD_SIZE (type, mode) > NUM_ARGUMENT_REGISTERS)
|
||||
&& cum + XSTORMY16_WORD_SIZE (type, mode) > NUM_ARGUMENT_REGISTERS)
|
||||
cum = NUM_ARGUMENT_REGISTERS;
|
||||
|
||||
cum += STORMY16_WORD_SIZE (type, mode);
|
||||
cum += XSTORMY16_WORD_SIZE (type, mode);
|
||||
|
||||
return cum;
|
||||
}
|
||||
@ -1107,7 +1107,7 @@ stormy16_function_arg_advance (cum, mode, type, named)
|
||||
/* Do any needed setup for a variadic function. CUM has not been updated
|
||||
for the last named argument which has type TYPE and mode MODE. */
|
||||
void
|
||||
stormy16_setup_incoming_varargs (cum, int_mode, type, pretend_size)
|
||||
xstormy16_setup_incoming_varargs (cum, int_mode, type, pretend_size)
|
||||
CUMULATIVE_ARGS cum ATTRIBUTE_UNUSED;
|
||||
int int_mode ATTRIBUTE_UNUSED;
|
||||
tree type ATTRIBUTE_UNUSED;
|
||||
@ -1124,7 +1124,7 @@ stormy16_setup_incoming_varargs (cum, int_mode, type, pretend_size)
|
||||
To keep the layout nice, the pointer is first in the structure. */
|
||||
|
||||
tree
|
||||
stormy16_build_va_list ()
|
||||
xstormy16_build_va_list ()
|
||||
{
|
||||
tree f_1, f_2, record, type_decl;
|
||||
|
||||
@ -1154,7 +1154,7 @@ stormy16_build_va_list ()
|
||||
variable to initialize. NEXTARG is the machine independent notion of the
|
||||
'next' argument after the variable arguments. */
|
||||
void
|
||||
stormy16_expand_builtin_va_start (stdarg_p, valist, nextarg)
|
||||
xstormy16_expand_builtin_va_start (stdarg_p, valist, nextarg)
|
||||
int stdarg_p ATTRIBUTE_UNUSED;
|
||||
tree valist;
|
||||
rtx nextarg ATTRIBUTE_UNUSED;
|
||||
@ -1163,7 +1163,7 @@ stormy16_expand_builtin_va_start (stdarg_p, valist, nextarg)
|
||||
tree base, count;
|
||||
tree t;
|
||||
|
||||
if (stormy16_interrupt_function_p ())
|
||||
if (xstormy16_interrupt_function_p ())
|
||||
error ("cannot use va_start in interrupt function");
|
||||
|
||||
f_base = TYPE_FIELDS (va_list_type_node);
|
||||
@ -1190,7 +1190,7 @@ stormy16_expand_builtin_va_start (stdarg_p, valist, nextarg)
|
||||
Note: This algorithm is documented in stormy-abi. */
|
||||
|
||||
rtx
|
||||
stormy16_expand_builtin_va_arg (valist, type)
|
||||
xstormy16_expand_builtin_va_arg (valist, type)
|
||||
tree valist;
|
||||
tree type;
|
||||
{
|
||||
@ -1277,7 +1277,7 @@ stormy16_expand_builtin_va_arg (valist, type)
|
||||
the nested function; STATIC_CHAIN is an RTX for the static chain
|
||||
value that should be passed to the function when it is called. */
|
||||
void
|
||||
stormy16_initialize_trampoline (addr, fnaddr, static_chain)
|
||||
xstormy16_initialize_trampoline (addr, fnaddr, static_chain)
|
||||
rtx addr;
|
||||
rtx fnaddr;
|
||||
rtx static_chain;
|
||||
@ -1325,7 +1325,7 @@ stormy16_initialize_trampoline (addr, fnaddr, static_chain)
|
||||
because these are returned in another way. See `STRUCT_VALUE_REGNUM' and
|
||||
related macros. */
|
||||
rtx
|
||||
stormy16_function_value (valtype, func)
|
||||
xstormy16_function_value (valtype, func)
|
||||
tree valtype;
|
||||
tree func ATTRIBUTE_UNUSED;
|
||||
{
|
||||
@ -1362,7 +1362,7 @@ stormy16_function_value (valtype, func)
|
||||
probably not. */
|
||||
|
||||
void
|
||||
stormy16_asm_output_mi_thunk (file, thunk_fndecl, delta, function)
|
||||
xstormy16_asm_output_mi_thunk (file, thunk_fndecl, delta, function)
|
||||
FILE *file;
|
||||
tree thunk_fndecl ATTRIBUTE_UNUSED;
|
||||
int delta;
|
||||
@ -1383,7 +1383,7 @@ stormy16_asm_output_mi_thunk (file, thunk_fndecl, delta, function)
|
||||
/* Mark functions with SYMBOL_REF_FLAG. */
|
||||
|
||||
void
|
||||
stormy16_encode_section_info (decl)
|
||||
xstormy16_encode_section_info (decl)
|
||||
tree decl;
|
||||
{
|
||||
if (TREE_CODE (decl) == FUNCTION_DECL)
|
||||
@ -1393,12 +1393,12 @@ stormy16_encode_section_info (decl)
|
||||
/* Output constructors and destructors. Just like
|
||||
default_named_section_asm_out_* but don't set the sections writable. */
|
||||
#undef TARGET_ASM_CONSTRUCTOR
|
||||
#define TARGET_ASM_CONSTRUCTOR stormy16_asm_out_constructor
|
||||
#define TARGET_ASM_CONSTRUCTOR xstormy16_asm_out_constructor
|
||||
#undef TARGET_ASM_DESTRUCTOR
|
||||
#define TARGET_ASM_DESTRUCTOR stormy16_asm_out_destructor
|
||||
#define TARGET_ASM_DESTRUCTOR xstormy16_asm_out_destructor
|
||||
|
||||
static void
|
||||
stormy16_asm_out_destructor (symbol, priority)
|
||||
xstormy16_asm_out_destructor (symbol, priority)
|
||||
rtx symbol;
|
||||
int priority;
|
||||
{
|
||||
@ -1422,7 +1422,7 @@ stormy16_asm_out_destructor (symbol, priority)
|
||||
}
|
||||
|
||||
static void
|
||||
stormy16_asm_out_constructor (symbol, priority)
|
||||
xstormy16_asm_out_constructor (symbol, priority)
|
||||
rtx symbol;
|
||||
int priority;
|
||||
{
|
||||
@ -1447,7 +1447,7 @@ stormy16_asm_out_constructor (symbol, priority)
|
||||
|
||||
/* Print a memory address as an operand to reference that memory location. */
|
||||
void
|
||||
stormy16_print_operand_address (file, address)
|
||||
xstormy16_print_operand_address (file, address)
|
||||
FILE * file;
|
||||
rtx address;
|
||||
{
|
||||
@ -1505,7 +1505,7 @@ stormy16_print_operand_address (file, address)
|
||||
|
||||
/* Print an operand to a assembler instruction. */
|
||||
void
|
||||
stormy16_print_operand (file, x, code)
|
||||
xstormy16_print_operand (file, x, code)
|
||||
FILE * file;
|
||||
rtx x;
|
||||
int code;
|
||||
@ -1540,7 +1540,7 @@ stormy16_print_operand (file, x, code)
|
||||
if (GET_CODE (x) == SYMBOL_REF)
|
||||
assemble_name (file, XSTR (x, 0));
|
||||
else
|
||||
stormy16_print_operand_address (file, x);
|
||||
xstormy16_print_operand_address (file, x);
|
||||
return;
|
||||
|
||||
case 'o':
|
||||
@ -1568,7 +1568,7 @@ stormy16_print_operand (file, x, code)
|
||||
break;
|
||||
|
||||
default:
|
||||
output_operand_lossage ("stormy16_print_operand: unknown code");
|
||||
output_operand_lossage ("xstormy16_print_operand: unknown code");
|
||||
return;
|
||||
}
|
||||
|
||||
@ -1579,7 +1579,7 @@ stormy16_print_operand (file, x, code)
|
||||
break;
|
||||
|
||||
case MEM:
|
||||
stormy16_print_operand_address (file, XEXP (x, 0));
|
||||
xstormy16_print_operand_address (file, XEXP (x, 0));
|
||||
break;
|
||||
|
||||
default:
|
||||
@ -1605,7 +1605,7 @@ stormy16_print_operand (file, x, code)
|
||||
*/
|
||||
|
||||
void
|
||||
stormy16_expand_casesi (index, lower_bound, range, table, default_label)
|
||||
xstormy16_expand_casesi (index, lower_bound, range, table, default_label)
|
||||
rtx index;
|
||||
rtx lower_bound;
|
||||
rtx range;
|
||||
@ -1639,7 +1639,7 @@ stormy16_expand_casesi (index, lower_bound, range, table, default_label)
|
||||
all reach. */
|
||||
|
||||
void
|
||||
stormy16_output_addr_vec (file, label, table)
|
||||
xstormy16_output_addr_vec (file, label, table)
|
||||
FILE *file;
|
||||
rtx label ATTRIBUTE_UNUSED;
|
||||
rtx table;
|
||||
@ -1652,7 +1652,7 @@ stormy16_output_addr_vec (file, label, table)
|
||||
for (idx = 0; idx < vlen; idx++)
|
||||
{
|
||||
fputs ("\tjmpf ", file);
|
||||
stormy16_print_operand_address (file,
|
||||
xstormy16_print_operand_address (file,
|
||||
XEXP (XVECEXP (table, 0, idx), 0));
|
||||
fputc ('\n', file);
|
||||
}
|
||||
@ -1670,7 +1670,7 @@ stormy16_output_addr_vec (file, label, table)
|
||||
*/
|
||||
|
||||
void
|
||||
stormy16_expand_call (retval, dest, counter)
|
||||
xstormy16_expand_call (retval, dest, counter)
|
||||
rtx retval;
|
||||
rtx dest;
|
||||
rtx counter;
|
||||
@ -1717,10 +1717,10 @@ stormy16_expand_call (retval, dest, counter)
|
||||
|
||||
using CARRY as a temporary. When CODE is COMPARE, a branch
|
||||
template is generated (this saves duplicating code in
|
||||
stormy16_split_cbranch). */
|
||||
xstormy16_split_cbranch). */
|
||||
|
||||
void
|
||||
stormy16_expand_arith (mode, code, dest, src0, src1, carry)
|
||||
xstormy16_expand_arith (mode, code, dest, src0, src1, carry)
|
||||
enum machine_mode mode;
|
||||
enum rtx_code code;
|
||||
rtx dest;
|
||||
@ -1842,7 +1842,7 @@ shift_operator (op, mode)
|
||||
SIZE_R will be a CONST_INT, X will be a hard register. */
|
||||
|
||||
const char *
|
||||
stormy16_output_shift (mode, code, x, size_r, temp)
|
||||
xstormy16_output_shift (mode, code, x, size_r, temp)
|
||||
enum machine_mode mode;
|
||||
enum rtx_code code;
|
||||
rtx x;
|
||||
@ -1959,7 +1959,7 @@ stormy16_output_shift (mode, code, x, size_r, temp)
|
||||
|
||||
/* Return nonzero if the function is an interrupt function. */
|
||||
int
|
||||
stormy16_interrupt_function_p ()
|
||||
xstormy16_interrupt_function_p ()
|
||||
{
|
||||
tree attributes;
|
||||
|
||||
@ -1974,19 +1974,19 @@ stormy16_interrupt_function_p ()
|
||||
}
|
||||
|
||||
#undef TARGET_ATTRIBUTE_TABLE
|
||||
#define TARGET_ATTRIBUTE_TABLE stormy16_attribute_table
|
||||
static tree stormy16_handle_interrupt_attribute PARAMS ((tree *, tree, tree, int, bool *));
|
||||
static const struct attribute_spec stormy16_attribute_table[] =
|
||||
#define TARGET_ATTRIBUTE_TABLE xstormy16_attribute_table
|
||||
static tree xstormy16_handle_interrupt_attribute PARAMS ((tree *, tree, tree, int, bool *));
|
||||
static const struct attribute_spec xstormy16_attribute_table[] =
|
||||
{
|
||||
/* { name, min_len, max_len, decl_req, type_req, fn_type_req, handler } */
|
||||
{ "interrupt", 0, 0, false, true, true, stormy16_handle_interrupt_attribute },
|
||||
{ "interrupt", 0, 0, false, true, true, xstormy16_handle_interrupt_attribute },
|
||||
{ NULL, 0, 0, false, false, false, NULL }
|
||||
};
|
||||
|
||||
/* Handle an "interrupt" attribute;
|
||||
arguments as in struct attribute_spec.handler. */
|
||||
static tree
|
||||
stormy16_handle_interrupt_attribute (node, name, args, flags, no_add_attrs)
|
||||
xstormy16_handle_interrupt_attribute (node, name, args, flags, no_add_attrs)
|
||||
tree *node;
|
||||
tree name;
|
||||
tree args ATTRIBUTE_UNUSED;
|
||||
|
@ -1,4 +1,4 @@
|
||||
/* Stormy16 cpu description.
|
||||
/* Xstormy16 cpu description.
|
||||
Copyright (C) 1997, 1998, 1999, 2000, 2001
|
||||
Free Software Foundation, Inc.
|
||||
Contributed by Red Hat, Inc.
|
||||
@ -138,7 +138,7 @@ Boston, MA 02111-1307, USA. */
|
||||
between the two is that `LIB_SPEC' is used at the end of the command given
|
||||
to the linker.
|
||||
|
||||
For stormy16:
|
||||
For xstormy16:
|
||||
- If -msim is specified, everything is built and linked as for the sim.
|
||||
- If -T is specified, that linker script is used, and it should provide
|
||||
appropriate libraries.
|
||||
@ -355,7 +355,7 @@ Boston, MA 02111-1307, USA. */
|
||||
The result is to define the macros `__mc68000__', `__sun__' and `__unix__'
|
||||
unconditionally, and the macros `mc68000', `sun' and `unix' provided `-ansi'
|
||||
is not specified. */
|
||||
#define CPP_PREDEFINES "-Dstormy16 -Amachine=stormy16 -D__INT_MAX__=32767"
|
||||
#define CPP_PREDEFINES "-Dxstormy16 -Amachine=xstormy16 -D__INT_MAX__=32767"
|
||||
|
||||
/* This declaration should be present. */
|
||||
extern int target_flags;
|
||||
@ -444,7 +444,7 @@ extern int target_flags;
|
||||
#define TARGET_VERSION \
|
||||
fprintf (stderr, " (68k, MIT syntax)");
|
||||
#endif */
|
||||
#define TARGET_VERSION fprintf (stderr, " (stormy16 cpu core)");
|
||||
#define TARGET_VERSION fprintf (stderr, " (xstormy16 cpu core)");
|
||||
|
||||
/* Sometimes certain combinations of command options do not make sense on a
|
||||
particular target machine. You can define a macro `OVERRIDE_OPTIONS' to
|
||||
@ -1347,13 +1347,13 @@ enum reg_class
|
||||
|
||||
This declaration must be present. */
|
||||
#define PREFERRED_RELOAD_CLASS(X, CLASS) \
|
||||
stormy16_preferred_reload_class (X, CLASS)
|
||||
xstormy16_preferred_reload_class (X, CLASS)
|
||||
|
||||
/* Like `PREFERRED_RELOAD_CLASS', but for output reloads instead of input
|
||||
reloads. If you don't define this macro, the default is to use CLASS,
|
||||
unchanged. */
|
||||
#define PREFERRED_OUTPUT_RELOAD_CLASS(X, CLASS) \
|
||||
stormy16_preferred_reload_class (X, CLASS)
|
||||
xstormy16_preferred_reload_class (X, CLASS)
|
||||
|
||||
/* A C expression that places additional restrictions on the register class to
|
||||
use when it is necessary to be able to hold a value of mode MODE in a reload
|
||||
@ -1424,7 +1424,7 @@ enum reg_class
|
||||
/* This chip has the interesting property that only the first eight
|
||||
registers can be moved to/from memory. */
|
||||
#define SECONDARY_RELOAD_CLASS(CLASS, MODE, X) \
|
||||
stormy16_secondary_reload_class (CLASS, MODE, X)
|
||||
xstormy16_secondary_reload_class (CLASS, MODE, X)
|
||||
|
||||
/* #define SECONDARY_INPUT_RELOAD_CLASS(CLASS, MODE, X) */
|
||||
/* #define SECONDARY_OUTPUT_RELOAD_CLASS(CLASS, MODE, X) */
|
||||
@ -1572,7 +1572,7 @@ enum reg_class
|
||||
input and `r' on the output. The next alternative specifies `m' on the
|
||||
input and a register class that does not include r0 on the output. */
|
||||
#define EXTRA_CONSTRAINT(VALUE, C) \
|
||||
stormy16_extra_constraint_p (VALUE, C)
|
||||
xstormy16_extra_constraint_p (VALUE, C)
|
||||
|
||||
|
||||
/* Basic Stack Layout */
|
||||
@ -1680,7 +1680,7 @@ enum reg_class
|
||||
|
||||
You only need to define this macro if you want to support call frame
|
||||
debugging information like that provided by DWARF 2. */
|
||||
#define INCOMING_FRAME_SP_OFFSET (stormy16_interrupt_function_p () ? 6 : 4)
|
||||
#define INCOMING_FRAME_SP_OFFSET (xstormy16_interrupt_function_p () ? 6 : 4)
|
||||
|
||||
|
||||
/* Stack Checking. */
|
||||
@ -1876,7 +1876,7 @@ enum reg_class
|
||||
initial difference between the specified pair of registers. This macro must
|
||||
be defined if `ELIMINABLE_REGS' is defined. */
|
||||
#define INITIAL_ELIMINATION_OFFSET(FROM, TO, OFFSET) \
|
||||
(OFFSET) = stormy16_initial_elimination_offset (FROM, TO)
|
||||
(OFFSET) = xstormy16_initial_elimination_offset (FROM, TO)
|
||||
|
||||
/* Define this macro if the `longjmp' function restores registers from the
|
||||
stack frames, rather than from those saved specifically by `setjmp'.
|
||||
@ -2015,7 +2015,7 @@ enum reg_class
|
||||
#define NUM_ARGUMENT_REGISTERS 6
|
||||
#define FIRST_ARGUMENT_REGISTER 2
|
||||
|
||||
#define STORMY16_WORD_SIZE(TYPE, MODE) \
|
||||
#define XSTORMY16_WORD_SIZE(TYPE, MODE) \
|
||||
((((TYPE) ? int_size_in_bytes (TYPE) : GET_MODE_SIZE (MODE)) \
|
||||
+ 1) \
|
||||
/ 2)
|
||||
@ -2052,7 +2052,7 @@ enum reg_class
|
||||
stack and then loaded into a register. */
|
||||
#define FUNCTION_ARG(CUM, MODE, TYPE, NAMED) \
|
||||
((MODE) == VOIDmode ? const0_rtx \
|
||||
: (CUM) + STORMY16_WORD_SIZE (TYPE, MODE) > NUM_ARGUMENT_REGISTERS ? 0 \
|
||||
: (CUM) + XSTORMY16_WORD_SIZE (TYPE, MODE) > NUM_ARGUMENT_REGISTERS ? 0 \
|
||||
: gen_rtx_REG (MODE, (CUM) + 2))
|
||||
|
||||
/* Define this macro if the target machine has "register windows", so that the
|
||||
@ -2161,7 +2161,7 @@ typedef int CUMULATIVE_ARGS;
|
||||
the stack. The compiler knows how to track the amount of stack space used
|
||||
for arguments without any special help. */
|
||||
#define FUNCTION_ARG_ADVANCE(CUM, MODE, TYPE, NAMED) \
|
||||
((CUM) = stormy16_function_arg_advance (CUM, MODE, TYPE, NAMED))
|
||||
((CUM) = xstormy16_function_arg_advance (CUM, MODE, TYPE, NAMED))
|
||||
|
||||
/* If defined, a C expression which determines whether, and in which direction,
|
||||
to pad out an argument with extra space. The value should be of type `enum
|
||||
@ -2221,7 +2221,7 @@ typedef int CUMULATIVE_ARGS;
|
||||
because these are returned in another way. See `STRUCT_VALUE_REGNUM' and
|
||||
related macros, below. */
|
||||
#define FUNCTION_VALUE(VALTYPE, FUNC) \
|
||||
stormy16_function_value (VALTYPE, FUNC)
|
||||
xstormy16_function_value (VALTYPE, FUNC)
|
||||
|
||||
|
||||
/* Define this macro if the target machine has "register windows" so that the
|
||||
@ -2376,7 +2376,7 @@ typedef int CUMULATIVE_ARGS;
|
||||
frame pointer registers are already be assumed to be used as
|
||||
needed. */
|
||||
#define EPILOGUE_USES(REGNO) \
|
||||
stormy16_epilogue_uses (REGNO)
|
||||
xstormy16_epilogue_uses (REGNO)
|
||||
|
||||
/* Define this macro if the function epilogue contains delay slots to which
|
||||
instructions from the rest of the function can be "moved". The definition
|
||||
@ -2437,7 +2437,7 @@ typedef int CUMULATIVE_ARGS;
|
||||
FUNCTION instead of jumping to it. The generic approach does not support
|
||||
varargs. */
|
||||
#define ASM_OUTPUT_MI_THUNK(FILE, THUNK_FNDECL, DELTA, FUNCTION) \
|
||||
stormy16_asm_output_mi_thunk (FILE, THUNK_FNDECL, DELTA, FUNCTION)
|
||||
xstormy16_asm_output_mi_thunk (FILE, THUNK_FNDECL, DELTA, FUNCTION)
|
||||
|
||||
|
||||
/* Generating Code for Profiling. */
|
||||
@ -2604,7 +2604,7 @@ typedef int CUMULATIVE_ARGS;
|
||||
a message describing why the function could not be inlined. The message will
|
||||
displayed if the '-Winline' command line switch has been given. If the message
|
||||
contains a '%s' sequence, this will be replaced by the name of the function. */
|
||||
/* #define TARGET_CANNOT_INLINE_P(FN_DECL) stormy16_cannot_inline_p (FN_DECL) */
|
||||
/* #define TARGET_CANNOT_INLINE_P(FN_DECL) xstormy16_cannot_inline_p (FN_DECL) */
|
||||
|
||||
/* Implementing the Varargs Macros. */
|
||||
|
||||
@ -2648,7 +2648,7 @@ typedef int CUMULATIVE_ARGS;
|
||||
this case. */
|
||||
#define SETUP_INCOMING_VARARGS(ARGS_SO_FAR, MODE, TYPE, PRETEND_ARGS_SIZE, SECOND_TIME) \
|
||||
if (! SECOND_TIME) \
|
||||
stormy16_setup_incoming_varargs (ARGS_SO_FAR, MODE, TYPE, & PRETEND_ARGS_SIZE)
|
||||
xstormy16_setup_incoming_varargs (ARGS_SO_FAR, MODE, TYPE, & PRETEND_ARGS_SIZE)
|
||||
|
||||
/* Define this macro if the location where a function argument is passed
|
||||
depends on whether or not it is a named argument.
|
||||
@ -2664,7 +2664,7 @@ typedef int CUMULATIVE_ARGS;
|
||||
/* Build up the stdarg/varargs va_list type tree, assinging it to NODE. If not
|
||||
defined, it is assumed that va_list is a void * pointer. */
|
||||
#define BUILD_VA_LIST_TYPE(NODE) \
|
||||
((NODE) = stormy16_build_va_list ())
|
||||
((NODE) = xstormy16_build_va_list ())
|
||||
|
||||
/* Implement the stdarg/varargs va_start macro. STDARG_P is non-zero if this
|
||||
is stdarg.h instead of varargs.h. VALIST is the tree of the va_list
|
||||
@ -2672,12 +2672,12 @@ typedef int CUMULATIVE_ARGS;
|
||||
'next' argument after the variable arguments. If not defined, a standard
|
||||
implementation will be defined that works for arguments passed on the stack. */
|
||||
#define EXPAND_BUILTIN_VA_START(STDARG_P, VALIST, NEXTARG) \
|
||||
stormy16_expand_builtin_va_start (STDARG_P, VALIST, NEXTARG)
|
||||
xstormy16_expand_builtin_va_start (STDARG_P, VALIST, NEXTARG)
|
||||
|
||||
/* Implement the stdarg/varargs va_arg macro. VALIST is the variable of type
|
||||
va_list as a tree, TYPE is the type passed to va_arg. */
|
||||
#define EXPAND_BUILTIN_VA_ARG(VALIST, TYPE) \
|
||||
stormy16_expand_builtin_va_arg (VALIST, TYPE)
|
||||
xstormy16_expand_builtin_va_arg (VALIST, TYPE)
|
||||
|
||||
/* Implement the stdarg/varargs va_end macro. VALIST is the variable of type
|
||||
va_list as a tree. */
|
||||
@ -2710,7 +2710,7 @@ typedef int CUMULATIVE_ARGS;
|
||||
the nested function; STATIC_CHAIN is an RTX for the static chain value that
|
||||
should be passed to the function when it is called. */
|
||||
#define INITIALIZE_TRAMPOLINE(ADDR, FNADDR, STATIC_CHAIN) \
|
||||
stormy16_initialize_trampoline (ADDR, FNADDR, STATIC_CHAIN)
|
||||
xstormy16_initialize_trampoline (ADDR, FNADDR, STATIC_CHAIN)
|
||||
|
||||
/* A C expression to allocate run-time space for a trampoline. The expression
|
||||
value should be an RTX representing a memory reference to the space for the
|
||||
@ -3042,13 +3042,13 @@ typedef int CUMULATIVE_ARGS;
|
||||
#ifdef REG_OK_STRICT
|
||||
#define GO_IF_LEGITIMATE_ADDRESS(MODE, X, LABEL) \
|
||||
do { \
|
||||
if (stormy16_legitimate_address_p (MODE, X, 1)) \
|
||||
if (xstormy16_legitimate_address_p (MODE, X, 1)) \
|
||||
goto LABEL; \
|
||||
} while (0)
|
||||
#else
|
||||
#define GO_IF_LEGITIMATE_ADDRESS(MODE, X, LABEL) \
|
||||
do { \
|
||||
if (stormy16_legitimate_address_p (MODE, X, 0)) \
|
||||
if (xstormy16_legitimate_address_p (MODE, X, 0)) \
|
||||
goto LABEL; \
|
||||
} while (0)
|
||||
#endif
|
||||
@ -3116,7 +3116,7 @@ do { \
|
||||
or pre-decrement address.
|
||||
*/
|
||||
#define GO_IF_MODE_DEPENDENT_ADDRESS(ADDR,LABEL) \
|
||||
if (stormy16_mode_dependent_address_p (ADDR)) \
|
||||
if (xstormy16_mode_dependent_address_p (ADDR)) \
|
||||
goto LABEL
|
||||
|
||||
/* A C expression that is nonzero if X is a legitimate constant for an
|
||||
@ -3526,7 +3526,7 @@ do { \
|
||||
The usual thing for this macro to do is to record a flag in the `symbol_ref'
|
||||
(such as `SYMBOL_REF_FLAG') or to store a modified name string in the
|
||||
`symbol_ref' (if one bit is not enough information). */
|
||||
#define ENCODE_SECTION_INFO(DECL) stormy16_encode_section_info(DECL)
|
||||
#define ENCODE_SECTION_INFO(DECL) xstormy16_encode_section_info(DECL)
|
||||
|
||||
/* Decode SYM_NAME and store the real name part in VAR, sans the characters
|
||||
that encode section info. Define this macro if `ENCODE_SECTION_INFO' alters
|
||||
@ -4402,7 +4402,7 @@ do { \
|
||||
When the machine description has a specification `%PUNCT' (a `%' followed by
|
||||
a punctuation character), this macro is called with a null pointer for X and
|
||||
the punctuation character for CODE. */
|
||||
#define PRINT_OPERAND(STREAM, X, CODE) stormy16_print_operand (STREAM, X, CODE)
|
||||
#define PRINT_OPERAND(STREAM, X, CODE) xstormy16_print_operand (STREAM, X, CODE)
|
||||
|
||||
/* A C expression which evaluates to true if CODE is a valid punctuation
|
||||
character for use in the `PRINT_OPERAND' macro. If
|
||||
@ -4420,7 +4420,7 @@ do { \
|
||||
then check for it here.
|
||||
|
||||
This declaration must be present. */
|
||||
#define PRINT_OPERAND_ADDRESS(STREAM, X) stormy16_print_operand_address (STREAM, X)
|
||||
#define PRINT_OPERAND_ADDRESS(STREAM, X) xstormy16_print_operand_address (STREAM, X)
|
||||
|
||||
/* A C statement, to be executed after all slot-filler instructions have been
|
||||
output. If necessary, call `dbr_sequence_length' to determine the number of
|
||||
@ -4490,7 +4490,7 @@ do { \
|
||||
which would be bad. Instead, it controls the output of the table
|
||||
itself. */
|
||||
#define ASM_OUTPUT_ADDR_VEC(LABEL, BODY) \
|
||||
stormy16_output_addr_vec (file, LABEL, BODY)
|
||||
xstormy16_output_addr_vec (file, LABEL, BODY)
|
||||
|
||||
/* Alignment for ADDR_VECs is the same as for code. */
|
||||
#define ADDR_VEC_ALIGN(ADDR_VEC) 1
|
||||
@ -4956,7 +4956,7 @@ do { \
|
||||
{"shift_operator", {ASHIFT, ASHIFTRT, LSHIFTRT }}, \
|
||||
{"equality_operator", {EQ, NE }}, \
|
||||
{"inequality_operator", {GE, GT, LE, LT, GEU, GTU, LEU, LTU }}, \
|
||||
{"stormy16_ineqsi_operator", {LT, GE, LTU, GEU }},
|
||||
{"xstormy16_ineqsi_operator", {LT, GE, LTU, GEU }},
|
||||
|
||||
/* An alias for a machine mode name. This is the machine mode that elements of
|
||||
a jump-table should have. */
|
||||
@ -5342,6 +5342,6 @@ do { \
|
||||
stored from the compare operation. Note that we can't use "rtx" here
|
||||
since it hasn't been defined! */
|
||||
|
||||
extern struct rtx_def *stormy16_compare_op0, *stormy16_compare_op1;
|
||||
extern struct rtx_def *xstormy16_compare_op0, *xstormy16_compare_op1;
|
||||
|
||||
/* End of stormy16.h */
|
||||
/* End of xstormy16.h */
|
||||
|
@ -1,4 +1,4 @@
|
||||
;; STORMY16 Machine description template
|
||||
;; XSTORMY16 Machine description template
|
||||
;; Copyright (C) 1997, 1998, 1999, 2001 Free Software Foundation, Inc.
|
||||
;; Contributed by Red Hat, Inc.
|
||||
|
||||
@ -77,7 +77,7 @@
|
||||
[(set (match_operand:QI 0 "nonimmediate_operand" "")
|
||||
(match_operand:QI 1 "general_operand" ""))]
|
||||
""
|
||||
"{ stormy16_expand_move (QImode, operands[0], operands[1]); DONE; }")
|
||||
"{ xstormy16_expand_move (QImode, operands[0], operands[1]); DONE; }")
|
||||
|
||||
(define_insn "*movqi_internal"
|
||||
[(set (match_operand:QI 0 "nonimmediate_operand" "=r,Q,r,m,e,e,T,r,S")
|
||||
@ -113,7 +113,7 @@
|
||||
[(set (match_operand:HI 0 "nonimmediate_operand" "")
|
||||
(match_operand:HI 1 "general_operand" ""))]
|
||||
""
|
||||
"{ stormy16_expand_move (HImode, operands[0], operands[1]); DONE; }")
|
||||
"{ xstormy16_expand_move (HImode, operands[0], operands[1]); DONE; }")
|
||||
|
||||
(define_insn "*movhi_internal"
|
||||
[(set (match_operand:HI 0 "nonimmediate_operand" "=r,Q,r,m,e,e,T,r,S")
|
||||
@ -149,7 +149,7 @@
|
||||
[(set (match_operand:SI 0 "nonimmediate_operand" "")
|
||||
(match_operand:SI 1 "general_operand" ""))]
|
||||
""
|
||||
"{ stormy16_expand_move (SImode, operands[0], operands[1]); DONE; }")
|
||||
"{ xstormy16_expand_move (SImode, operands[0], operands[1]); DONE; }")
|
||||
|
||||
(define_insn_and_split "*movsi_internal"
|
||||
[(set (match_operand:SI 0 "nonimmediate_operand" "=r,Q,r,m,e,&e,e,r,S")
|
||||
@ -158,7 +158,7 @@
|
||||
"#"
|
||||
"reload_completed"
|
||||
[(pc)]
|
||||
"{ stormy16_split_move (SImode, operands[0], operands[1]); DONE; }"
|
||||
"{ xstormy16_split_move (SImode, operands[0], operands[1]); DONE; }"
|
||||
[(set_attr_alternative "length"
|
||||
[(const_int 4)
|
||||
(const_int 4)
|
||||
@ -250,7 +250,7 @@
|
||||
; shows it how to place the register in RTL to make the addition work.
|
||||
(define_expand "reload_inhi"
|
||||
[(parallel [(set (match_operand:HI 0 "register_operand" "=r")
|
||||
(match_operand:HI 1 "stormy16_carry_plus_operand" ""))
|
||||
(match_operand:HI 1 "xstormy16_carry_plus_operand" ""))
|
||||
(clobber (match_operand:BI 2 "" "=&y"))])]
|
||||
""
|
||||
"if (! rtx_equal_p (operands[0], XEXP (operands[1], 0)))
|
||||
@ -501,7 +501,7 @@
|
||||
"#"
|
||||
"reload_completed"
|
||||
[(pc)]
|
||||
"{ stormy16_expand_arith (SImode, PLUS, operands[0], operands[1],
|
||||
"{ xstormy16_expand_arith (SImode, PLUS, operands[0], operands[1],
|
||||
operands[2], operands[3]); DONE; } "
|
||||
[(set_attr "length" "4")])
|
||||
|
||||
@ -515,7 +515,7 @@
|
||||
"#"
|
||||
"reload_completed"
|
||||
[(pc)]
|
||||
"{ stormy16_expand_arith (SImode, MINUS, operands[0], operands[1],
|
||||
"{ xstormy16_expand_arith (SImode, MINUS, operands[0], operands[1],
|
||||
operands[2], operands[3]); DONE; } "
|
||||
[(set_attr "length" "4")])
|
||||
|
||||
@ -523,7 +523,7 @@
|
||||
[(set (match_operand:SI 0 "register_operand" "")
|
||||
(neg:SI (match_operand:SI 1 "register_operand" "")))]
|
||||
""
|
||||
"{ stormy16_expand_arith (SImode, NEG, operands[0], const0_rtx,
|
||||
"{ xstormy16_expand_arith (SImode, NEG, operands[0], const0_rtx,
|
||||
operands[1], gen_reg_rtx (BImode)); DONE; }")
|
||||
|
||||
;; ::::::::::::::::::::
|
||||
@ -573,7 +573,7 @@
|
||||
(clobber (match_operand:BI 3 "register_operand" "=y,y"))
|
||||
(clobber (match_operand:HI 4 "" "=X,r"))]
|
||||
""
|
||||
"* return stormy16_output_shift (SImode, GET_CODE (operands[5]),
|
||||
"* return xstormy16_output_shift (SImode, GET_CODE (operands[5]),
|
||||
operands[0], operands[2], operands[4]);"
|
||||
[(set_attr "length" "6,10")
|
||||
(set_attr "psw_operand" "clobber,clobber")])
|
||||
@ -596,8 +596,8 @@
|
||||
""
|
||||
"
|
||||
{
|
||||
stormy16_compare_op0 = operands[0];
|
||||
stormy16_compare_op1 = operands[1];
|
||||
xstormy16_compare_op0 = operands[0];
|
||||
xstormy16_compare_op1 = operands[1];
|
||||
DONE;
|
||||
}")
|
||||
|
||||
@ -610,8 +610,8 @@
|
||||
""
|
||||
"
|
||||
{
|
||||
stormy16_compare_op0 = operands[0];
|
||||
stormy16_compare_op1 = operands[1];
|
||||
xstormy16_compare_op0 = operands[0];
|
||||
xstormy16_compare_op1 = operands[1];
|
||||
DONE;
|
||||
}")
|
||||
|
||||
@ -625,52 +625,52 @@
|
||||
(define_expand "beq"
|
||||
[(use (match_operand 0 "" ""))]
|
||||
""
|
||||
"{ stormy16_emit_cbranch (EQ, operands[0]); DONE; }")
|
||||
"{ xstormy16_emit_cbranch (EQ, operands[0]); DONE; }")
|
||||
|
||||
(define_expand "bne"
|
||||
[(use (match_operand 0 "" ""))]
|
||||
""
|
||||
"{ stormy16_emit_cbranch (NE, operands[0]); DONE; }")
|
||||
"{ xstormy16_emit_cbranch (NE, operands[0]); DONE; }")
|
||||
|
||||
(define_expand "bge"
|
||||
[(use (match_operand 0 "" ""))]
|
||||
""
|
||||
"{ stormy16_emit_cbranch (GE, operands[0]); DONE; }")
|
||||
"{ xstormy16_emit_cbranch (GE, operands[0]); DONE; }")
|
||||
|
||||
(define_expand "bgt"
|
||||
[(use (match_operand 0 "" ""))]
|
||||
""
|
||||
"{ stormy16_emit_cbranch (GT, operands[0]); DONE; }")
|
||||
"{ xstormy16_emit_cbranch (GT, operands[0]); DONE; }")
|
||||
|
||||
(define_expand "ble"
|
||||
[(use (match_operand 0 "" ""))]
|
||||
""
|
||||
"{ stormy16_emit_cbranch (LE, operands[0]); DONE; }")
|
||||
"{ xstormy16_emit_cbranch (LE, operands[0]); DONE; }")
|
||||
|
||||
(define_expand "blt"
|
||||
[(use (match_operand 0 "" ""))]
|
||||
""
|
||||
"{ stormy16_emit_cbranch (LT, operands[0]); DONE; }")
|
||||
"{ xstormy16_emit_cbranch (LT, operands[0]); DONE; }")
|
||||
|
||||
(define_expand "bgeu"
|
||||
[(use (match_operand 0 "" ""))]
|
||||
""
|
||||
"{ stormy16_emit_cbranch (GEU, operands[0]); DONE; }")
|
||||
"{ xstormy16_emit_cbranch (GEU, operands[0]); DONE; }")
|
||||
|
||||
(define_expand "bgtu"
|
||||
[(use (match_operand 0 "" ""))]
|
||||
""
|
||||
"{ stormy16_emit_cbranch (GTU, operands[0]); DONE; }")
|
||||
"{ xstormy16_emit_cbranch (GTU, operands[0]); DONE; }")
|
||||
|
||||
(define_expand "bleu"
|
||||
[(use (match_operand 0 "" ""))]
|
||||
""
|
||||
"{ stormy16_emit_cbranch (LEU, operands[0]); DONE; }")
|
||||
"{ xstormy16_emit_cbranch (LEU, operands[0]); DONE; }")
|
||||
|
||||
(define_expand "bltu"
|
||||
[(use (match_operand 0 "" ""))]
|
||||
""
|
||||
"{ stormy16_emit_cbranch (LTU, operands[0]); DONE; }")
|
||||
"{ xstormy16_emit_cbranch (LTU, operands[0]); DONE; }")
|
||||
|
||||
|
||||
(define_insn "*cbranchhi"
|
||||
@ -686,7 +686,7 @@
|
||||
""
|
||||
"*
|
||||
{
|
||||
return stormy16_output_cbranch_hi (operands[1], \"%l0\", 0, insn);
|
||||
return xstormy16_output_cbranch_hi (operands[1], \"%l0\", 0, insn);
|
||||
}"
|
||||
[(set_attr "branch_class" "bcc12")
|
||||
(set_attr "psw_operand" "0,0,1")])
|
||||
@ -704,7 +704,7 @@
|
||||
""
|
||||
"*
|
||||
{
|
||||
return stormy16_output_cbranch_hi (operands[1], \"%l0\", 1, insn);
|
||||
return xstormy16_output_cbranch_hi (operands[1], \"%l0\", 1, insn);
|
||||
}"
|
||||
[(set_attr "branch_class" "bcc12")
|
||||
(set_attr "psw_operand" "0,0,1")])
|
||||
@ -725,14 +725,14 @@
|
||||
""
|
||||
"*
|
||||
{
|
||||
return stormy16_output_cbranch_si (operands[1], \"%l0\", 0, insn);
|
||||
return xstormy16_output_cbranch_si (operands[1], \"%l0\", 0, insn);
|
||||
}"
|
||||
[(set_attr "branch_class" "bcc8p2")
|
||||
(set_attr "psw_operand" "clobber")])
|
||||
|
||||
(define_insn_and_split "*ineqbranchsi"
|
||||
[(set (pc)
|
||||
(if_then_else (match_operator:SI 1 "stormy16_ineqsi_operator"
|
||||
(if_then_else (match_operator:SI 1 "xstormy16_ineqsi_operator"
|
||||
[(match_operand:SI 2 "register_operand"
|
||||
"+r")
|
||||
(match_operand:SI 3 "nonmemory_operand"
|
||||
@ -753,13 +753,13 @@
|
||||
"#"
|
||||
"reload_completed"
|
||||
[(pc)]
|
||||
"{ stormy16_split_cbranch (SImode, operands[0], operands[1], operands[2],
|
||||
"{ xstormy16_split_cbranch (SImode, operands[0], operands[1], operands[2],
|
||||
operands[4]); DONE; }"
|
||||
[(set_attr "length" "8")])
|
||||
|
||||
(define_insn "*ineqbranch_1"
|
||||
[(set (pc)
|
||||
(if_then_else (match_operator:HI 5 "stormy16_ineqsi_operator"
|
||||
(if_then_else (match_operator:HI 5 "xstormy16_ineqsi_operator"
|
||||
[(minus:HI (match_operand:HI 1 "register_operand"
|
||||
"T,r,r")
|
||||
(zero_extend:HI (match_operand:BI 4
|
||||
@ -775,7 +775,7 @@
|
||||
""
|
||||
"*
|
||||
{
|
||||
return stormy16_output_cbranch_si (operands[5], \"%l0\", 0, insn);
|
||||
return xstormy16_output_cbranch_si (operands[5], \"%l0\", 0, insn);
|
||||
}"
|
||||
[(set_attr "branch_class" "bcc8p2,bcc8p2,bcc8p4")
|
||||
(set_attr "psw_operand" "2,2,2")])
|
||||
@ -802,7 +802,7 @@
|
||||
(match_operand 1 "" ""))
|
||||
(use (match_operand 2 "immediate_operand" ""))]
|
||||
""
|
||||
"stormy16_expand_call (NULL_RTX, operands[0], operands[1]); DONE;")
|
||||
"xstormy16_expand_call (NULL_RTX, operands[0], operands[1]); DONE;")
|
||||
|
||||
;; Subroutine call instruction returning a value. Operand 0 is the hard
|
||||
;; register in which the value is returned. There are three more operands, the
|
||||
@ -817,7 +817,7 @@
|
||||
(match_operand:SI 2 "" "")))
|
||||
(use (match_operand 3 "immediate_operand" ""))]
|
||||
""
|
||||
"stormy16_expand_call (operands[0], operands[1], operands[2]); DONE;")
|
||||
"xstormy16_expand_call (operands[0], operands[1], operands[2]); DONE;")
|
||||
|
||||
(define_insn "*call_internal"
|
||||
[(call (mem:HI (match_operand:HI 0 "nonmemory_operand" "i,r"))
|
||||
@ -867,7 +867,7 @@
|
||||
""
|
||||
"*
|
||||
{
|
||||
return stormy16_output_cbranch_hi (NULL_RTX, \"%l0\", 0, insn);
|
||||
return xstormy16_output_cbranch_hi (NULL_RTX, \"%l0\", 0, insn);
|
||||
}"
|
||||
[(set_attr "branch_class" "br12")
|
||||
(set_attr "psw_operand" "nop")])
|
||||
@ -898,7 +898,7 @@
|
||||
""
|
||||
"
|
||||
{
|
||||
stormy16_expand_casesi (operands[0], operands[1], operands[2],
|
||||
xstormy16_expand_casesi (operands[0], operands[1], operands[2],
|
||||
operands[3], operands[4]);
|
||||
DONE;
|
||||
}")
|
||||
@ -929,7 +929,7 @@
|
||||
""
|
||||
"
|
||||
{
|
||||
stormy16_expand_prologue ();
|
||||
xstormy16_expand_prologue ();
|
||||
DONE;
|
||||
}")
|
||||
|
||||
@ -945,7 +945,7 @@
|
||||
""
|
||||
"
|
||||
{
|
||||
stormy16_expand_epilogue ();
|
||||
xstormy16_expand_epilogue ();
|
||||
DONE;
|
||||
}")
|
||||
|
||||
|
@ -1,3 +1,13 @@
|
||||
2001-11-08 Geoffrey Keating <geoffk@redhat.com>
|
||||
|
||||
* g++.old-deja/g++.bugs/900227_01.C: Change stormy16 to xstormy16.
|
||||
* g++.old-deja/g++.eh/badalloc1.C: Change stormy16 to xstormy16.
|
||||
* g++.old-deja/g++.mike/ns15.C: Change stormy16 to xstormy16.
|
||||
* g++.old-deja/g++.pt/crash16.C: Change stormy16 to xstormy16.
|
||||
* gcc.c-torture/compile/961203-1.x: Change stormy16 to xstormy16.
|
||||
* gcc.c-torture/compile/980506-1.x: Change stormy16 to xstormy16.
|
||||
* gcc.c-torture/compile/990617-1.x: Change stormy16 to xstormy16.
|
||||
|
||||
2001-11-08 Neil Booth <neil@daikokuya.demon.co.uk>
|
||||
|
||||
* g++.dg/warn/Wshadow-1.C: New tests.
|
||||
|
@ -32,7 +32,7 @@
|
||||
|
||||
int main ();
|
||||
|
||||
short s = (short) &main; // WARNING - small integer XFAIL h8*-*-* stormy16-*-*
|
||||
short s = (short) &main; // WARNING - small integer XFAIL h8*-*-* xstormy16-*-*
|
||||
char c = (char) &main; // WARNING - small integer
|
||||
|
||||
int main () { return 0; }
|
||||
|
@ -1,4 +1,4 @@
|
||||
// excess errors test - XFAIL stormy16-*-*
|
||||
// excess errors test - XFAIL xstormy16-*-*
|
||||
// Copyright (C) 2000 Free Software Foundation, Inc.
|
||||
// Contributed by Nathan Sidwell 6 June 2000 <nathan@codesourcery.com>
|
||||
|
||||
|
@ -1,5 +1,5 @@
|
||||
// Build don't link:
|
||||
// excess errors test - XFAIL stormy16-*-*
|
||||
// excess errors test - XFAIL xstormy16-*-*
|
||||
|
||||
#include <stdio.h>
|
||||
#include <stdlib.h>
|
||||
|
@ -1,6 +1,6 @@
|
||||
// Build don't link:
|
||||
// Special g++ Options:
|
||||
// excess errors test - XFAIL stormy16-*-*
|
||||
// excess errors test - XFAIL xstormy16-*-*
|
||||
|
||||
extern "C" void qsort(void *base, __SIZE_TYPE__ nmemb, __SIZE_TYPE__ size,
|
||||
int (*compar)(const void *, const void *));
|
||||
|
@ -1,6 +1,6 @@
|
||||
# The structure is too large for the stormy16 - won't fit in 16 bits.
|
||||
# The structure is too large for the xstormy16 - won't fit in 16 bits.
|
||||
|
||||
if { [istarget "stormy16-*-*"] } {
|
||||
if { [istarget "xstormy16-*-*"] } {
|
||||
return 1;
|
||||
}
|
||||
|
||||
|
@ -1,5 +1,5 @@
|
||||
# The arrays are too large for the stormy16 - won't fit in 16 bits.
|
||||
if { [istarget "stormy16-*-*"] } {
|
||||
# The arrays are too large for the xstormy16 - won't fit in 16 bits.
|
||||
if { [istarget "xstormy16-*-*"] } {
|
||||
return 1;
|
||||
}
|
||||
|
||||
|
@ -1,6 +1,6 @@
|
||||
# 0x70000000 is too large a constant to become a pointer on stormy16.
|
||||
# 0x70000000 is too large a constant to become a pointer on xstormy16.
|
||||
|
||||
if { [istarget "stormy16-*-*"] } {
|
||||
if { [istarget "xstormy16-*-*"] } {
|
||||
return 1;
|
||||
}
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user