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