First guess at a gcc configuration for NetBSD Sparc.

This commit is contained in:
pk 1993-11-30 23:08:36 +00:00
parent 39d94328c9
commit 0197ba45f2
17 changed files with 27919 additions and 0 deletions

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,55 @@
/* Configuration for GNU C-compiler for Sun Sparc.
Copyright (C) 1988 Free Software Foundation, Inc.
Contributed by Michael Tiemann (tiemann@cygnus.com).
This file is part of GNU CC.
GNU CC is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation; either version 2, or (at your option)
any later version.
GNU CC is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with GNU CC; see the file COPYING. If not, write to
the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA. */
/* #defines that need visibility everywhere. */
#define FALSE 0
#define TRUE 1
/* This describes the machine the compiler is hosted on. */
#define HOST_BITS_PER_CHAR 8
#define HOST_BITS_PER_SHORT 16
#define HOST_BITS_PER_INT 32
#define HOST_BITS_PER_LONG 32
#define HOST_BITS_PER_LONGLONG 64
/* Doubles are stored in memory with the high order word first. This
matters when cross-compiling. */
#define HOST_WORDS_BIG_ENDIAN 1
/* target machine dependencies.
tm.h is a symbolic link to the actual target specific file. */
#include "tm.h"
/* Arguments to use with `exit'. */
#define SUCCESS_EXIT_CODE 0
#define FATAL_EXIT_CODE 33
/* If compiled with Sun CC, the use of alloca requires this #include. */
#ifndef __GNUC__
#include "alloca.h"
#endif
/* If compiled with GNU C, use the built-in alloca. */
#ifdef __GNUC__
/* Use an arg in this macro because that's what some other
system does--let's avoid conflict. */
#define alloca(x) __builtin_alloca(x)
#endif

View File

@ -0,0 +1,95 @@
/* Generated automatically by the program `genattr'
from the machine description file `md'. */
#ifndef PROTO
#if defined (USE_PROTOTYPES) ? USE_PROTOTYPES : defined (__STDC__)
#define PROTO(ARGS) ARGS
#else
#define PROTO(ARGS) ()
#endif
#endif
#define HAVE_ATTR_alternative
#define get_attr_alternative(insn) which_alternative
#define HAVE_ATTR_type
enum attr_type {TYPE_MOVE, TYPE_UNARY, TYPE_BINARY, TYPE_COMPARE, TYPE_LOAD, TYPE_STORE, TYPE_UNCOND_BRANCH, TYPE_BRANCH, TYPE_CALL, TYPE_CALL_NO_DELAY_SLOT, TYPE_ADDRESS, TYPE_FPLOAD, TYPE_FPSTORE, TYPE_FP, TYPE_FPCMP, TYPE_FPMUL, TYPE_FPDIV, TYPE_FPSQRT, TYPE_MULTI, TYPE_MISC};
extern enum attr_type get_attr_type ();
#define HAVE_ATTR_use_clobbered
enum attr_use_clobbered {USE_CLOBBERED_FALSE, USE_CLOBBERED_TRUE};
extern enum attr_use_clobbered get_attr_use_clobbered ();
#define HAVE_ATTR_length
extern int get_attr_length ();
extern void init_lengths ();
extern void shorten_branches PROTO((rtx));
extern int insn_default_length PROTO((rtx));
extern int insn_variable_length_p PROTO((rtx));
extern int insn_current_length PROTO((rtx));
extern int *insn_addresses;
extern int insn_current_address;
#define HAVE_ATTR_in_call_delay
enum attr_in_call_delay {IN_CALL_DELAY_FALSE, IN_CALL_DELAY_TRUE};
extern enum attr_in_call_delay get_attr_in_call_delay ();
#define DELAY_SLOTS
extern int num_delay_slots PROTO((rtx));
extern int eligible_for_delay PROTO((rtx, int, rtx, int));
extern int const_num_delay_slots PROTO((rtx));
#define HAVE_ATTR_in_branch_delay
enum attr_in_branch_delay {IN_BRANCH_DELAY_FALSE, IN_BRANCH_DELAY_TRUE};
extern enum attr_in_branch_delay get_attr_in_branch_delay ();
#define HAVE_ATTR_in_uncond_branch_delay
enum attr_in_uncond_branch_delay {IN_UNCOND_BRANCH_DELAY_FALSE, IN_UNCOND_BRANCH_DELAY_TRUE};
extern enum attr_in_uncond_branch_delay get_attr_in_uncond_branch_delay ();
#define HAVE_ATTR_in_annul_branch_delay
enum attr_in_annul_branch_delay {IN_ANNUL_BRANCH_DELAY_FALSE, IN_ANNUL_BRANCH_DELAY_TRUE};
extern enum attr_in_annul_branch_delay get_attr_in_annul_branch_delay ();
#define ANNUL_IFFALSE_SLOTS
extern int eligible_for_annul_false ();
#define INSN_SCHEDULING
extern int result_ready_cost PROTO((rtx));
extern int function_units_used PROTO((rtx));
extern struct function_unit_desc
{
char *name;
int bitmask;
int multiplicity;
int simultaneity;
int default_cost;
int max_issue_delay;
int (*ready_cost_function) ();
int (*conflict_cost_function) ();
int max_blockage;
unsigned int (*blockage_range_function) ();
int (*blockage_function) ();
} function_units[];
#define FUNCTION_UNITS_SIZE 3
#define MIN_MULTIPLICITY 1
#define MAX_MULTIPLICITY 1
#define MIN_SIMULTANEITY 1
#define MAX_SIMULTANEITY 1
#define MIN_READY_COST 2
#define MAX_READY_COST 63
#define MIN_ISSUE_DELAY 1
#define MAX_ISSUE_DELAY 1
#define MIN_BLOCKAGE 2
#define MAX_BLOCKAGE 63
#define BLOCKAGE_BITS 7
#define INSN_QUEUE_SIZE 64
#define ATTR_FLAG_forward 0x1
#define ATTR_FLAG_backward 0x2
#define ATTR_FLAG_likely 0x4
#define ATTR_FLAG_very_likely 0x8
#define ATTR_FLAG_unlikely 0x10
#define ATTR_FLAG_very_unlikely 0x20

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,125 @@
/* Generated automatically by the program `gencodes'
from the machine description file `md'. */
#ifndef MAX_INSN_CODE
enum insn_code {
CODE_FOR_cmpsi = 0,
CODE_FOR_cmpsf = 1,
CODE_FOR_cmpdf = 2,
CODE_FOR_cmptf = 3,
CODE_FOR_seq_special = 4,
CODE_FOR_sne_special = 5,
CODE_FOR_seq = 6,
CODE_FOR_sne = 7,
CODE_FOR_sgt = 8,
CODE_FOR_slt = 9,
CODE_FOR_sge = 10,
CODE_FOR_sle = 11,
CODE_FOR_sgtu = 12,
CODE_FOR_sltu = 13,
CODE_FOR_sgeu = 14,
CODE_FOR_sleu = 15,
CODE_FOR_beq = 45,
CODE_FOR_bne = 46,
CODE_FOR_bgt = 47,
CODE_FOR_bgtu = 48,
CODE_FOR_blt = 49,
CODE_FOR_bltu = 50,
CODE_FOR_bge = 51,
CODE_FOR_bgeu = 52,
CODE_FOR_ble = 53,
CODE_FOR_bleu = 54,
CODE_FOR_movsi = 57,
CODE_FOR_reload_insi = 58,
CODE_FOR_movhi = 69,
CODE_FOR_movqi = 73,
CODE_FOR_movtf = 78,
CODE_FOR_movdf = 83,
CODE_FOR_movdi = 88,
CODE_FOR_movsf = 91,
CODE_FOR_zero_extendhisi2 = 95,
CODE_FOR_zero_extendqihi2 = 97,
CODE_FOR_zero_extendqisi2 = 99,
CODE_FOR_extendhisi2 = 105,
CODE_FOR_extendqihi2 = 107,
CODE_FOR_extendqisi2 = 109,
CODE_FOR_extendsfdf2 = 112,
CODE_FOR_extendsftf2 = 113,
CODE_FOR_extenddftf2 = 114,
CODE_FOR_truncdfsf2 = 115,
CODE_FOR_trunctfsf2 = 116,
CODE_FOR_trunctfdf2 = 117,
CODE_FOR_floatsisf2 = 118,
CODE_FOR_floatsidf2 = 119,
CODE_FOR_floatsitf2 = 120,
CODE_FOR_fix_truncsfsi2 = 121,
CODE_FOR_fix_truncdfsi2 = 122,
CODE_FOR_fix_trunctfsi2 = 123,
CODE_FOR_adddi3 = 124,
CODE_FOR_addsi3 = 125,
CODE_FOR_subdi3 = 128,
CODE_FOR_subsi3 = 129,
CODE_FOR_mulsi3 = 132,
CODE_FOR_mulsidi3 = 134,
CODE_FOR_const_mulsidi3 = 136,
CODE_FOR_umulsidi3 = 137,
CODE_FOR_const_umulsidi3 = 139,
CODE_FOR_divsi3 = 140,
CODE_FOR_udivsi3 = 142,
CODE_FOR_anddi3 = 144,
CODE_FOR_andsi3 = 146,
CODE_FOR_iordi3 = 150,
CODE_FOR_iorsi3 = 152,
CODE_FOR_xordi3 = 156,
CODE_FOR_xorsi3 = 158,
CODE_FOR_negdi2 = 169,
CODE_FOR_negsi2 = 170,
CODE_FOR_one_cmpldi2 = 173,
CODE_FOR_one_cmplsi2 = 175,
CODE_FOR_addtf3 = 178,
CODE_FOR_adddf3 = 179,
CODE_FOR_addsf3 = 180,
CODE_FOR_subtf3 = 181,
CODE_FOR_subdf3 = 182,
CODE_FOR_subsf3 = 183,
CODE_FOR_multf3 = 184,
CODE_FOR_muldf3 = 185,
CODE_FOR_mulsf3 = 186,
CODE_FOR_divtf3 = 189,
CODE_FOR_divdf3 = 190,
CODE_FOR_divsf3 = 191,
CODE_FOR_negtf2 = 192,
CODE_FOR_negdf2 = 193,
CODE_FOR_negsf2 = 194,
CODE_FOR_abstf2 = 195,
CODE_FOR_absdf2 = 196,
CODE_FOR_abssf2 = 197,
CODE_FOR_sqrttf2 = 198,
CODE_FOR_sqrtdf2 = 199,
CODE_FOR_sqrtsf2 = 200,
CODE_FOR_ashldi3 = 201,
CODE_FOR_ashlsi3 = 203,
CODE_FOR_lshldi3 = 204,
CODE_FOR_ashrsi3 = 207,
CODE_FOR_lshrsi3 = 208,
CODE_FOR_lshrdi3 = 209,
CODE_FOR_jump = 212,
CODE_FOR_tablejump = 213,
CODE_FOR_pic_tablejump = 214,
CODE_FOR_call = 217,
CODE_FOR_call_value = 220,
CODE_FOR_untyped_call = 222,
CODE_FOR_untyped_return = 224,
CODE_FOR_update_return = 225,
CODE_FOR_return = 226,
CODE_FOR_nop = 227,
CODE_FOR_indirect_jump = 228,
CODE_FOR_nonlocal_goto = 229,
CODE_FOR_flush_register_windows = 230,
CODE_FOR_goto_handler_and_restore = 231,
CODE_FOR_ffssi2 = 232,
CODE_FOR_nothing };
#define MAX_INSN_CODE ((int) CODE_FOR_nothing)
#endif /* MAX_INSN_CODE */

View File

@ -0,0 +1,12 @@
/* Generated automatically by the program `genconfig'
from the machine description file `md'. */
#define MAX_RECOG_OPERANDS 10
#define MAX_DUP_OPERANDS 2
#ifndef MAX_INSNS_PER_SPLIT
#define MAX_INSNS_PER_SPLIT 2
#endif
#define REGISTER_CONSTRAINTS
#define HAVE_lo_sum

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,487 @@
/* Generated automatically by the program `genextract'
from the machine description file `md'. */
#include "config.h"
#include "rtl.h"
static rtx junk;
extern rtx recog_operand[];
extern rtx *recog_operand_loc[];
extern rtx *recog_dup_loc[];
extern char recog_dup_num[];
extern
#ifdef __GNUC__
__volatile__
#endif
void fatal_insn_not_found ();
void
insn_extract (insn)
rtx insn;
{
register rtx *ro = recog_operand;
register rtx **ro_loc = recog_operand_loc;
rtx pat = PATTERN (insn);
switch (INSN_CODE (insn))
{
case -1:
fatal_insn_not_found (insn);
case 270:
case 269:
case 268:
case 261:
case 260:
case 259:
case 258:
case 257:
case 256:
case 255:
case 254:
case 253:
case 252:
case 251:
case 250:
case 249:
case 248:
case 247:
#if __GNUC__ > 1 && !defined (bcopy)
#define bcopy(FROM,TO,COUNT) __builtin_memcpy(TO,FROM,COUNT)
#endif
bcopy (&XVECEXP (pat, 0, 0), ro,
sizeof (rtx) * XVECLEN (pat, 0));
break;
case 267:
ro[0] = *(ro_loc[0] = &XEXP (XVECEXP (pat, 0, 0), 1));
break;
case 232:
ro[0] = *(ro_loc[0] = &XEXP (XVECEXP (pat, 0, 0), 0));
ro[1] = *(ro_loc[1] = &XEXP (XEXP (XVECEXP (pat, 0, 0), 1), 0));
ro[2] = *(ro_loc[2] = &XEXP (XVECEXP (pat, 0, 1), 0));
break;
case 228:
ro[0] = *(ro_loc[0] = &XEXP (pat, 1));
break;
case 231:
case 230:
case 227:
case 226:
break;
case 225:
ro[0] = *(ro_loc[0] = &XVECEXP (pat, 0, 0));
ro[1] = *(ro_loc[1] = &XVECEXP (pat, 0, 1));
break;
case 223:
ro[0] = *(ro_loc[0] = &XEXP (XEXP (XVECEXP (pat, 0, 0), 0), 0));
ro[1] = *(ro_loc[1] = &XVECEXP (pat, 0, 1));
ro[2] = *(ro_loc[2] = &XVECEXP (pat, 0, 2));
break;
case 219:
ro[0] = *(ro_loc[0] = &XEXP (XEXP (XVECEXP (pat, 0, 0), 0), 0));
ro[1] = *(ro_loc[1] = &XEXP (XVECEXP (pat, 0, 0), 1));
ro[2] = *(ro_loc[2] = &XVECEXP (pat, 0, 1));
break;
case 218:
ro[0] = *(ro_loc[0] = &XEXP (XEXP (XVECEXP (pat, 0, 0), 0), 0));
ro[1] = *(ro_loc[1] = &XEXP (XVECEXP (pat, 0, 0), 1));
break;
case 216:
ro[0] = *(ro_loc[0] = &XEXP (XEXP (XVECEXP (pat, 0, 0), 1), 0));
recog_dup_loc[0] = &XEXP (XEXP (XVECEXP (pat, 0, 1), 1), 0);
recog_dup_num[0] = 0;
break;
case 215:
case 214:
ro[0] = *(ro_loc[0] = &XEXP (XVECEXP (pat, 0, 0), 1));
ro[1] = *(ro_loc[1] = &XEXP (XEXP (XVECEXP (pat, 0, 1), 0), 0));
break;
case 212:
ro[0] = *(ro_loc[0] = &XEXP (XEXP (pat, 1), 0));
break;
case 202:
ro[0] = *(ro_loc[0] = &XEXP (XVECEXP (pat, 0, 0), 0));
ro[1] = *(ro_loc[1] = &XEXP (XEXP (XVECEXP (pat, 0, 0), 1), 1));
break;
case 168:
ro[0] = *(ro_loc[0] = &XEXP (XVECEXP (pat, 0, 1), 0));
ro[1] = *(ro_loc[1] = &XEXP (XEXP (XEXP (XEXP (XVECEXP (pat, 0, 0), 1), 0), 0), 0));
ro[2] = *(ro_loc[2] = &XEXP (XEXP (XEXP (XVECEXP (pat, 0, 0), 1), 0), 1));
ro[3] = *(ro_loc[3] = &XEXP (XEXP (XVECEXP (pat, 0, 0), 1), 0));
recog_dup_loc[0] = &XEXP (XVECEXP (pat, 0, 1), 1);
recog_dup_num[0] = 3;
break;
case 167:
ro[0] = *(ro_loc[0] = &XEXP (XEXP (XEXP (XEXP (pat, 1), 0), 0), 0));
ro[1] = *(ro_loc[1] = &XEXP (XEXP (XEXP (pat, 1), 0), 1));
ro[2] = *(ro_loc[2] = &XEXP (XEXP (pat, 1), 0));
break;
case 166:
ro[0] = *(ro_loc[0] = &XEXP (XVECEXP (pat, 0, 1), 0));
ro[1] = *(ro_loc[1] = &XEXP (XEXP (XEXP (XEXP (XVECEXP (pat, 0, 0), 1), 0), 0), 0));
ro[2] = *(ro_loc[2] = &XEXP (XEXP (XEXP (XEXP (XVECEXP (pat, 0, 0), 1), 0), 0), 1));
recog_dup_loc[0] = &XEXP (XEXP (XEXP (XVECEXP (pat, 0, 1), 1), 0), 0);
recog_dup_num[0] = 1;
recog_dup_loc[1] = &XEXP (XEXP (XEXP (XVECEXP (pat, 0, 1), 1), 0), 1);
recog_dup_num[1] = 2;
break;
case 165:
ro[0] = *(ro_loc[0] = &XEXP (XEXP (XEXP (XEXP (pat, 1), 0), 0), 0));
ro[1] = *(ro_loc[1] = &XEXP (XEXP (XEXP (XEXP (pat, 1), 0), 0), 1));
break;
case 164:
ro[0] = *(ro_loc[0] = &XEXP (XVECEXP (pat, 0, 1), 0));
ro[1] = *(ro_loc[1] = &XEXP (XEXP (XEXP (XVECEXP (pat, 0, 0), 1), 0), 0));
ro[2] = *(ro_loc[2] = &XEXP (XEXP (XEXP (XVECEXP (pat, 0, 0), 1), 0), 1));
ro[3] = *(ro_loc[3] = &XEXP (XEXP (XVECEXP (pat, 0, 0), 1), 0));
recog_dup_loc[0] = &XEXP (XVECEXP (pat, 0, 1), 1);
recog_dup_num[0] = 3;
break;
case 163:
ro[0] = *(ro_loc[0] = &XEXP (XEXP (XEXP (pat, 1), 0), 0));
ro[1] = *(ro_loc[1] = &XEXP (XEXP (XEXP (pat, 1), 0), 1));
ro[2] = *(ro_loc[2] = &XEXP (XEXP (pat, 1), 0));
break;
case 141:
ro[0] = *(ro_loc[0] = &XEXP (XVECEXP (pat, 0, 0), 0));
ro[1] = *(ro_loc[1] = &XEXP (XEXP (XVECEXP (pat, 0, 0), 1), 0));
ro[2] = *(ro_loc[2] = &XEXP (XEXP (XVECEXP (pat, 0, 0), 1), 1));
ro[3] = *(ro_loc[3] = &XEXP (XVECEXP (pat, 0, 2), 0));
recog_dup_loc[0] = &XEXP (XEXP (XEXP (XVECEXP (pat, 0, 1), 1), 0), 0);
recog_dup_num[0] = 1;
recog_dup_loc[1] = &XEXP (XEXP (XEXP (XVECEXP (pat, 0, 1), 1), 0), 1);
recog_dup_num[1] = 2;
break;
case 211:
case 210:
case 206:
case 205:
case 140:
ro[0] = *(ro_loc[0] = &XEXP (XVECEXP (pat, 0, 0), 0));
ro[1] = *(ro_loc[1] = &XEXP (XEXP (XVECEXP (pat, 0, 0), 1), 0));
ro[2] = *(ro_loc[2] = &XEXP (XEXP (XVECEXP (pat, 0, 0), 1), 1));
ro[3] = *(ro_loc[3] = &XEXP (XVECEXP (pat, 0, 1), 0));
break;
case 155:
case 154:
case 149:
case 148:
case 139:
case 136:
ro[0] = *(ro_loc[0] = &XEXP (pat, 0));
ro[1] = *(ro_loc[1] = &XEXP (XEXP (XEXP (pat, 1), 0), 0));
ro[2] = *(ro_loc[2] = &XEXP (XEXP (pat, 1), 1));
break;
case 188:
case 187:
case 138:
case 135:
ro[0] = *(ro_loc[0] = &XEXP (pat, 0));
ro[1] = *(ro_loc[1] = &XEXP (XEXP (XEXP (pat, 1), 0), 0));
ro[2] = *(ro_loc[2] = &XEXP (XEXP (XEXP (pat, 1), 1), 0));
break;
case 143:
case 133:
ro[0] = *(ro_loc[0] = &XEXP (XVECEXP (pat, 0, 0), 0));
ro[1] = *(ro_loc[1] = &XEXP (XEXP (XVECEXP (pat, 0, 0), 1), 0));
ro[2] = *(ro_loc[2] = &XEXP (XEXP (XVECEXP (pat, 0, 0), 1), 1));
recog_dup_loc[0] = &XEXP (XEXP (XEXP (XVECEXP (pat, 0, 1), 1), 0), 0);
recog_dup_num[0] = 1;
recog_dup_loc[1] = &XEXP (XEXP (XEXP (XVECEXP (pat, 0, 1), 1), 0), 1);
recog_dup_num[1] = 2;
break;
case 131:
case 127:
ro[0] = *(ro_loc[0] = &XEXP (XVECEXP (pat, 0, 1), 0));
ro[1] = *(ro_loc[1] = &XEXP (XEXP (XEXP (XVECEXP (pat, 0, 0), 1), 0), 0));
ro[2] = *(ro_loc[2] = &XEXP (XEXP (XEXP (XVECEXP (pat, 0, 0), 1), 0), 1));
recog_dup_loc[0] = &XEXP (XEXP (XVECEXP (pat, 0, 1), 1), 0);
recog_dup_num[0] = 1;
recog_dup_loc[1] = &XEXP (XEXP (XVECEXP (pat, 0, 1), 1), 1);
recog_dup_num[1] = 2;
break;
case 130:
case 126:
ro[0] = *(ro_loc[0] = &XEXP (XEXP (XEXP (pat, 1), 0), 0));
ro[1] = *(ro_loc[1] = &XEXP (XEXP (XEXP (pat, 1), 0), 1));
break;
case 266:
case 128:
case 124:
ro[0] = *(ro_loc[0] = &XEXP (XVECEXP (pat, 0, 0), 0));
ro[1] = *(ro_loc[1] = &XEXP (XEXP (XVECEXP (pat, 0, 0), 1), 0));
ro[2] = *(ro_loc[2] = &XEXP (XEXP (XVECEXP (pat, 0, 0), 1), 1));
break;
case 123:
case 122:
case 121:
ro[0] = *(ro_loc[0] = &XEXP (pat, 0));
ro[1] = *(ro_loc[1] = &XEXP (XEXP (XEXP (pat, 1), 0), 0));
break;
case 111:
ro[0] = *(ro_loc[0] = &XEXP (XEXP (XEXP (pat, 1), 0), 0));
ro[1] = *(ro_loc[1] = &XEXP (XEXP (XEXP (pat, 1), 0), 1));
ro[2] = *(ro_loc[2] = &XEXP (XEXP (XEXP (pat, 1), 0), 2));
break;
case 104:
ro[0] = *(ro_loc[0] = &XEXP (XVECEXP (pat, 0, 1), 0));
ro[1] = *(ro_loc[1] = &XEXP (XEXP (XEXP (XVECEXP (pat, 0, 0), 1), 0), 0));
recog_dup_loc[0] = &XEXP (XVECEXP (pat, 0, 1), 1);
recog_dup_num[0] = 1;
break;
case 177:
case 172:
case 102:
ro[0] = *(ro_loc[0] = &XEXP (XVECEXP (pat, 0, 1), 0));
ro[1] = *(ro_loc[1] = &XEXP (XEXP (XEXP (XVECEXP (pat, 0, 0), 1), 0), 0));
recog_dup_loc[0] = &XEXP (XEXP (XVECEXP (pat, 0, 1), 1), 0);
recog_dup_num[0] = 1;
break;
case 176:
case 171:
case 103:
case 101:
ro[0] = *(ro_loc[0] = &XEXP (XEXP (XEXP (pat, 1), 0), 0));
break;
case 94:
case 87:
case 81:
case 76:
case 72:
case 68:
ro[0] = *(ro_loc[0] = &XEXP (XEXP (XVECEXP (pat, 0, 0), 0), 0));
ro[1] = *(ro_loc[1] = &XEXP (XVECEXP (pat, 0, 0), 1));
ro[2] = *(ro_loc[2] = &XEXP (XVECEXP (pat, 0, 1), 0));
break;
case 66:
ro[0] = *(ro_loc[0] = &XEXP (pat, 0));
ro[1] = *(ro_loc[1] = &XEXP (XEXP (pat, 1), 0));
ro[2] = *(ro_loc[2] = &XVECEXP (XEXP (XEXP (pat, 1), 1), 0, 0));
break;
case 208:
case 207:
case 203:
case 191:
case 190:
case 189:
case 186:
case 185:
case 184:
case 183:
case 182:
case 181:
case 180:
case 179:
case 178:
case 158:
case 157:
case 152:
case 151:
case 146:
case 145:
case 142:
case 132:
case 129:
case 125:
case 71:
case 67:
case 65:
ro[0] = *(ro_loc[0] = &XEXP (pat, 0));
ro[1] = *(ro_loc[1] = &XEXP (XEXP (pat, 1), 0));
ro[2] = *(ro_loc[2] = &XEXP (XEXP (pat, 1), 1));
break;
case 62:
ro[0] = *(ro_loc[0] = &XEXP (pat, 0));
ro[1] = *(ro_loc[1] = &XVECEXP (XEXP (XEXP (pat, 1), 0), 0, 0));
break;
case 265:
case 264:
case 263:
case 262:
case 60:
ro[0] = *(ro_loc[0] = &XEXP (XVECEXP (pat, 0, 0), 0));
ro[1] = *(ro_loc[1] = &XEXP (XVECEXP (pat, 0, 0), 1));
break;
case 56:
ro[0] = *(ro_loc[0] = &XEXP (XEXP (pat, 1), 0));
ro[1] = *(ro_loc[1] = &XEXP (XEXP (XEXP (pat, 1), 2), 0));
break;
case 55:
ro[0] = *(ro_loc[0] = &XEXP (XEXP (pat, 1), 0));
ro[1] = *(ro_loc[1] = &XEXP (XEXP (XEXP (pat, 1), 1), 0));
break;
case 93:
case 92:
case 90:
case 89:
case 85:
case 84:
case 82:
case 80:
case 79:
case 77:
case 74:
case 70:
case 59:
case 44:
ro[0] = *(ro_loc[0] = &XEXP (pat, 0));
ro[1] = *(ro_loc[1] = &XEXP (pat, 1));
break;
case 41:
ro[0] = *(ro_loc[0] = &XEXP (pat, 0));
ro[1] = *(ro_loc[1] = &XEXP (XEXP (pat, 1), 0));
ro[2] = *(ro_loc[2] = &XEXP (XEXP (XEXP (pat, 1), 1), 1));
break;
case 162:
case 161:
case 75:
case 40:
ro[0] = *(ro_loc[0] = &XEXP (pat, 0));
ro[1] = *(ro_loc[1] = &XEXP (XEXP (XEXP (pat, 1), 0), 0));
ro[2] = *(ro_loc[2] = &XEXP (XEXP (XEXP (pat, 1), 0), 1));
break;
case 200:
case 199:
case 198:
case 197:
case 196:
case 195:
case 194:
case 193:
case 192:
case 175:
case 174:
case 170:
case 120:
case 119:
case 118:
case 117:
case 116:
case 115:
case 114:
case 113:
case 112:
case 110:
case 108:
case 106:
case 100:
case 98:
case 96:
case 64:
case 63:
case 61:
case 43:
case 39:
ro[0] = *(ro_loc[0] = &XEXP (pat, 0));
ro[1] = *(ro_loc[1] = &XEXP (XEXP (pat, 1), 0));
break;
case 38:
ro[0] = *(ro_loc[0] = &XEXP (pat, 0));
ro[1] = *(ro_loc[1] = &XEXP (XEXP (XEXP (pat, 1), 1), 0));
ro[2] = *(ro_loc[2] = &XEXP (XEXP (XEXP (pat, 1), 1), 1));
break;
case 34:
ro[0] = *(ro_loc[0] = &XEXP (pat, 0));
ro[1] = *(ro_loc[1] = &XEXP (XEXP (XEXP (pat, 1), 0), 1));
break;
case 42:
case 37:
case 33:
ro[0] = *(ro_loc[0] = &XEXP (pat, 0));
ro[1] = *(ro_loc[1] = &XEXP (XEXP (pat, 1), 1));
break;
case 36:
case 35:
case 32:
case 31:
ro[0] = *(ro_loc[0] = &XEXP (pat, 0));
break;
case 30:
case 28:
ro[0] = *(ro_loc[0] = &XEXP (XVECEXP (pat, 0, 0), 0));
ro[1] = *(ro_loc[1] = &XEXP (XEXP (XEXP (XVECEXP (pat, 0, 0), 1), 1), 0));
ro[2] = *(ro_loc[2] = &XEXP (XEXP (XVECEXP (pat, 0, 0), 1), 0));
break;
case 221:
case 29:
case 27:
ro[0] = *(ro_loc[0] = &XEXP (XVECEXP (pat, 0, 0), 0));
ro[1] = *(ro_loc[1] = &XEXP (XEXP (XEXP (XVECEXP (pat, 0, 0), 1), 0), 0));
ro[2] = *(ro_loc[2] = &XEXP (XEXP (XVECEXP (pat, 0, 0), 1), 1));
break;
case 26:
case 24:
ro[0] = *(ro_loc[0] = &XEXP (XVECEXP (pat, 0, 0), 0));
ro[1] = *(ro_loc[1] = &XEXP (XEXP (XEXP (XVECEXP (pat, 0, 0), 1), 0), 0));
break;
case 169:
case 25:
case 23:
ro[0] = *(ro_loc[0] = &XEXP (XVECEXP (pat, 0, 0), 0));
ro[1] = *(ro_loc[1] = &XEXP (XEXP (XVECEXP (pat, 0, 0), 1), 0));
break;
case 22:
case 21:
case 20:
case 19:
case 18:
case 17:
case 16:
ro[0] = *(ro_loc[0] = &XEXP (XEXP (pat, 1), 0));
ro[1] = *(ro_loc[1] = &XEXP (XEXP (pat, 1), 1));
break;
default:
abort ();
}
}

View File

@ -0,0 +1,360 @@
/* Generated automatically by the program `genflags'
from the machine description file `md'. */
#define HAVE_cmpsi 1
#define HAVE_cmpsf (TARGET_FPU)
#define HAVE_cmpdf (TARGET_FPU)
#define HAVE_cmptf (TARGET_FPU)
#define HAVE_seq_special 1
#define HAVE_sne_special 1
#define HAVE_seq 1
#define HAVE_sne 1
#define HAVE_sgt 1
#define HAVE_slt 1
#define HAVE_sge 1
#define HAVE_sle 1
#define HAVE_sgtu 1
#define HAVE_sltu 1
#define HAVE_sgeu 1
#define HAVE_sleu 1
#define HAVE_beq 1
#define HAVE_bne 1
#define HAVE_bgt 1
#define HAVE_bgtu 1
#define HAVE_blt 1
#define HAVE_bltu 1
#define HAVE_bge 1
#define HAVE_bgeu 1
#define HAVE_ble 1
#define HAVE_bleu 1
#define HAVE_movsi 1
#define HAVE_reload_insi 1
#define HAVE_movhi 1
#define HAVE_movqi 1
#define HAVE_movtf 1
#define HAVE_movdf 1
#define HAVE_movdi 1
#define HAVE_movsf 1
#define HAVE_zero_extendhisi2 1
#define HAVE_zero_extendqihi2 1
#define HAVE_zero_extendqisi2 1
#define HAVE_extendhisi2 1
#define HAVE_extendqihi2 1
#define HAVE_extendqisi2 1
#define HAVE_extendsfdf2 (TARGET_FPU)
#define HAVE_extendsftf2 (TARGET_FPU)
#define HAVE_extenddftf2 (TARGET_FPU)
#define HAVE_truncdfsf2 (TARGET_FPU)
#define HAVE_trunctfsf2 (TARGET_FPU)
#define HAVE_trunctfdf2 (TARGET_FPU)
#define HAVE_floatsisf2 (TARGET_FPU)
#define HAVE_floatsidf2 (TARGET_FPU)
#define HAVE_floatsitf2 (TARGET_FPU)
#define HAVE_fix_truncsfsi2 (TARGET_FPU)
#define HAVE_fix_truncdfsi2 (TARGET_FPU)
#define HAVE_fix_trunctfsi2 (TARGET_FPU)
#define HAVE_adddi3 1
#define HAVE_addsi3 1
#define HAVE_subdi3 1
#define HAVE_subsi3 1
#define HAVE_mulsi3 (TARGET_V8 || TARGET_SPARCLITE)
#define HAVE_mulsidi3 (TARGET_V8 || TARGET_SPARCLITE)
#define HAVE_const_mulsidi3 (TARGET_V8 || TARGET_SPARCLITE)
#define HAVE_umulsidi3 (TARGET_V8 || TARGET_SPARCLITE)
#define HAVE_const_umulsidi3 (TARGET_V8 || TARGET_SPARCLITE)
#define HAVE_divsi3 (TARGET_V8)
#define HAVE_udivsi3 (TARGET_V8)
#define HAVE_anddi3 1
#define HAVE_andsi3 1
#define HAVE_iordi3 1
#define HAVE_iorsi3 1
#define HAVE_xordi3 1
#define HAVE_xorsi3 1
#define HAVE_negdi2 1
#define HAVE_negsi2 1
#define HAVE_one_cmpldi2 1
#define HAVE_one_cmplsi2 1
#define HAVE_addtf3 (TARGET_FPU)
#define HAVE_adddf3 (TARGET_FPU)
#define HAVE_addsf3 (TARGET_FPU)
#define HAVE_subtf3 (TARGET_FPU)
#define HAVE_subdf3 (TARGET_FPU)
#define HAVE_subsf3 (TARGET_FPU)
#define HAVE_multf3 (TARGET_FPU)
#define HAVE_muldf3 (TARGET_FPU)
#define HAVE_mulsf3 (TARGET_FPU)
#define HAVE_divtf3 (TARGET_FPU)
#define HAVE_divdf3 (TARGET_FPU)
#define HAVE_divsf3 (TARGET_FPU)
#define HAVE_negtf2 (TARGET_FPU)
#define HAVE_negdf2 (TARGET_FPU)
#define HAVE_negsf2 (TARGET_FPU)
#define HAVE_abstf2 (TARGET_FPU)
#define HAVE_absdf2 (TARGET_FPU)
#define HAVE_abssf2 (TARGET_FPU)
#define HAVE_sqrttf2 (TARGET_FPU)
#define HAVE_sqrtdf2 (TARGET_FPU)
#define HAVE_sqrtsf2 (TARGET_FPU)
#define HAVE_ashldi3 1
#define HAVE_ashlsi3 1
#define HAVE_lshldi3 1
#define HAVE_ashrsi3 1
#define HAVE_lshrsi3 1
#define HAVE_lshrdi3 1
#define HAVE_jump 1
#define HAVE_tablejump 1
#define HAVE_pic_tablejump 1
#define HAVE_call 1
#define HAVE_call_value 1
#define HAVE_untyped_call 1
#define HAVE_untyped_return 1
#define HAVE_update_return 1
#define HAVE_return (! TARGET_EPILOGUE)
#define HAVE_nop 1
#define HAVE_indirect_jump 1
#define HAVE_nonlocal_goto 1
#define HAVE_flush_register_windows 1
#define HAVE_goto_handler_and_restore 1
#define HAVE_ffssi2 (TARGET_SPARCLITE)
#ifndef NO_MD_PROTOTYPES
extern rtx gen_cmpsi PROTO((rtx, rtx));
extern rtx gen_cmpsf PROTO((rtx, rtx));
extern rtx gen_cmpdf PROTO((rtx, rtx));
extern rtx gen_cmptf PROTO((rtx, rtx));
extern rtx gen_seq_special PROTO((rtx, rtx, rtx));
extern rtx gen_sne_special PROTO((rtx, rtx, rtx));
extern rtx gen_seq PROTO((rtx));
extern rtx gen_sne PROTO((rtx));
extern rtx gen_sgt PROTO((rtx));
extern rtx gen_slt PROTO((rtx));
extern rtx gen_sge PROTO((rtx));
extern rtx gen_sle PROTO((rtx));
extern rtx gen_sgtu PROTO((rtx));
extern rtx gen_sltu PROTO((rtx));
extern rtx gen_sgeu PROTO((rtx));
extern rtx gen_sleu PROTO((rtx));
extern rtx gen_beq PROTO((rtx));
extern rtx gen_bne PROTO((rtx));
extern rtx gen_bgt PROTO((rtx));
extern rtx gen_bgtu PROTO((rtx));
extern rtx gen_blt PROTO((rtx));
extern rtx gen_bltu PROTO((rtx));
extern rtx gen_bge PROTO((rtx));
extern rtx gen_bgeu PROTO((rtx));
extern rtx gen_ble PROTO((rtx));
extern rtx gen_bleu PROTO((rtx));
extern rtx gen_movsi PROTO((rtx, rtx));
extern rtx gen_reload_insi PROTO((rtx, rtx, rtx));
extern rtx gen_movhi PROTO((rtx, rtx));
extern rtx gen_movqi PROTO((rtx, rtx));
extern rtx gen_movtf PROTO((rtx, rtx));
extern rtx gen_movdf PROTO((rtx, rtx));
extern rtx gen_movdi PROTO((rtx, rtx));
extern rtx gen_movsf PROTO((rtx, rtx));
extern rtx gen_zero_extendhisi2 PROTO((rtx, rtx));
extern rtx gen_zero_extendqihi2 PROTO((rtx, rtx));
extern rtx gen_zero_extendqisi2 PROTO((rtx, rtx));
extern rtx gen_extendhisi2 PROTO((rtx, rtx));
extern rtx gen_extendqihi2 PROTO((rtx, rtx));
extern rtx gen_extendqisi2 PROTO((rtx, rtx));
extern rtx gen_extendsfdf2 PROTO((rtx, rtx));
extern rtx gen_extendsftf2 PROTO((rtx, rtx));
extern rtx gen_extenddftf2 PROTO((rtx, rtx));
extern rtx gen_truncdfsf2 PROTO((rtx, rtx));
extern rtx gen_trunctfsf2 PROTO((rtx, rtx));
extern rtx gen_trunctfdf2 PROTO((rtx, rtx));
extern rtx gen_floatsisf2 PROTO((rtx, rtx));
extern rtx gen_floatsidf2 PROTO((rtx, rtx));
extern rtx gen_floatsitf2 PROTO((rtx, rtx));
extern rtx gen_fix_truncsfsi2 PROTO((rtx, rtx));
extern rtx gen_fix_truncdfsi2 PROTO((rtx, rtx));
extern rtx gen_fix_trunctfsi2 PROTO((rtx, rtx));
extern rtx gen_adddi3 PROTO((rtx, rtx, rtx));
extern rtx gen_addsi3 PROTO((rtx, rtx, rtx));
extern rtx gen_subdi3 PROTO((rtx, rtx, rtx));
extern rtx gen_subsi3 PROTO((rtx, rtx, rtx));
extern rtx gen_mulsi3 PROTO((rtx, rtx, rtx));
extern rtx gen_mulsidi3 PROTO((rtx, rtx, rtx));
extern rtx gen_const_mulsidi3 PROTO((rtx, rtx, rtx));
extern rtx gen_umulsidi3 PROTO((rtx, rtx, rtx));
extern rtx gen_const_umulsidi3 PROTO((rtx, rtx, rtx));
extern rtx gen_divsi3 PROTO((rtx, rtx, rtx));
extern rtx gen_udivsi3 PROTO((rtx, rtx, rtx));
extern rtx gen_anddi3 PROTO((rtx, rtx, rtx));
extern rtx gen_andsi3 PROTO((rtx, rtx, rtx));
extern rtx gen_iordi3 PROTO((rtx, rtx, rtx));
extern rtx gen_iorsi3 PROTO((rtx, rtx, rtx));
extern rtx gen_xordi3 PROTO((rtx, rtx, rtx));
extern rtx gen_xorsi3 PROTO((rtx, rtx, rtx));
extern rtx gen_negdi2 PROTO((rtx, rtx));
extern rtx gen_negsi2 PROTO((rtx, rtx));
extern rtx gen_one_cmpldi2 PROTO((rtx, rtx));
extern rtx gen_one_cmplsi2 PROTO((rtx, rtx));
extern rtx gen_addtf3 PROTO((rtx, rtx, rtx));
extern rtx gen_adddf3 PROTO((rtx, rtx, rtx));
extern rtx gen_addsf3 PROTO((rtx, rtx, rtx));
extern rtx gen_subtf3 PROTO((rtx, rtx, rtx));
extern rtx gen_subdf3 PROTO((rtx, rtx, rtx));
extern rtx gen_subsf3 PROTO((rtx, rtx, rtx));
extern rtx gen_multf3 PROTO((rtx, rtx, rtx));
extern rtx gen_muldf3 PROTO((rtx, rtx, rtx));
extern rtx gen_mulsf3 PROTO((rtx, rtx, rtx));
extern rtx gen_divtf3 PROTO((rtx, rtx, rtx));
extern rtx gen_divdf3 PROTO((rtx, rtx, rtx));
extern rtx gen_divsf3 PROTO((rtx, rtx, rtx));
extern rtx gen_negtf2 PROTO((rtx, rtx));
extern rtx gen_negdf2 PROTO((rtx, rtx));
extern rtx gen_negsf2 PROTO((rtx, rtx));
extern rtx gen_abstf2 PROTO((rtx, rtx));
extern rtx gen_absdf2 PROTO((rtx, rtx));
extern rtx gen_abssf2 PROTO((rtx, rtx));
extern rtx gen_sqrttf2 PROTO((rtx, rtx));
extern rtx gen_sqrtdf2 PROTO((rtx, rtx));
extern rtx gen_sqrtsf2 PROTO((rtx, rtx));
extern rtx gen_ashldi3 PROTO((rtx, rtx, rtx));
extern rtx gen_ashlsi3 PROTO((rtx, rtx, rtx));
extern rtx gen_lshldi3 PROTO((rtx, rtx, rtx));
extern rtx gen_ashrsi3 PROTO((rtx, rtx, rtx));
extern rtx gen_lshrsi3 PROTO((rtx, rtx, rtx));
extern rtx gen_lshrdi3 PROTO((rtx, rtx, rtx));
extern rtx gen_jump PROTO((rtx));
extern rtx gen_tablejump PROTO((rtx, rtx));
extern rtx gen_pic_tablejump PROTO((rtx, rtx));
extern rtx gen_untyped_call PROTO((rtx, rtx, rtx));
extern rtx gen_untyped_return PROTO((rtx, rtx));
extern rtx gen_update_return PROTO((rtx, rtx));
extern rtx gen_return PROTO((void));
extern rtx gen_nop PROTO((void));
extern rtx gen_indirect_jump PROTO((rtx));
extern rtx gen_nonlocal_goto PROTO((rtx, rtx, rtx, rtx));
extern rtx gen_flush_register_windows PROTO((void));
extern rtx gen_goto_handler_and_restore PROTO((void));
extern rtx gen_ffssi2 PROTO((rtx, rtx));
#ifdef MD_CALL_PROTOTYPES
extern rtx gen_call PROTO((rtx, rtx));
extern rtx gen_call_value PROTO((rtx, rtx, rtx));
#else /* !MD_CALL_PROTOTYPES */
extern rtx gen_call ();
extern rtx gen_call_value ();
#endif /* !MD_CALL_PROTOTYPES */
#else /* NO_MD_PROTOTYPES */
extern rtx gen_cmpsi ();
extern rtx gen_cmpsf ();
extern rtx gen_cmpdf ();
extern rtx gen_cmptf ();
extern rtx gen_seq_special ();
extern rtx gen_sne_special ();
extern rtx gen_seq ();
extern rtx gen_sne ();
extern rtx gen_sgt ();
extern rtx gen_slt ();
extern rtx gen_sge ();
extern rtx gen_sle ();
extern rtx gen_sgtu ();
extern rtx gen_sltu ();
extern rtx gen_sgeu ();
extern rtx gen_sleu ();
extern rtx gen_beq ();
extern rtx gen_bne ();
extern rtx gen_bgt ();
extern rtx gen_bgtu ();
extern rtx gen_blt ();
extern rtx gen_bltu ();
extern rtx gen_bge ();
extern rtx gen_bgeu ();
extern rtx gen_ble ();
extern rtx gen_bleu ();
extern rtx gen_movsi ();
extern rtx gen_reload_insi ();
extern rtx gen_movhi ();
extern rtx gen_movqi ();
extern rtx gen_movtf ();
extern rtx gen_movdf ();
extern rtx gen_movdi ();
extern rtx gen_movsf ();
extern rtx gen_zero_extendhisi2 ();
extern rtx gen_zero_extendqihi2 ();
extern rtx gen_zero_extendqisi2 ();
extern rtx gen_extendhisi2 ();
extern rtx gen_extendqihi2 ();
extern rtx gen_extendqisi2 ();
extern rtx gen_extendsfdf2 ();
extern rtx gen_extendsftf2 ();
extern rtx gen_extenddftf2 ();
extern rtx gen_truncdfsf2 ();
extern rtx gen_trunctfsf2 ();
extern rtx gen_trunctfdf2 ();
extern rtx gen_floatsisf2 ();
extern rtx gen_floatsidf2 ();
extern rtx gen_floatsitf2 ();
extern rtx gen_fix_truncsfsi2 ();
extern rtx gen_fix_truncdfsi2 ();
extern rtx gen_fix_trunctfsi2 ();
extern rtx gen_adddi3 ();
extern rtx gen_addsi3 ();
extern rtx gen_subdi3 ();
extern rtx gen_subsi3 ();
extern rtx gen_mulsi3 ();
extern rtx gen_mulsidi3 ();
extern rtx gen_const_mulsidi3 ();
extern rtx gen_umulsidi3 ();
extern rtx gen_const_umulsidi3 ();
extern rtx gen_divsi3 ();
extern rtx gen_udivsi3 ();
extern rtx gen_anddi3 ();
extern rtx gen_andsi3 ();
extern rtx gen_iordi3 ();
extern rtx gen_iorsi3 ();
extern rtx gen_xordi3 ();
extern rtx gen_xorsi3 ();
extern rtx gen_negdi2 ();
extern rtx gen_negsi2 ();
extern rtx gen_one_cmpldi2 ();
extern rtx gen_one_cmplsi2 ();
extern rtx gen_addtf3 ();
extern rtx gen_adddf3 ();
extern rtx gen_addsf3 ();
extern rtx gen_subtf3 ();
extern rtx gen_subdf3 ();
extern rtx gen_subsf3 ();
extern rtx gen_multf3 ();
extern rtx gen_muldf3 ();
extern rtx gen_mulsf3 ();
extern rtx gen_divtf3 ();
extern rtx gen_divdf3 ();
extern rtx gen_divsf3 ();
extern rtx gen_negtf2 ();
extern rtx gen_negdf2 ();
extern rtx gen_negsf2 ();
extern rtx gen_abstf2 ();
extern rtx gen_absdf2 ();
extern rtx gen_abssf2 ();
extern rtx gen_sqrttf2 ();
extern rtx gen_sqrtdf2 ();
extern rtx gen_sqrtsf2 ();
extern rtx gen_ashldi3 ();
extern rtx gen_ashlsi3 ();
extern rtx gen_lshldi3 ();
extern rtx gen_ashrsi3 ();
extern rtx gen_lshrsi3 ();
extern rtx gen_lshrdi3 ();
extern rtx gen_jump ();
extern rtx gen_tablejump ();
extern rtx gen_pic_tablejump ();
extern rtx gen_untyped_call ();
extern rtx gen_untyped_return ();
extern rtx gen_update_return ();
extern rtx gen_return ();
extern rtx gen_nop ();
extern rtx gen_indirect_jump ();
extern rtx gen_nonlocal_goto ();
extern rtx gen_flush_register_windows ();
extern rtx gen_goto_handler_and_restore ();
extern rtx gen_ffssi2 ();
extern rtx gen_call ();
extern rtx gen_call_value ();
#endif /* NO_MD_PROTOTYPES */

View File

@ -0,0 +1,150 @@
/* Generated automatically by the program `genopinit'
from the machine description file `md'. */
#include "config.h"
#include "rtl.h"
#include "flags.h"
#include "insn-flags.h"
#include "insn-codes.h"
#include "insn-config.h"
#include "recog.h"
#include "expr.h"
#include "reload.h"
void
init_all_optabs ()
{
cmp_optab->handlers[(int) SImode].insn_code = CODE_FOR_cmpsi;
if (HAVE_cmpsf)
cmp_optab->handlers[(int) SFmode].insn_code = CODE_FOR_cmpsf;
if (HAVE_cmpdf)
cmp_optab->handlers[(int) DFmode].insn_code = CODE_FOR_cmpdf;
if (HAVE_cmptf)
cmp_optab->handlers[(int) TFmode].insn_code = CODE_FOR_cmptf;
setcc_gen_code[(int) EQ] = CODE_FOR_seq;
setcc_gen_code[(int) NE] = CODE_FOR_sne;
setcc_gen_code[(int) GT] = CODE_FOR_sgt;
setcc_gen_code[(int) LT] = CODE_FOR_slt;
setcc_gen_code[(int) GE] = CODE_FOR_sge;
setcc_gen_code[(int) LE] = CODE_FOR_sle;
setcc_gen_code[(int) GTU] = CODE_FOR_sgtu;
setcc_gen_code[(int) LTU] = CODE_FOR_sltu;
setcc_gen_code[(int) GEU] = CODE_FOR_sgeu;
setcc_gen_code[(int) LEU] = CODE_FOR_sleu;
bcc_gen_fctn[(int) EQ] = gen_beq;
bcc_gen_fctn[(int) NE] = gen_bne;
bcc_gen_fctn[(int) GT] = gen_bgt;
bcc_gen_fctn[(int) GTU] = gen_bgtu;
bcc_gen_fctn[(int) LT] = gen_blt;
bcc_gen_fctn[(int) LTU] = gen_bltu;
bcc_gen_fctn[(int) GE] = gen_bge;
bcc_gen_fctn[(int) GEU] = gen_bgeu;
bcc_gen_fctn[(int) LE] = gen_ble;
bcc_gen_fctn[(int) LEU] = gen_bleu;
mov_optab->handlers[(int) SImode].insn_code = CODE_FOR_movsi;
reload_in_optab[(int) SImode] = CODE_FOR_reload_insi;
mov_optab->handlers[(int) HImode].insn_code = CODE_FOR_movhi;
mov_optab->handlers[(int) QImode].insn_code = CODE_FOR_movqi;
mov_optab->handlers[(int) TFmode].insn_code = CODE_FOR_movtf;
mov_optab->handlers[(int) DFmode].insn_code = CODE_FOR_movdf;
mov_optab->handlers[(int) DImode].insn_code = CODE_FOR_movdi;
mov_optab->handlers[(int) SFmode].insn_code = CODE_FOR_movsf;
extendtab[(int) SImode][(int) HImode][1] = CODE_FOR_zero_extendhisi2;
extendtab[(int) HImode][(int) QImode][1] = CODE_FOR_zero_extendqihi2;
extendtab[(int) SImode][(int) QImode][1] = CODE_FOR_zero_extendqisi2;
extendtab[(int) SImode][(int) HImode][0] = CODE_FOR_extendhisi2;
extendtab[(int) HImode][(int) QImode][0] = CODE_FOR_extendqihi2;
extendtab[(int) SImode][(int) QImode][0] = CODE_FOR_extendqisi2;
if (HAVE_extendsfdf2)
extendtab[(int) DFmode][(int) SFmode][0] = CODE_FOR_extendsfdf2;
if (HAVE_extendsftf2)
extendtab[(int) TFmode][(int) SFmode][0] = CODE_FOR_extendsftf2;
if (HAVE_extenddftf2)
extendtab[(int) TFmode][(int) DFmode][0] = CODE_FOR_extenddftf2;
if (HAVE_floatsisf2)
floattab[(int) SFmode][(int) SImode][0] = CODE_FOR_floatsisf2;
if (HAVE_floatsidf2)
floattab[(int) DFmode][(int) SImode][0] = CODE_FOR_floatsidf2;
if (HAVE_floatsitf2)
floattab[(int) TFmode][(int) SImode][0] = CODE_FOR_floatsitf2;
if (HAVE_fix_truncsfsi2)
fixtrunctab[(int) SFmode][(int) SImode][0] = CODE_FOR_fix_truncsfsi2;
if (HAVE_fix_truncdfsi2)
fixtrunctab[(int) DFmode][(int) SImode][0] = CODE_FOR_fix_truncdfsi2;
if (HAVE_fix_trunctfsi2)
fixtrunctab[(int) TFmode][(int) SImode][0] = CODE_FOR_fix_trunctfsi2;
add_optab->handlers[(int) DImode].insn_code = CODE_FOR_adddi3;
add_optab->handlers[(int) SImode].insn_code = CODE_FOR_addsi3;
sub_optab->handlers[(int) DImode].insn_code = CODE_FOR_subdi3;
sub_optab->handlers[(int) SImode].insn_code = CODE_FOR_subsi3;
if (HAVE_mulsi3)
smul_optab->handlers[(int) SImode].insn_code = CODE_FOR_mulsi3;
if (HAVE_mulsidi3)
smul_widen_optab->handlers[(int) DImode].insn_code = CODE_FOR_mulsidi3;
if (HAVE_umulsidi3)
umul_widen_optab->handlers[(int) DImode].insn_code = CODE_FOR_umulsidi3;
if (HAVE_divsi3)
sdiv_optab->handlers[(int) SImode].insn_code = CODE_FOR_divsi3;
if (HAVE_udivsi3)
udiv_optab->handlers[(int) SImode].insn_code = CODE_FOR_udivsi3;
and_optab->handlers[(int) DImode].insn_code = CODE_FOR_anddi3;
and_optab->handlers[(int) SImode].insn_code = CODE_FOR_andsi3;
ior_optab->handlers[(int) DImode].insn_code = CODE_FOR_iordi3;
ior_optab->handlers[(int) SImode].insn_code = CODE_FOR_iorsi3;
xor_optab->handlers[(int) DImode].insn_code = CODE_FOR_xordi3;
xor_optab->handlers[(int) SImode].insn_code = CODE_FOR_xorsi3;
neg_optab->handlers[(int) DImode].insn_code = CODE_FOR_negdi2;
neg_optab->handlers[(int) SImode].insn_code = CODE_FOR_negsi2;
one_cmpl_optab->handlers[(int) DImode].insn_code = CODE_FOR_one_cmpldi2;
one_cmpl_optab->handlers[(int) SImode].insn_code = CODE_FOR_one_cmplsi2;
if (HAVE_addtf3)
add_optab->handlers[(int) TFmode].insn_code = CODE_FOR_addtf3;
if (HAVE_adddf3)
add_optab->handlers[(int) DFmode].insn_code = CODE_FOR_adddf3;
if (HAVE_addsf3)
add_optab->handlers[(int) SFmode].insn_code = CODE_FOR_addsf3;
if (HAVE_subtf3)
sub_optab->handlers[(int) TFmode].insn_code = CODE_FOR_subtf3;
if (HAVE_subdf3)
sub_optab->handlers[(int) DFmode].insn_code = CODE_FOR_subdf3;
if (HAVE_subsf3)
sub_optab->handlers[(int) SFmode].insn_code = CODE_FOR_subsf3;
if (HAVE_multf3)
smul_optab->handlers[(int) TFmode].insn_code = CODE_FOR_multf3;
if (HAVE_muldf3)
smul_optab->handlers[(int) DFmode].insn_code = CODE_FOR_muldf3;
if (HAVE_mulsf3)
smul_optab->handlers[(int) SFmode].insn_code = CODE_FOR_mulsf3;
if (HAVE_divtf3)
flodiv_optab->handlers[(int) TFmode].insn_code = CODE_FOR_divtf3;
if (HAVE_divdf3)
flodiv_optab->handlers[(int) DFmode].insn_code = CODE_FOR_divdf3;
if (HAVE_divsf3)
flodiv_optab->handlers[(int) SFmode].insn_code = CODE_FOR_divsf3;
if (HAVE_negtf2)
neg_optab->handlers[(int) TFmode].insn_code = CODE_FOR_negtf2;
if (HAVE_negdf2)
neg_optab->handlers[(int) DFmode].insn_code = CODE_FOR_negdf2;
if (HAVE_negsf2)
neg_optab->handlers[(int) SFmode].insn_code = CODE_FOR_negsf2;
if (HAVE_abstf2)
abs_optab->handlers[(int) TFmode].insn_code = CODE_FOR_abstf2;
if (HAVE_absdf2)
abs_optab->handlers[(int) DFmode].insn_code = CODE_FOR_absdf2;
if (HAVE_abssf2)
abs_optab->handlers[(int) SFmode].insn_code = CODE_FOR_abssf2;
if (HAVE_sqrttf2)
sqrt_optab->handlers[(int) TFmode].insn_code = CODE_FOR_sqrttf2;
if (HAVE_sqrtdf2)
sqrt_optab->handlers[(int) DFmode].insn_code = CODE_FOR_sqrtdf2;
if (HAVE_sqrtsf2)
sqrt_optab->handlers[(int) SFmode].insn_code = CODE_FOR_sqrtsf2;
ashl_optab->handlers[(int) DImode].insn_code = CODE_FOR_ashldi3;
ashl_optab->handlers[(int) SImode].insn_code = CODE_FOR_ashlsi3;
lshl_optab->handlers[(int) DImode].insn_code = CODE_FOR_lshldi3;
ashr_optab->handlers[(int) SImode].insn_code = CODE_FOR_ashrsi3;
lshr_optab->handlers[(int) SImode].insn_code = CODE_FOR_lshrsi3;
lshr_optab->handlers[(int) DImode].insn_code = CODE_FOR_lshrdi3;
if (HAVE_ffssi2)
ffs_optab->handlers[(int) SImode].insn_code = CODE_FOR_ffssi2;
}

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,797 @@
/* Generated automatically by the program `genpeep'
from the machine description file `md'. */
#include "config.h"
#include "rtl.h"
#include "regs.h"
#include "output.h"
#include "real.h"
extern rtx peep_operand[];
#define operands peep_operand
rtx
peephole (ins1)
rtx ins1;
{
rtx insn, x, pat;
int i;
if (NEXT_INSN (ins1)
&& GET_CODE (NEXT_INSN (ins1)) == BARRIER)
return 0;
insn = ins1;
pat = PATTERN (insn);
x = pat;
if (GET_CODE (x) != SET) goto L247;
x = XEXP (pat, 0);
operands[0] = x;
if (! register_operand (x, SImode)) goto L247;
x = XEXP (pat, 1);
operands[1] = x;
if (! memory_operand (x, SImode)) goto L247;
do { insn = NEXT_INSN (insn);
if (insn == 0) goto L247; }
while (GET_CODE (insn) == NOTE
|| (GET_CODE (insn) == INSN
&& (GET_CODE (PATTERN (insn)) == USE
|| GET_CODE (PATTERN (insn)) == CLOBBER)));
if (GET_CODE (insn) == CODE_LABEL
|| GET_CODE (insn) == BARRIER)
goto L247;
pat = PATTERN (insn);
x = pat;
if (GET_CODE (x) != SET) goto L247;
x = XEXP (pat, 0);
operands[2] = x;
if (! register_operand (x, SImode)) goto L247;
x = XEXP (pat, 1);
operands[3] = x;
if (! memory_operand (x, SImode)) goto L247;
if (! (registers_ok_for_ldd_peep (operands[0], operands[2])
&& ! MEM_VOLATILE_P (operands[1]) && ! MEM_VOLATILE_P (operands[3])
&& addrs_ok_for_ldd_peep (XEXP (operands[1], 0), XEXP (operands[3], 0)))) goto L247;
PATTERN (ins1) = gen_rtx (PARALLEL, VOIDmode, gen_rtvec_v (4, operands));
INSN_CODE (ins1) = 247;
delete_for_peephole (NEXT_INSN (ins1), insn);
return NEXT_INSN (insn);
L247:
insn = ins1;
pat = PATTERN (insn);
x = pat;
if (GET_CODE (x) != SET) goto L248;
x = XEXP (pat, 0);
operands[0] = x;
if (! memory_operand (x, SImode)) goto L248;
x = XEXP (pat, 1);
operands[1] = x;
if (! register_operand (x, SImode)) goto L248;
do { insn = NEXT_INSN (insn);
if (insn == 0) goto L248; }
while (GET_CODE (insn) == NOTE
|| (GET_CODE (insn) == INSN
&& (GET_CODE (PATTERN (insn)) == USE
|| GET_CODE (PATTERN (insn)) == CLOBBER)));
if (GET_CODE (insn) == CODE_LABEL
|| GET_CODE (insn) == BARRIER)
goto L248;
pat = PATTERN (insn);
x = pat;
if (GET_CODE (x) != SET) goto L248;
x = XEXP (pat, 0);
operands[2] = x;
if (! memory_operand (x, SImode)) goto L248;
x = XEXP (pat, 1);
operands[3] = x;
if (! register_operand (x, SImode)) goto L248;
if (! (registers_ok_for_ldd_peep (operands[1], operands[3])
&& ! MEM_VOLATILE_P (operands[0]) && ! MEM_VOLATILE_P (operands[2])
&& addrs_ok_for_ldd_peep (XEXP (operands[0], 0), XEXP (operands[2], 0)))) goto L248;
PATTERN (ins1) = gen_rtx (PARALLEL, VOIDmode, gen_rtvec_v (4, operands));
INSN_CODE (ins1) = 248;
delete_for_peephole (NEXT_INSN (ins1), insn);
return NEXT_INSN (insn);
L248:
insn = ins1;
pat = PATTERN (insn);
x = pat;
if (GET_CODE (x) != SET) goto L249;
x = XEXP (pat, 0);
operands[0] = x;
if (! register_operand (x, SFmode)) goto L249;
x = XEXP (pat, 1);
operands[1] = x;
if (! memory_operand (x, SFmode)) goto L249;
do { insn = NEXT_INSN (insn);
if (insn == 0) goto L249; }
while (GET_CODE (insn) == NOTE
|| (GET_CODE (insn) == INSN
&& (GET_CODE (PATTERN (insn)) == USE
|| GET_CODE (PATTERN (insn)) == CLOBBER)));
if (GET_CODE (insn) == CODE_LABEL
|| GET_CODE (insn) == BARRIER)
goto L249;
pat = PATTERN (insn);
x = pat;
if (GET_CODE (x) != SET) goto L249;
x = XEXP (pat, 0);
operands[2] = x;
if (! register_operand (x, SFmode)) goto L249;
x = XEXP (pat, 1);
operands[3] = x;
if (! memory_operand (x, SFmode)) goto L249;
if (! (registers_ok_for_ldd_peep (operands[0], operands[2])
&& ! MEM_VOLATILE_P (operands[1]) && ! MEM_VOLATILE_P (operands[3])
&& addrs_ok_for_ldd_peep (XEXP (operands[1], 0), XEXP (operands[3], 0)))) goto L249;
PATTERN (ins1) = gen_rtx (PARALLEL, VOIDmode, gen_rtvec_v (4, operands));
INSN_CODE (ins1) = 249;
delete_for_peephole (NEXT_INSN (ins1), insn);
return NEXT_INSN (insn);
L249:
insn = ins1;
pat = PATTERN (insn);
x = pat;
if (GET_CODE (x) != SET) goto L250;
x = XEXP (pat, 0);
operands[0] = x;
if (! memory_operand (x, SFmode)) goto L250;
x = XEXP (pat, 1);
operands[1] = x;
if (! register_operand (x, SFmode)) goto L250;
do { insn = NEXT_INSN (insn);
if (insn == 0) goto L250; }
while (GET_CODE (insn) == NOTE
|| (GET_CODE (insn) == INSN
&& (GET_CODE (PATTERN (insn)) == USE
|| GET_CODE (PATTERN (insn)) == CLOBBER)));
if (GET_CODE (insn) == CODE_LABEL
|| GET_CODE (insn) == BARRIER)
goto L250;
pat = PATTERN (insn);
x = pat;
if (GET_CODE (x) != SET) goto L250;
x = XEXP (pat, 0);
operands[2] = x;
if (! memory_operand (x, SFmode)) goto L250;
x = XEXP (pat, 1);
operands[3] = x;
if (! register_operand (x, SFmode)) goto L250;
if (! (registers_ok_for_ldd_peep (operands[1], operands[3])
&& ! MEM_VOLATILE_P (operands[0]) && ! MEM_VOLATILE_P (operands[2])
&& addrs_ok_for_ldd_peep (XEXP (operands[0], 0), XEXP (operands[2], 0)))) goto L250;
PATTERN (ins1) = gen_rtx (PARALLEL, VOIDmode, gen_rtvec_v (4, operands));
INSN_CODE (ins1) = 250;
delete_for_peephole (NEXT_INSN (ins1), insn);
return NEXT_INSN (insn);
L250:
insn = ins1;
pat = PATTERN (insn);
x = pat;
if (GET_CODE (x) != SET) goto L251;
x = XEXP (pat, 0);
operands[0] = x;
if (! register_operand (x, SImode)) goto L251;
x = XEXP (pat, 1);
operands[1] = x;
if (! memory_operand (x, SImode)) goto L251;
do { insn = NEXT_INSN (insn);
if (insn == 0) goto L251; }
while (GET_CODE (insn) == NOTE
|| (GET_CODE (insn) == INSN
&& (GET_CODE (PATTERN (insn)) == USE
|| GET_CODE (PATTERN (insn)) == CLOBBER)));
if (GET_CODE (insn) == CODE_LABEL
|| GET_CODE (insn) == BARRIER)
goto L251;
pat = PATTERN (insn);
x = pat;
if (GET_CODE (x) != SET) goto L251;
x = XEXP (pat, 0);
operands[2] = x;
if (! register_operand (x, SImode)) goto L251;
x = XEXP (pat, 1);
operands[3] = x;
if (! memory_operand (x, SImode)) goto L251;
if (! (registers_ok_for_ldd_peep (operands[2], operands[0])
&& ! MEM_VOLATILE_P (operands[3]) && ! MEM_VOLATILE_P (operands[1])
&& addrs_ok_for_ldd_peep (XEXP (operands[3], 0), XEXP (operands[1], 0)))) goto L251;
PATTERN (ins1) = gen_rtx (PARALLEL, VOIDmode, gen_rtvec_v (4, operands));
INSN_CODE (ins1) = 251;
delete_for_peephole (NEXT_INSN (ins1), insn);
return NEXT_INSN (insn);
L251:
insn = ins1;
pat = PATTERN (insn);
x = pat;
if (GET_CODE (x) != SET) goto L252;
x = XEXP (pat, 0);
operands[0] = x;
if (! memory_operand (x, SImode)) goto L252;
x = XEXP (pat, 1);
operands[1] = x;
if (! register_operand (x, SImode)) goto L252;
do { insn = NEXT_INSN (insn);
if (insn == 0) goto L252; }
while (GET_CODE (insn) == NOTE
|| (GET_CODE (insn) == INSN
&& (GET_CODE (PATTERN (insn)) == USE
|| GET_CODE (PATTERN (insn)) == CLOBBER)));
if (GET_CODE (insn) == CODE_LABEL
|| GET_CODE (insn) == BARRIER)
goto L252;
pat = PATTERN (insn);
x = pat;
if (GET_CODE (x) != SET) goto L252;
x = XEXP (pat, 0);
operands[2] = x;
if (! memory_operand (x, SImode)) goto L252;
x = XEXP (pat, 1);
operands[3] = x;
if (! register_operand (x, SImode)) goto L252;
if (! (registers_ok_for_ldd_peep (operands[3], operands[1])
&& ! MEM_VOLATILE_P (operands[2]) && ! MEM_VOLATILE_P (operands[0])
&& addrs_ok_for_ldd_peep (XEXP (operands[2], 0), XEXP (operands[0], 0)))) goto L252;
PATTERN (ins1) = gen_rtx (PARALLEL, VOIDmode, gen_rtvec_v (4, operands));
INSN_CODE (ins1) = 252;
delete_for_peephole (NEXT_INSN (ins1), insn);
return NEXT_INSN (insn);
L252:
insn = ins1;
pat = PATTERN (insn);
x = pat;
if (GET_CODE (x) != SET) goto L253;
x = XEXP (pat, 0);
operands[0] = x;
if (! register_operand (x, SFmode)) goto L253;
x = XEXP (pat, 1);
operands[1] = x;
if (! memory_operand (x, SFmode)) goto L253;
do { insn = NEXT_INSN (insn);
if (insn == 0) goto L253; }
while (GET_CODE (insn) == NOTE
|| (GET_CODE (insn) == INSN
&& (GET_CODE (PATTERN (insn)) == USE
|| GET_CODE (PATTERN (insn)) == CLOBBER)));
if (GET_CODE (insn) == CODE_LABEL
|| GET_CODE (insn) == BARRIER)
goto L253;
pat = PATTERN (insn);
x = pat;
if (GET_CODE (x) != SET) goto L253;
x = XEXP (pat, 0);
operands[2] = x;
if (! register_operand (x, SFmode)) goto L253;
x = XEXP (pat, 1);
operands[3] = x;
if (! memory_operand (x, SFmode)) goto L253;
if (! (registers_ok_for_ldd_peep (operands[2], operands[0])
&& ! MEM_VOLATILE_P (operands[3]) && ! MEM_VOLATILE_P (operands[1])
&& addrs_ok_for_ldd_peep (XEXP (operands[3], 0), XEXP (operands[1], 0)))) goto L253;
PATTERN (ins1) = gen_rtx (PARALLEL, VOIDmode, gen_rtvec_v (4, operands));
INSN_CODE (ins1) = 253;
delete_for_peephole (NEXT_INSN (ins1), insn);
return NEXT_INSN (insn);
L253:
insn = ins1;
pat = PATTERN (insn);
x = pat;
if (GET_CODE (x) != SET) goto L254;
x = XEXP (pat, 0);
operands[0] = x;
if (! memory_operand (x, SFmode)) goto L254;
x = XEXP (pat, 1);
operands[1] = x;
if (! register_operand (x, SFmode)) goto L254;
do { insn = NEXT_INSN (insn);
if (insn == 0) goto L254; }
while (GET_CODE (insn) == NOTE
|| (GET_CODE (insn) == INSN
&& (GET_CODE (PATTERN (insn)) == USE
|| GET_CODE (PATTERN (insn)) == CLOBBER)));
if (GET_CODE (insn) == CODE_LABEL
|| GET_CODE (insn) == BARRIER)
goto L254;
pat = PATTERN (insn);
x = pat;
if (GET_CODE (x) != SET) goto L254;
x = XEXP (pat, 0);
operands[2] = x;
if (! memory_operand (x, SFmode)) goto L254;
x = XEXP (pat, 1);
operands[3] = x;
if (! register_operand (x, SFmode)) goto L254;
if (! (registers_ok_for_ldd_peep (operands[3], operands[1])
&& ! MEM_VOLATILE_P (operands[2]) && ! MEM_VOLATILE_P (operands[0])
&& addrs_ok_for_ldd_peep (XEXP (operands[2], 0), XEXP (operands[0], 0)))) goto L254;
PATTERN (ins1) = gen_rtx (PARALLEL, VOIDmode, gen_rtvec_v (4, operands));
INSN_CODE (ins1) = 254;
delete_for_peephole (NEXT_INSN (ins1), insn);
return NEXT_INSN (insn);
L254:
insn = ins1;
pat = PATTERN (insn);
x = pat;
if (GET_CODE (x) != SET) goto L255;
x = XEXP (pat, 0);
operands[0] = x;
if (! register_operand (x, SImode)) goto L255;
x = XEXP (pat, 1);
operands[1] = x;
if (! register_operand (x, SImode)) goto L255;
do { insn = NEXT_INSN (insn);
if (insn == 0) goto L255; }
while (GET_CODE (insn) == NOTE
|| (GET_CODE (insn) == INSN
&& (GET_CODE (PATTERN (insn)) == USE
|| GET_CODE (PATTERN (insn)) == CLOBBER)));
if (GET_CODE (insn) == CODE_LABEL
|| GET_CODE (insn) == BARRIER)
goto L255;
pat = PATTERN (insn);
x = pat;
if (GET_CODE (x) != SET) goto L255;
x = XEXP (pat, 0);
if (GET_CODE (x) != REG) goto L255;
if (GET_MODE (x) != CCmode) goto L255;
if (XINT (x, 0) != 0) goto L255;
x = XEXP (pat, 1);
if (GET_CODE (x) != COMPARE) goto L255;
if (GET_MODE (x) != CCmode) goto L255;
x = XEXP (XEXP (pat, 1), 0);
operands[2] = x;
if (! register_operand (x, SImode)) goto L255;
x = XEXP (XEXP (pat, 1), 1);
if (GET_CODE (x) != CONST_INT) goto L255;
if (XWINT (x, 0) != 0) goto L255;
if (! ((rtx_equal_p (operands[2], operands[0])
|| rtx_equal_p (operands[2], operands[1]))
&& ! FP_REG_P (operands[0]) && ! FP_REG_P (operands[1]))) goto L255;
PATTERN (ins1) = gen_rtx (PARALLEL, VOIDmode, gen_rtvec_v (3, operands));
INSN_CODE (ins1) = 255;
delete_for_peephole (NEXT_INSN (ins1), insn);
return NEXT_INSN (insn);
L255:
insn = ins1;
pat = PATTERN (insn);
x = pat;
if (GET_CODE (x) != SET) goto L256;
x = XEXP (pat, 0);
operands[0] = x;
if (! register_operand (x, HImode)) goto L256;
x = XEXP (pat, 1);
operands[1] = x;
if (! memory_operand (x, HImode)) goto L256;
do { insn = NEXT_INSN (insn);
if (insn == 0) goto L256; }
while (GET_CODE (insn) == NOTE
|| (GET_CODE (insn) == INSN
&& (GET_CODE (PATTERN (insn)) == USE
|| GET_CODE (PATTERN (insn)) == CLOBBER)));
if (GET_CODE (insn) == CODE_LABEL
|| GET_CODE (insn) == BARRIER)
goto L256;
pat = PATTERN (insn);
x = pat;
if (GET_CODE (x) != SET) goto L256;
x = XEXP (pat, 0);
operands[2] = x;
if (! register_operand (x, SImode)) goto L256;
x = XEXP (pat, 1);
if (GET_CODE (x) != SIGN_EXTEND) goto L256;
if (GET_MODE (x) != SImode) goto L256;
x = XEXP (XEXP (pat, 1), 0);
if (!rtx_equal_p (operands[0], x)) goto L256;
do { insn = NEXT_INSN (insn);
if (insn == 0) goto L256; }
while (GET_CODE (insn) == NOTE
|| (GET_CODE (insn) == INSN
&& (GET_CODE (PATTERN (insn)) == USE
|| GET_CODE (PATTERN (insn)) == CLOBBER)));
if (GET_CODE (insn) == CODE_LABEL
|| GET_CODE (insn) == BARRIER)
goto L256;
pat = PATTERN (insn);
x = pat;
if (GET_CODE (x) != SET) goto L256;
x = XEXP (pat, 0);
if (GET_CODE (x) != REG) goto L256;
if (GET_MODE (x) != CCmode) goto L256;
if (XINT (x, 0) != 0) goto L256;
x = XEXP (pat, 1);
if (GET_CODE (x) != COMPARE) goto L256;
if (GET_MODE (x) != CCmode) goto L256;
x = XEXP (XEXP (pat, 1), 0);
if (!rtx_equal_p (operands[2], x)) goto L256;
x = XEXP (XEXP (pat, 1), 1);
if (GET_CODE (x) != CONST_INT) goto L256;
if (XWINT (x, 0) != 0) goto L256;
PATTERN (ins1) = gen_rtx (PARALLEL, VOIDmode, gen_rtvec_v (3, operands));
INSN_CODE (ins1) = 256;
delete_for_peephole (NEXT_INSN (ins1), insn);
return NEXT_INSN (insn);
L256:
insn = ins1;
pat = PATTERN (insn);
x = pat;
if (GET_CODE (x) != SET) goto L257;
x = XEXP (pat, 0);
operands[0] = x;
if (! register_operand (x, QImode)) goto L257;
x = XEXP (pat, 1);
operands[1] = x;
if (! memory_operand (x, QImode)) goto L257;
do { insn = NEXT_INSN (insn);
if (insn == 0) goto L257; }
while (GET_CODE (insn) == NOTE
|| (GET_CODE (insn) == INSN
&& (GET_CODE (PATTERN (insn)) == USE
|| GET_CODE (PATTERN (insn)) == CLOBBER)));
if (GET_CODE (insn) == CODE_LABEL
|| GET_CODE (insn) == BARRIER)
goto L257;
pat = PATTERN (insn);
x = pat;
if (GET_CODE (x) != SET) goto L257;
x = XEXP (pat, 0);
operands[2] = x;
if (! register_operand (x, SImode)) goto L257;
x = XEXP (pat, 1);
if (GET_CODE (x) != SIGN_EXTEND) goto L257;
if (GET_MODE (x) != SImode) goto L257;
x = XEXP (XEXP (pat, 1), 0);
if (!rtx_equal_p (operands[0], x)) goto L257;
do { insn = NEXT_INSN (insn);
if (insn == 0) goto L257; }
while (GET_CODE (insn) == NOTE
|| (GET_CODE (insn) == INSN
&& (GET_CODE (PATTERN (insn)) == USE
|| GET_CODE (PATTERN (insn)) == CLOBBER)));
if (GET_CODE (insn) == CODE_LABEL
|| GET_CODE (insn) == BARRIER)
goto L257;
pat = PATTERN (insn);
x = pat;
if (GET_CODE (x) != SET) goto L257;
x = XEXP (pat, 0);
if (GET_CODE (x) != REG) goto L257;
if (GET_MODE (x) != CCmode) goto L257;
if (XINT (x, 0) != 0) goto L257;
x = XEXP (pat, 1);
if (GET_CODE (x) != COMPARE) goto L257;
if (GET_MODE (x) != CCmode) goto L257;
x = XEXP (XEXP (pat, 1), 0);
if (!rtx_equal_p (operands[2], x)) goto L257;
x = XEXP (XEXP (pat, 1), 1);
if (GET_CODE (x) != CONST_INT) goto L257;
if (XWINT (x, 0) != 0) goto L257;
PATTERN (ins1) = gen_rtx (PARALLEL, VOIDmode, gen_rtvec_v (3, operands));
INSN_CODE (ins1) = 257;
delete_for_peephole (NEXT_INSN (ins1), insn);
return NEXT_INSN (insn);
L257:
insn = ins1;
pat = PATTERN (insn);
x = pat;
if (GET_CODE (x) != SET) goto L258;
x = XEXP (pat, 0);
operands[0] = x;
if (! register_operand (x, HImode)) goto L258;
x = XEXP (pat, 1);
operands[1] = x;
if (! memory_operand (x, HImode)) goto L258;
do { insn = NEXT_INSN (insn);
if (insn == 0) goto L258; }
while (GET_CODE (insn) == NOTE
|| (GET_CODE (insn) == INSN
&& (GET_CODE (PATTERN (insn)) == USE
|| GET_CODE (PATTERN (insn)) == CLOBBER)));
if (GET_CODE (insn) == CODE_LABEL
|| GET_CODE (insn) == BARRIER)
goto L258;
pat = PATTERN (insn);
x = pat;
if (GET_CODE (x) != SET) goto L258;
x = XEXP (pat, 0);
operands[2] = x;
if (! register_operand (x, SImode)) goto L258;
x = XEXP (pat, 1);
if (GET_CODE (x) != SIGN_EXTEND) goto L258;
if (GET_MODE (x) != SImode) goto L258;
x = XEXP (XEXP (pat, 1), 0);
if (!rtx_equal_p (operands[0], x)) goto L258;
if (! (dead_or_set_p (insn, operands[0]))) goto L258;
PATTERN (ins1) = gen_rtx (PARALLEL, VOIDmode, gen_rtvec_v (3, operands));
INSN_CODE (ins1) = 258;
delete_for_peephole (NEXT_INSN (ins1), insn);
return NEXT_INSN (insn);
L258:
insn = ins1;
pat = PATTERN (insn);
x = pat;
if (GET_CODE (x) != SET) goto L259;
x = XEXP (pat, 0);
operands[0] = x;
if (! register_operand (x, QImode)) goto L259;
x = XEXP (pat, 1);
operands[1] = x;
if (! memory_operand (x, QImode)) goto L259;
do { insn = NEXT_INSN (insn);
if (insn == 0) goto L259; }
while (GET_CODE (insn) == NOTE
|| (GET_CODE (insn) == INSN
&& (GET_CODE (PATTERN (insn)) == USE
|| GET_CODE (PATTERN (insn)) == CLOBBER)));
if (GET_CODE (insn) == CODE_LABEL
|| GET_CODE (insn) == BARRIER)
goto L259;
pat = PATTERN (insn);
x = pat;
if (GET_CODE (x) != SET) goto L259;
x = XEXP (pat, 0);
operands[2] = x;
if (! register_operand (x, SImode)) goto L259;
x = XEXP (pat, 1);
if (GET_CODE (x) != SIGN_EXTEND) goto L259;
if (GET_MODE (x) != SImode) goto L259;
x = XEXP (XEXP (pat, 1), 0);
if (!rtx_equal_p (operands[0], x)) goto L259;
if (! (dead_or_set_p (insn, operands[0]))) goto L259;
PATTERN (ins1) = gen_rtx (PARALLEL, VOIDmode, gen_rtvec_v (3, operands));
INSN_CODE (ins1) = 259;
delete_for_peephole (NEXT_INSN (ins1), insn);
return NEXT_INSN (insn);
L259:
insn = ins1;
pat = PATTERN (insn);
x = pat;
if (GET_CODE (x) != SET) goto L260;
x = XEXP (pat, 0);
operands[0] = x;
if (! register_operand (x, SImode)) goto L260;
x = XEXP (pat, 1);
if (GET_CODE (x) != LO_SUM) goto L260;
if (GET_MODE (x) != SImode) goto L260;
x = XEXP (XEXP (pat, 1), 0);
if (!rtx_equal_p (operands[0], x)) goto L260;
x = XEXP (XEXP (pat, 1), 1);
operands[1] = x;
if (! immediate_operand (x, SImode)) goto L260;
do { insn = NEXT_INSN (insn);
if (insn == 0) goto L260; }
while (GET_CODE (insn) == NOTE
|| (GET_CODE (insn) == INSN
&& (GET_CODE (PATTERN (insn)) == USE
|| GET_CODE (PATTERN (insn)) == CLOBBER)));
if (GET_CODE (insn) == CODE_LABEL
|| GET_CODE (insn) == BARRIER)
goto L260;
pat = PATTERN (insn);
x = pat;
if (GET_CODE (x) != SET) goto L260;
x = XEXP (pat, 0);
operands[2] = x;
if (! register_operand (x, DFmode)) goto L260;
x = XEXP (pat, 1);
if (GET_CODE (x) != MEM) goto L260;
if (GET_MODE (x) != DFmode) goto L260;
x = XEXP (XEXP (pat, 1), 0);
if (!rtx_equal_p (operands[0], x)) goto L260;
if (! (RTX_UNCHANGING_P (operands[1]) && reg_unused_after (operands[0], insn))) goto L260;
PATTERN (ins1) = gen_rtx (PARALLEL, VOIDmode, gen_rtvec_v (3, operands));
INSN_CODE (ins1) = 260;
delete_for_peephole (NEXT_INSN (ins1), insn);
return NEXT_INSN (insn);
L260:
insn = ins1;
pat = PATTERN (insn);
x = pat;
if (GET_CODE (x) != SET) goto L261;
x = XEXP (pat, 0);
operands[0] = x;
if (! register_operand (x, SImode)) goto L261;
x = XEXP (pat, 1);
if (GET_CODE (x) != LO_SUM) goto L261;
if (GET_MODE (x) != SImode) goto L261;
x = XEXP (XEXP (pat, 1), 0);
if (!rtx_equal_p (operands[0], x)) goto L261;
x = XEXP (XEXP (pat, 1), 1);
operands[1] = x;
if (! immediate_operand (x, SImode)) goto L261;
do { insn = NEXT_INSN (insn);
if (insn == 0) goto L261; }
while (GET_CODE (insn) == NOTE
|| (GET_CODE (insn) == INSN
&& (GET_CODE (PATTERN (insn)) == USE
|| GET_CODE (PATTERN (insn)) == CLOBBER)));
if (GET_CODE (insn) == CODE_LABEL
|| GET_CODE (insn) == BARRIER)
goto L261;
pat = PATTERN (insn);
x = pat;
if (GET_CODE (x) != SET) goto L261;
x = XEXP (pat, 0);
operands[2] = x;
if (! register_operand (x, SFmode)) goto L261;
x = XEXP (pat, 1);
if (GET_CODE (x) != MEM) goto L261;
if (GET_MODE (x) != SFmode) goto L261;
x = XEXP (XEXP (pat, 1), 0);
if (!rtx_equal_p (operands[0], x)) goto L261;
if (! (RTX_UNCHANGING_P (operands[1]) && reg_unused_after (operands[0], insn))) goto L261;
PATTERN (ins1) = gen_rtx (PARALLEL, VOIDmode, gen_rtvec_v (3, operands));
INSN_CODE (ins1) = 261;
delete_for_peephole (NEXT_INSN (ins1), insn);
return NEXT_INSN (insn);
L261:
insn = ins1;
pat = PATTERN (insn);
x = pat;
if (GET_CODE (x) != PARALLEL) goto L268;
if (XVECLEN (x, 0) != 2) goto L268;
x = XVECEXP (pat, 0, 0);
if (GET_CODE (x) != SET) goto L268;
x = XEXP (XVECEXP (pat, 0, 0), 0);
operands[0] = x;
x = XEXP (XVECEXP (pat, 0, 0), 1);
if (GET_CODE (x) != CALL) goto L268;
x = XEXP (XEXP (XVECEXP (pat, 0, 0), 1), 0);
if (GET_CODE (x) != MEM) goto L268;
if (GET_MODE (x) != SImode) goto L268;
x = XEXP (XEXP (XEXP (XVECEXP (pat, 0, 0), 1), 0), 0);
operands[1] = x;
if (! call_operand_address (x, SImode)) goto L268;
x = XEXP (XEXP (XVECEXP (pat, 0, 0), 1), 1);
operands[2] = x;
x = XVECEXP (pat, 0, 1);
if (GET_CODE (x) != CLOBBER) goto L268;
x = XEXP (XVECEXP (pat, 0, 1), 0);
if (GET_CODE (x) != REG) goto L268;
if (GET_MODE (x) != SImode) goto L268;
if (XINT (x, 0) != 15) goto L268;
do { insn = NEXT_INSN (insn);
if (insn == 0) goto L268; }
while (GET_CODE (insn) == NOTE
|| (GET_CODE (insn) == INSN
&& (GET_CODE (PATTERN (insn)) == USE
|| GET_CODE (PATTERN (insn)) == CLOBBER)));
if (GET_CODE (insn) == CODE_LABEL
|| GET_CODE (insn) == BARRIER)
goto L268;
pat = PATTERN (insn);
x = pat;
if (GET_CODE (x) != SET) goto L268;
x = XEXP (pat, 0);
if (GET_CODE (x) != PC) goto L268;
x = XEXP (pat, 1);
if (GET_CODE (x) != LABEL_REF) goto L268;
x = XEXP (XEXP (pat, 1), 0);
operands[3] = x;
if (! (short_branch (INSN_UID (insn), INSN_UID (operands[3])))) goto L268;
PATTERN (ins1) = gen_rtx (PARALLEL, VOIDmode, gen_rtvec_v (4, operands));
INSN_CODE (ins1) = 268;
delete_for_peephole (NEXT_INSN (ins1), insn);
return NEXT_INSN (insn);
L268:
insn = ins1;
pat = PATTERN (insn);
x = pat;
if (GET_CODE (x) != PARALLEL) goto L269;
if (XVECLEN (x, 0) != 2) goto L269;
x = XVECEXP (pat, 0, 0);
if (GET_CODE (x) != CALL) goto L269;
x = XEXP (XVECEXP (pat, 0, 0), 0);
if (GET_CODE (x) != MEM) goto L269;
if (GET_MODE (x) != SImode) goto L269;
x = XEXP (XEXP (XVECEXP (pat, 0, 0), 0), 0);
operands[0] = x;
if (! call_operand_address (x, SImode)) goto L269;
x = XEXP (XVECEXP (pat, 0, 0), 1);
operands[1] = x;
x = XVECEXP (pat, 0, 1);
if (GET_CODE (x) != CLOBBER) goto L269;
x = XEXP (XVECEXP (pat, 0, 1), 0);
if (GET_CODE (x) != REG) goto L269;
if (GET_MODE (x) != SImode) goto L269;
if (XINT (x, 0) != 15) goto L269;
do { insn = NEXT_INSN (insn);
if (insn == 0) goto L269; }
while (GET_CODE (insn) == NOTE
|| (GET_CODE (insn) == INSN
&& (GET_CODE (PATTERN (insn)) == USE
|| GET_CODE (PATTERN (insn)) == CLOBBER)));
if (GET_CODE (insn) == CODE_LABEL
|| GET_CODE (insn) == BARRIER)
goto L269;
pat = PATTERN (insn);
x = pat;
if (GET_CODE (x) != SET) goto L269;
x = XEXP (pat, 0);
if (GET_CODE (x) != PC) goto L269;
x = XEXP (pat, 1);
if (GET_CODE (x) != LABEL_REF) goto L269;
x = XEXP (XEXP (pat, 1), 0);
operands[2] = x;
if (! (short_branch (INSN_UID (insn), INSN_UID (operands[2])))) goto L269;
PATTERN (ins1) = gen_rtx (PARALLEL, VOIDmode, gen_rtvec_v (3, operands));
INSN_CODE (ins1) = 269;
delete_for_peephole (NEXT_INSN (ins1), insn);
return NEXT_INSN (insn);
L269:
insn = ins1;
pat = PATTERN (insn);
x = pat;
if (GET_CODE (x) != PARALLEL) goto L270;
if (XVECLEN (x, 0) != 2) goto L270;
x = XVECEXP (pat, 0, 0);
if (GET_CODE (x) != SET) goto L270;
x = XEXP (XVECEXP (pat, 0, 0), 0);
operands[0] = x;
if (! register_operand (x, SImode)) goto L270;
x = XEXP (XVECEXP (pat, 0, 0), 1);
if (GET_CODE (x) != MINUS) goto L270;
if (GET_MODE (x) != SImode) goto L270;
x = XEXP (XEXP (XVECEXP (pat, 0, 0), 1), 0);
operands[1] = x;
if (! reg_or_0_operand (x, SImode)) goto L270;
x = XEXP (XEXP (XVECEXP (pat, 0, 0), 1), 1);
if (GET_CODE (x) != REG) goto L270;
if (GET_MODE (x) != SImode) goto L270;
if (XINT (x, 0) != 0) goto L270;
x = XVECEXP (pat, 0, 1);
if (GET_CODE (x) != CLOBBER) goto L270;
x = XEXP (XVECEXP (pat, 0, 1), 0);
if (GET_CODE (x) != REG) goto L270;
if (GET_MODE (x) != CCmode) goto L270;
if (XINT (x, 0) != 0) goto L270;
do { insn = NEXT_INSN (insn);
if (insn == 0) goto L270; }
while (GET_CODE (insn) == NOTE
|| (GET_CODE (insn) == INSN
&& (GET_CODE (PATTERN (insn)) == USE
|| GET_CODE (PATTERN (insn)) == CLOBBER)));
if (GET_CODE (insn) == CODE_LABEL
|| GET_CODE (insn) == BARRIER)
goto L270;
pat = PATTERN (insn);
x = pat;
if (GET_CODE (x) != SET) goto L270;
x = XEXP (pat, 0);
if (GET_CODE (x) != REG) goto L270;
if (GET_MODE (x) != CCmode) goto L270;
if (XINT (x, 0) != 0) goto L270;
x = XEXP (pat, 1);
if (GET_CODE (x) != COMPARE) goto L270;
x = XEXP (XEXP (pat, 1), 0);
if (!rtx_equal_p (operands[0], x)) goto L270;
x = XEXP (XEXP (pat, 1), 1);
if (GET_CODE (x) != CONST_INT) goto L270;
if (XWINT (x, 0) != 0) goto L270;
PATTERN (ins1) = gen_rtx (PARALLEL, VOIDmode, gen_rtvec_v (2, operands));
INSN_CODE (ins1) = 270;
delete_for_peephole (NEXT_INSN (ins1), insn);
return NEXT_INSN (insn);
L270:
return 0;
}
rtx peep_operand[4];

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,55 @@
/* Configuration for GNU C-compiler for Sun Sparc.
Copyright (C) 1988 Free Software Foundation, Inc.
Contributed by Michael Tiemann (tiemann@cygnus.com).
This file is part of GNU CC.
GNU CC is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation; either version 2, or (at your option)
any later version.
GNU CC is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with GNU CC; see the file COPYING. If not, write to
the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA. */
/* #defines that need visibility everywhere. */
#define FALSE 0
#define TRUE 1
/* This describes the machine the compiler is hosted on. */
#define HOST_BITS_PER_CHAR 8
#define HOST_BITS_PER_SHORT 16
#define HOST_BITS_PER_INT 32
#define HOST_BITS_PER_LONG 32
#define HOST_BITS_PER_LONGLONG 64
/* Doubles are stored in memory with the high order word first. This
matters when cross-compiling. */
#define HOST_WORDS_BIG_ENDIAN 1
/* target machine dependencies.
tm.h is a symbolic link to the actual target specific file. */
#include "tm.h"
/* Arguments to use with `exit'. */
#define SUCCESS_EXIT_CODE 0
#define FATAL_EXIT_CODE 33
/* If compiled with Sun CC, the use of alloca requires this #include. */
#ifndef __GNUC__
#include "alloca.h"
#endif
/* If compiled with GNU C, use the built-in alloca. */
#ifdef __GNUC__
/* Use an arg in this macro because that's what some other
system does--let's avoid conflict. */
#define alloca(x) __builtin_alloca(x)
#endif

View File

@ -0,0 +1,101 @@
/* Configuration for NetBSD Sparc */
/* $Id: tm.h,v 1.1 1993/11/30 23:09:15 pk Exp $ */
#include "sparc/sparc.h"
#undef LIB_SPEC
#define LIB_SPEC "%{!p:%{!pg:-lc}}%{p:-lc_p}%{pg:-lc_p} %{g:-lg}"
#undef CPP_PREDEFINES
#define CPP_PREDEFINES "-Dsparc -D__NetBSD__ -D__BSD_NET2__ -Dunix"
/* Provide required defaults for linker -e and -d switches. */
#define LINK_SPEC \
"%{!nostdlib:%{!r*:%{!e*:-e start}}} -dc -dp %{static:-Bstatic} %{assert*}"
#define HAVE_ATEXIT
#ifdef notyet
/*
* Some imports from svr4.h in support of shared libraries.
* Currently, we need the DECLARE_OBJECT_SIZE stuff.
*/
/* Define the strings used for the special svr4 .type and .size directives.
These strings generally do not vary from one system running svr4 to
another, but if a given system (e.g. m88k running svr) needs to use
different pseudo-op names for these, they may be overridden in the
file which includes this one. */
#define TYPE_ASM_OP ".type"
#define SIZE_ASM_OP ".size"
#define WEAK_ASM_OP ".weak"
/* The following macro defines the format used to output the second
operand of the .type assembler directive. Different svr4 assemblers
expect various different forms for this operand. The one given here
is just a default. You may need to override it in your machine-
specific tm.h file (depending upon the particulars of your assembler). */
#define TYPE_OPERAND_FMT "@%s"
/* These macros generate the special .type and .size directives which
are used to set the corresponding fields of the linker symbol table
entries in an ELF object file under SVR4. These macros also output
the starting labels for the relevant functions/objects. */
/* Write the extra assembler code needed to declare a function properly.
Some svr4 assemblers need to also have something extra said about the
function's return value. We allow for that here. */
#define ASM_DECLARE_FUNCTION_NAME(FILE, NAME, DECL) \
do { \
fprintf (FILE, "\t%s\t ", TYPE_ASM_OP); \
assemble_name (FILE, NAME); \
putc (',', FILE); \
fprintf (FILE, TYPE_OPERAND_FMT, "function"); \
putc ('\n', FILE); \
ASM_DECLARE_RESULT (FILE, DECL_RESULT (DECL)); \
ASM_OUTPUT_LABEL(FILE, NAME); \
} while (0)
/* Write the extra assembler code needed to declare an object properly. */
#define ASM_DECLARE_OBJECT_NAME(FILE, NAME, DECL) \
do { \
fprintf (FILE, "\t%s\t ", TYPE_ASM_OP); \
assemble_name (FILE, NAME); \
putc (',', FILE); \
fprintf (FILE, TYPE_OPERAND_FMT, "object"); \
putc ('\n', FILE); \
if (!flag_inhibit_size_directive) \
{ \
fprintf (FILE, "\t%s\t ", SIZE_ASM_OP); \
assemble_name (FILE, NAME); \
fprintf (FILE, ",%d\n", int_size_in_bytes (TREE_TYPE (decl))); \
} \
ASM_OUTPUT_LABEL(FILE, NAME); \
} while (0)
/* This is how to declare the size of a function. */
#define ASM_DECLARE_FUNCTION_SIZE(FILE, FNAME, DECL) \
do { \
if (!flag_inhibit_size_directive) \
{ \
char label[256]; \
static int labelno; \
labelno++; \
ASM_GENERATE_INTERNAL_LABEL (label, "Lfe", labelno); \
ASM_OUTPUT_INTERNAL_LABEL (FILE, "Lfe", labelno); \
fprintf (FILE, "\t%s\t ", SIZE_ASM_OP); \
assemble_name (FILE, (FNAME)); \
fprintf (FILE, ","); \
assemble_name (FILE, label); \
fprintf (FILE, "-"); \
assemble_name (FILE, (FNAME)); \
putc ('\n', FILE); \
} \
} while (0)
#endif /*notyet*/