public inbox for gcc-bugs@sourceware.org
help / color / mirror / Atom feed
* [Bug bootstrap/14162] New: Fail to bootstrap gcc-3.3.3 on an old Sparcstation 10
@ 2004-02-16 16:30 gcc-bugzilla at gcc dot gnu dot org
2004-02-16 16:36 ` [Bug bootstrap/14162] " pinskia at gcc dot gnu dot org
0 siblings, 1 reply; 2+ messages in thread
From: gcc-bugzilla at gcc dot gnu dot org @ 2004-02-16 16:30 UTC (permalink / raw)
To: gcc-bugs
% make bootsrap
........
stage1/xgcc -Bstage1/ -B/opt/local/sparc-sun-solaris2.9/bin/ -c -g -O2 -DIN_GCC -W -Wall -Wwrite-strings -Wstrict-prototypes -Wmissing-prototypes -Wtraditional -pedantic -Wno-long-long -DHAVE_CONFIG_H -I. -I. -I/opt/local/src/gcc-3.3.3/gcc -I/opt/local/src/gcc-3.3.3/gcc/. -I/opt/local/src/gcc-3.3.3/gcc/config -I/opt/local/src/gcc-3.3.3/gcc/../include /opt/local/src/gcc-3.3.3/gcc/reload.c -o reload.o
/opt/local/src/gcc-3.3.3/gcc/reload.c: In function `find_reloads':
/opt/local/src/gcc-3.3.3/gcc/reload.c:4393: internal compiler error: Segmentation Fault
Please submit a full bug report,
with preprocessed source if appropriate.
See <URL:http://gcc.gnu.org/bugs.html> for instructions.
make[5]: *** [reload.o] Error 1
make[5]: Leaving directory `/home/hk/proj/sunpkg/gcc/build-3.3.3-SunOS-5.9-sparc/gcc'
make[4]: *** [stage2_build] Error 2
make[4]: Leaving directory `/home/hk/proj/sunpkg/gcc/build-3.3.3-SunOS-5.9-sparc/gcc'
make[3]: *** [bootstrap] Error 2
make[3]: Leaving directory `/home/hk/proj/sunpkg/gcc/build-3.3.3-SunOS-5.9-sparc
Environment:
System: SunOS xxx 5.9 Generic_112233-08 sun4m sparc SUNW,SPARCstation-10
Architecture: sun4
host: sparc-sun-solaris2.9
build: sparc-sun-solaris2.9
target: sparc-sun-solaris2.9
configured with: /opt/local/src/gcc-3.3.3/configure --prefix=/opt/local --enable-languages=c,c++
How-To-Repeat:
% pwd
/some/build/directory
% /opt/local/src/gcc-3.3.3/configure --prefix=/opt/local --enable-languages=c,c++
% make bootstrap
# 1 "/opt/local/src/gcc-3.3.3/gcc/reload.c"
# 1 "<built-in>"
# 1 "<command line>"
# 1 "/opt/local/src/gcc-3.3.3/gcc/reload.c"
# 89 "/opt/local/src/gcc-3.3.3/gcc/reload.c"
# 1 "config.h" 1
# 1 "auto-host.h" 1
# 3 "config.h" 2
struct rtx_def;
typedef struct rtx_def *rtx;
struct rtvec_def;
typedef struct rtvec_def *rtvec;
union tree_node;
typedef union tree_node *tree;
# 1 "/opt/local/src/gcc-3.3.3/include/ansidecl.h" 1
# 18 "config.h" 2
# 1 "/opt/local/src/gcc-3.3.3/gcc/config/sparc/biarch64.h" 1
# 19 "config.h" 2
# 1 "/opt/local/src/gcc-3.3.3/gcc/config/sparc/sparc.h" 1
# 82 "/opt/local/src/gcc-3.3.3/gcc/config/sparc/sparc.h"
enum cmodel {
CM_32,
CM_MEDLOW,
CM_MEDMID,
CM_MEDANY,
CM_EMBMEDANY
};
extern const char *sparc_cmodel_string;
extern enum cmodel sparc_cmodel;
# 382 "/opt/local/src/gcc-3.3.3/gcc/config/sparc/sparc.h"
extern int target_flags;
# 606 "/opt/local/src/gcc-3.3.3/gcc/config/sparc/sparc.h"
enum processor_type {
PROCESSOR_V7,
PROCESSOR_CYPRESS,
PROCESSOR_V8,
PROCESSOR_SUPERSPARC,
PROCESSOR_SPARCLITE,
PROCESSOR_F930,
PROCESSOR_F934,
PROCESSOR_HYPERSPARC,
PROCESSOR_SPARCLITE86X,
PROCESSOR_SPARCLET,
PROCESSOR_TSC701,
PROCESSOR_V9,
PROCESSOR_ULTRASPARC,
PROCESSOR_ULTRASPARC3
};
extern enum processor_type sparc_cpu;
# 645 "/opt/local/src/gcc-3.3.3/gcc/config/sparc/sparc.h"
struct sparc_cpu_select
{
const char *string;
const char *const name;
const int set_tune_p;
const int set_arch_p;
};
extern struct sparc_cpu_select sparc_select[];
# 1028 "/opt/local/src/gcc-3.3.3/gcc/config/sparc/sparc.h"
extern const int *hard_regno_mode_classes;
extern int sparc_mode_class[];
# 1208 "/opt/local/src/gcc-3.3.3/gcc/config/sparc/sparc.h"
enum reg_class { NO_REGS, FPCC_REGS, I64_REGS, GENERAL_REGS, FP_REGS,
EXTRA_FP_REGS, GENERAL_OR_FP_REGS, GENERAL_OR_EXTRA_FP_REGS,
ALL_REGS, LIM_REG_CLASSES };
# 1241 "/opt/local/src/gcc-3.3.3/gcc/config/sparc/sparc.h"
extern enum reg_class sparc_regno_reg_class[102];
# 1324 "/opt/local/src/gcc-3.3.3/gcc/config/sparc/sparc.h"
extern char sparc_leaf_regs[];
extern char leaf_reg_remap[];
# 1727 "/opt/local/src/gcc-3.3.3/gcc/config/sparc/sparc.h"
struct sparc_args {
int words;
int prototype_p;
int libcall_p;
};
# 1816 "/opt/local/src/gcc-3.3.3/gcc/config/sparc/sparc.h"
extern rtx sparc_compare_op0;
extern rtx sparc_compare_op1;
# 1845 "/opt/local/src/gcc-3.3.3/gcc/config/sparc/sparc.h"
extern char sparc_hard_reg_printed[8];
# 20 "config.h" 2
# 1 "/opt/local/src/gcc-3.3.3/gcc/config/dbxelf.h" 1
# 21 "config.h" 2
# 1 "/opt/local/src/gcc-3.3.3/gcc/config/elfos.h" 1
# 22 "config.h" 2
# 1 "/opt/local/src/gcc-3.3.3/gcc/config/svr4.h" 1
# 23 "config.h" 2
# 1 "/opt/local/src/gcc-3.3.3/gcc/config/sparc/sysv4.h" 1
# 24 "config.h" 2
# 1 "/opt/local/src/gcc-3.3.3/gcc/config/sol2.h" 1
# 25 "config.h" 2
# 1 "/opt/local/src/gcc-3.3.3/gcc/config/sparc/sol2.h" 1
# 26 "config.h" 2
# 1 "/opt/local/src/gcc-3.3.3/gcc/config/sparc/sol2-bi.h" 1
# 27 "config.h" 2
# 1 "/opt/local/src/gcc-3.3.3/gcc/defaults.h" 1
# 28 "config.h" 2
# 1 "insn-constants.h" 1
# 34 "config.h" 2
# 1 "insn-flags.h" 1
# 239 "insn-flags.h"
extern rtx gen_get_pc (rtx, rtx, rtx);
extern rtx gen_movsi_lo_sum_pic (rtx, rtx, rtx);
extern rtx gen_movsi_high_pic (rtx, rtx);
extern rtx gen_movdi_lo_sum_pic (rtx, rtx, rtx);
extern rtx gen_movdi_high_pic (rtx, rtx);
extern rtx gen_seth44 (rtx, rtx);
extern rtx gen_setm44 (rtx, rtx, rtx);
extern rtx gen_setl44 (rtx, rtx, rtx);
extern rtx gen_sethh (rtx, rtx);
extern rtx gen_setlm (rtx, rtx);
extern rtx gen_sethm (rtx, rtx, rtx);
extern rtx gen_setlo (rtx, rtx, rtx);
extern rtx gen_embmedany_sethi (rtx, rtx);
extern rtx gen_embmedany_losum (rtx, rtx, rtx);
extern rtx gen_embmedany_brsum (rtx, rtx);
extern rtx gen_embmedany_textuhi (rtx, rtx);
extern rtx gen_embmedany_texthi (rtx, rtx);
extern rtx gen_embmedany_textulo (rtx, rtx, rtx);
extern rtx gen_embmedany_textlo (rtx, rtx, rtx);
extern rtx gen_movdf_cc_sp64 (rtx, rtx, rtx, rtx, rtx);
extern rtx gen_movdf_cc_reg_sp64 (rtx, rtx, rtx, rtx, rtx);
extern rtx gen_extendsfdf2 (rtx, rtx);
extern rtx gen_truncdfsf2 (rtx, rtx);
extern rtx gen_floatsisf2 (rtx, rtx);
extern rtx gen_floatsidf2 (rtx, rtx);
extern rtx gen_floatdisf2 (rtx, rtx);
extern rtx gen_floatdidf2 (rtx, rtx);
extern rtx gen_fix_truncsfsi2 (rtx, rtx);
extern rtx gen_fix_truncdfsi2 (rtx, rtx);
extern rtx gen_fix_truncsfdi2 (rtx, rtx);
extern rtx gen_fix_truncdfdi2 (rtx, rtx);
extern rtx gen_adddi3_insn_sp32 (rtx, rtx, rtx);
extern rtx gen_addx (rtx, rtx, rtx);
extern rtx gen_subx (rtx, rtx, rtx);
extern rtx gen_addsi3 (rtx, rtx, rtx);
extern rtx gen_subsi3 (rtx, rtx, rtx);
extern rtx gen_cmp_minus_cc_set (rtx, rtx, rtx);
extern rtx gen_mulsi3 (rtx, rtx, rtx);
extern rtx gen_muldi3_v8plus (rtx, rtx, rtx);
extern rtx gen_mulsidi3_v8plus (rtx, rtx, rtx);
extern rtx gen_const_mulsidi3_v8plus (rtx, rtx, rtx);
extern rtx gen_const_mulsidi3_sp32 (rtx, rtx, rtx);
extern rtx gen_const_mulsidi3_sp64 (rtx, rtx, rtx);
extern rtx gen_smulsi3_highpart_v8plus (rtx, rtx, rtx, rtx);
extern rtx gen_const_smulsi3_highpart_v8plus (rtx, rtx, rtx, rtx);
extern rtx gen_const_smulsi3_highpart (rtx, rtx, rtx);
extern rtx gen_umulsidi3_v8plus (rtx, rtx, rtx);
extern rtx gen_const_umulsidi3_sp32 (rtx, rtx, rtx);
extern rtx gen_const_umulsidi3_sp64 (rtx, rtx, rtx);
extern rtx gen_const_umulsidi3_v8plus (rtx, rtx, rtx);
extern rtx gen_umulsi3_highpart_v8plus (rtx, rtx, rtx, rtx);
extern rtx gen_const_umulsi3_highpart_v8plus (rtx, rtx, rtx, rtx);
extern rtx gen_const_umulsi3_highpart (rtx, rtx, rtx);
extern rtx gen_divsi3_sp32 (rtx, rtx, rtx);
extern rtx gen_divsi3_sp64 (rtx, rtx, rtx, rtx);
extern rtx gen_divdi3 (rtx, rtx, rtx);
extern rtx gen_udivsi3_sp32 (rtx, rtx, rtx);
extern rtx gen_udivsi3_sp64 (rtx, rtx, rtx);
extern rtx gen_udivdi3 (rtx, rtx, rtx);
extern rtx gen_andsi3 (rtx, rtx, rtx);
extern rtx gen_iorsi3 (rtx, rtx, rtx);
extern rtx gen_xorsi3 (rtx, rtx, rtx);
extern rtx gen_negsi2 (rtx, rtx);
extern rtx gen_one_cmplsi2 (rtx, rtx);
extern rtx gen_adddf3 (rtx, rtx, rtx);
extern rtx gen_addsf3 (rtx, rtx, rtx);
extern rtx gen_subdf3 (rtx, rtx, rtx);
extern rtx gen_subsf3 (rtx, rtx, rtx);
extern rtx gen_muldf3 (rtx, rtx, rtx);
extern rtx gen_mulsf3 (rtx, rtx, rtx);
extern rtx gen_divdf3 (rtx, rtx, rtx);
extern rtx gen_divsf3 (rtx, rtx, rtx);
extern rtx gen_negsf2 (rtx, rtx);
extern rtx gen_abssf2 (rtx, rtx);
extern rtx gen_sqrtdf2 (rtx, rtx);
extern rtx gen_sqrtsf2 (rtx, rtx);
extern rtx gen_ashlsi3 (rtx, rtx, rtx);
extern rtx gen_ashldi3_v8plus (rtx, rtx, rtx);
extern rtx gen_ashrsi3 (rtx, rtx, rtx);
extern rtx gen_ashrdi3_v8plus (rtx, rtx, rtx);
extern rtx gen_lshrsi3 (rtx, rtx, rtx);
extern rtx gen_lshrdi3_v8plus (rtx, rtx, rtx);
extern rtx gen_jump (rtx);
extern rtx gen_blockage (void);
extern rtx gen_update_return (rtx, rtx);
extern rtx gen_nop (void);
extern rtx gen_flush_register_windows (void);
extern rtx gen_goto_handler_and_restore (rtx);
extern rtx gen_do_builtin_setjmp_setup (void);
extern rtx gen_flush (rtx);
extern rtx gen_flushdi (rtx);
extern rtx gen_ffssi2 (rtx, rtx);
extern rtx gen_prefetch_64 (rtx, rtx, rtx);
extern rtx gen_prefetch_32 (rtx, rtx, rtx);
extern rtx gen_trap (void);
extern rtx gen_cmpsi (rtx, rtx);
extern rtx gen_cmpdi (rtx, rtx);
extern rtx gen_cmpsf (rtx, rtx);
extern rtx gen_cmpdf (rtx, rtx);
extern rtx gen_cmptf (rtx, rtx);
extern rtx gen_seqsi_special (rtx, rtx, rtx);
extern rtx gen_seqdi_special (rtx, rtx, rtx);
extern rtx gen_snesi_special (rtx, rtx, rtx);
extern rtx gen_snedi_special (rtx, rtx, rtx);
extern rtx gen_seqdi_special_trunc (rtx, rtx, rtx);
extern rtx gen_snedi_special_trunc (rtx, rtx, rtx);
extern rtx gen_seqsi_special_extend (rtx, rtx, rtx);
extern rtx gen_snesi_special_extend (rtx, rtx, rtx);
extern rtx gen_seq (rtx);
extern rtx gen_sne (rtx);
extern rtx gen_sgt (rtx);
extern rtx gen_slt (rtx);
extern rtx gen_sge (rtx);
extern rtx gen_sle (rtx);
extern rtx gen_sgtu (rtx);
extern rtx gen_sltu (rtx);
extern rtx gen_sgeu (rtx);
extern rtx gen_sleu (rtx);
extern rtx gen_beq (rtx);
extern rtx gen_bne (rtx);
extern rtx gen_bgt (rtx);
extern rtx gen_bgtu (rtx);
extern rtx gen_blt (rtx);
extern rtx gen_bltu (rtx);
extern rtx gen_bge (rtx);
extern rtx gen_bgeu (rtx);
extern rtx gen_ble (rtx);
extern rtx gen_bleu (rtx);
extern rtx gen_bunordered (rtx);
extern rtx gen_bordered (rtx);
extern rtx gen_bungt (rtx);
extern rtx gen_bunlt (rtx);
extern rtx gen_buneq (rtx);
extern rtx gen_bunge (rtx);
extern rtx gen_bunle (rtx);
extern rtx gen_bltgt (rtx);
extern rtx gen_movqi (rtx, rtx);
extern rtx gen_movhi (rtx, rtx);
extern rtx gen_movsi (rtx, rtx);
extern rtx gen_movsi_pic_label_ref (rtx, rtx);
extern rtx gen_movdi (rtx, rtx);
extern rtx gen_movdi_pic_label_ref (rtx, rtx);
extern rtx gen_reload_indi (rtx, rtx, rtx);
extern rtx gen_reload_outdi (rtx, rtx, rtx);
extern rtx gen_movsf (rtx, rtx);
extern rtx gen_movdf (rtx, rtx);
extern rtx gen_movtf (rtx, rtx);
extern rtx gen_movqicc (rtx, rtx, rtx, rtx);
extern rtx gen_movhicc (rtx, rtx, rtx, rtx);
extern rtx gen_movsicc (rtx, rtx, rtx, rtx);
extern rtx gen_movdicc (rtx, rtx, rtx, rtx);
extern rtx gen_movsfcc (rtx, rtx, rtx, rtx);
extern rtx gen_movdfcc (rtx, rtx, rtx, rtx);
extern rtx gen_movtfcc (rtx, rtx, rtx, rtx);
extern rtx gen_zero_extendhisi2 (rtx, rtx);
extern rtx gen_zero_extendqihi2 (rtx, rtx);
extern rtx gen_zero_extendqisi2 (rtx, rtx);
extern rtx gen_zero_extendqidi2 (rtx, rtx);
extern rtx gen_zero_extendhidi2 (rtx, rtx);
extern rtx gen_zero_extendsidi2 (rtx, rtx);
extern rtx gen_extendhisi2 (rtx, rtx);
extern rtx gen_extendqihi2 (rtx, rtx);
extern rtx gen_extendqisi2 (rtx, rtx);
extern rtx gen_extendqidi2 (rtx, rtx);
extern rtx gen_extendhidi2 (rtx, rtx);
extern rtx gen_extendsidi2 (rtx, rtx);
extern rtx gen_extendsftf2 (rtx, rtx);
extern rtx gen_extenddftf2 (rtx, rtx);
extern rtx gen_trunctfsf2 (rtx, rtx);
extern rtx gen_trunctfdf2 (rtx, rtx);
extern rtx gen_floatsitf2 (rtx, rtx);
extern rtx gen_floatunssitf2 (rtx, rtx);
extern rtx gen_floatunsdisf2 (rtx, rtx);
extern rtx gen_floatunsdidf2 (rtx, rtx);
extern rtx gen_floatditf2 (rtx, rtx);
extern rtx gen_floatunsditf2 (rtx, rtx);
extern rtx gen_fix_trunctfsi2 (rtx, rtx);
extern rtx gen_fixuns_trunctfsi2 (rtx, rtx);
extern rtx gen_fix_trunctfdi2 (rtx, rtx);
extern rtx gen_fixuns_trunctfdi2 (rtx, rtx);
extern rtx gen_adddi3 (rtx, rtx, rtx);
extern rtx gen_subdi3 (rtx, rtx, rtx);
extern rtx gen_muldi3 (rtx, rtx, rtx);
extern rtx gen_mulsidi3 (rtx, rtx, rtx);
extern rtx gen_smulsi3_highpart (rtx, rtx, rtx);
extern rtx gen_umulsidi3 (rtx, rtx, rtx);
extern rtx gen_umulsi3_highpart (rtx, rtx, rtx);
extern rtx gen_divsi3 (rtx, rtx, rtx);
extern rtx gen_udivsi3 (rtx, rtx, rtx);
extern rtx gen_anddi3 (rtx, rtx, rtx);
extern rtx gen_iordi3 (rtx, rtx, rtx);
extern rtx gen_xordi3 (rtx, rtx, rtx);
extern rtx gen_negdi2 (rtx, rtx);
extern rtx gen_one_cmpldi2 (rtx, rtx);
extern rtx gen_addtf3 (rtx, rtx, rtx);
extern rtx gen_subtf3 (rtx, rtx, rtx);
extern rtx gen_multf3 (rtx, rtx, rtx);
extern rtx gen_divtf3 (rtx, rtx, rtx);
extern rtx gen_negtf2 (rtx, rtx);
extern rtx gen_negdf2 (rtx, rtx);
extern rtx gen_abstf2 (rtx, rtx);
extern rtx gen_absdf2 (rtx, rtx);
extern rtx gen_sqrttf2 (rtx, rtx);
extern rtx gen_ashldi3 (rtx, rtx, rtx);
extern rtx gen_ashrdi3 (rtx, rtx, rtx);
extern rtx gen_lshrdi3 (rtx, rtx, rtx);
extern rtx gen_tablejump (rtx, rtx);
extern rtx gen_call (rtx, rtx, rtx, rtx);
extern rtx gen_call_value (rtx, rtx, rtx, rtx, rtx);
extern rtx gen_untyped_call (rtx, rtx, rtx);
extern rtx gen_sibcall (rtx);
extern rtx gen_sibcall_value (rtx, rtx);
extern rtx gen_sibcall_epilogue (void);
extern rtx gen_untyped_return (rtx, rtx);
extern rtx gen_indirect_jump (rtx);
extern rtx gen_nonlocal_goto (rtx, rtx, rtx, rtx);
extern rtx gen_builtin_setjmp_setup (rtx);
extern rtx gen_setjmp (void);
extern rtx gen_setjmp_32 (void);
extern rtx gen_setjmp_64 (void);
extern rtx gen_prefetch (rtx, rtx, rtx);
extern rtx gen_prologue (void);
extern rtx gen_exception_receiver (void);
extern rtx gen_builtin_setjmp_receiver (rtx);
extern rtx gen_conditional_trap (rtx, rtx);
# 35 "config.h" 2
# 90 "/opt/local/src/gcc-3.3.3/gcc/reload.c" 2
# 1 "/opt/local/src/gcc-3.3.3/gcc/system.h" 1
# 28 "/opt/local/src/gcc-3.3.3/gcc/system.h"
# 1 "include/stdarg.h" 1 3 4
# 43 "include/stdarg.h" 3 4
typedef __builtin_va_list __gnuc_va_list;
# 85 "include/stdarg.h" 3 4
typedef __gnuc_va_list va_list;
# 29 "/opt/local/src/gcc-3.3.3/gcc/system.h" 2
# 42 "/opt/local/src/gcc-3.3.3/gcc/system.h"
# 1 "include/stddef.h" 1 3 4
# 151 "include/stddef.h" 3 4
typedef int ptrdiff_t;
# 213 "include/stddef.h" 3 4
typedef unsigned int size_t;
# 325 "include/stddef.h" 3 4
typedef long int wchar_t;
# 43 "/opt/local/src/gcc-3.3.3/gcc/system.h" 2
# 1 "include/stdio.h" 1 3 4
# 34 "include/stdio.h" 3 4
#pragma ident "@(#)stdio.h 1.79 01/04/16 SMI"
# 1 "/usr/include/iso/stdio_iso.h" 1 3 4
# 32 "/usr/include/iso/stdio_iso.h" 3 4
#pragma ident "@(#)stdio_iso.h 1.2 99/10/25 SMI"
# 1 "/usr/include/sys/feature_tests.h" 1 3 4
# 13 "/usr/include/sys/feature_tests.h" 3 4
#pragma ident "@(#)feature_tests.h 1.18 99/07/26 SMI"
# 1 "/usr/include/sys/isa_defs.h" 1 3 4
# 9 "/usr/include/sys/isa_defs.h" 3 4
#pragma ident "@(#)isa_defs.h 1.20 99/05/04 SMI"
# 16 "/usr/include/sys/feature_tests.h" 2 3 4
# 36 "/usr/include/iso/stdio_iso.h" 2 3 4
# 1 "/usr/include/sys/va_list.h" 1 3 4
# 9 "/usr/include/sys/va_list.h" 3 4
#pragma ident "@(#)va_list.h 1.13 01/02/08 SMI"
# 26 "/usr/include/sys/va_list.h" 3 4
typedef void *__va_list;
# 37 "/usr/include/iso/stdio_iso.h" 2 3 4
# 1 "include/stdio_tag.h" 1 3 4
# 18 "include/stdio_tag.h" 3 4
#pragma ident "@(#)stdio_tag.h 1.3 98/04/20 SMI"
# 30 "include/stdio_tag.h" 3 4
typedef struct __FILE __FILE;
# 38 "/usr/include/iso/stdio_iso.h" 2 3 4
# 1 "/usr/include/stdio_impl.h" 1 3 4
# 9 "/usr/include/stdio_impl.h" 3 4
#pragma ident "@(#)stdio_impl.h 1.13 01/11/16 SMI"
# 22 "/usr/include/stdio_impl.h" 3 4
typedef int ssize_t;
# 38 "/usr/include/stdio_impl.h" 3 4
struct __FILE
{
ssize_t _cnt;
unsigned char *_ptr;
unsigned char *_base;
unsigned char _flag;
unsigned char _file;
unsigned __orientation:2;
unsigned __ionolock:1;
unsigned __seekable:1;
unsigned __filler:4;
};
# 39 "/usr/include/iso/stdio_iso.h" 2 3 4
# 59 "/usr/include/iso/stdio_iso.h" 3 4
typedef long long __longlong_t;
# 75 "/usr/include/iso/stdio_iso.h" 3 4
typedef __FILE FILE;
# 88 "/usr/include/iso/stdio_iso.h" 3 4
typedef long fpos_t;
# 147 "/usr/include/iso/stdio_iso.h" 3 4
extern __FILE __iob[20];
# 164 "/usr/include/iso/stdio_iso.h" 3 4
extern int remove(const char *);
extern int rename(const char *, const char *);
extern FILE *tmpfile(void);
extern char *tmpnam(char *);
extern int fclose(FILE *);
extern int fflush(FILE *);
extern FILE *fopen(const char *, const char *);
extern FILE *freopen(const char *, const char *, FILE *);
extern void setbuf(FILE *, char *);
extern int setvbuf(FILE *, char *, int, size_t);
extern int fprintf(FILE *, const char *, ...);
extern int fscanf(FILE *, const char *, ...);
extern int printf(const char *, ...);
extern int scanf(const char *, ...);
extern int sprintf(char *, const char *, ...);
extern int sscanf(const char *, const char *, ...);
extern int vfprintf(FILE *, const char *, __va_list);
extern int vprintf(const char *, __va_list);
extern int vsprintf(char *, const char *, __va_list);
extern int fgetc(FILE *);
extern char *fgets(char *, int, FILE *);
extern int fputc(int, FILE *);
extern int fputs(const char *, FILE *);
extern int getc(FILE *);
extern int putc(int, FILE *);
extern int getchar(void);
extern int putchar(int);
extern char *gets(char *);
extern int puts(const char *);
extern int ungetc(int, FILE *);
extern size_t fread(void *, size_t, size_t, FILE *);
extern size_t fwrite(const void *, size_t, size_t, FILE *);
extern int fgetpos(FILE *, fpos_t *);
extern int fseek(FILE *, long, int);
extern int fsetpos(FILE *, const fpos_t *);
extern long ftell(FILE *);
extern void rewind(FILE *);
extern void clearerr(FILE *);
extern int feof(FILE *);
extern int ferror(FILE *);
extern void perror(const char *);
extern int __filbuf(FILE *);
extern int __flsbuf(int, FILE *);
# 37 "include/stdio.h" 2 3 4
# 105 "include/stdio.h" 3 4
typedef long off_t;
typedef __longlong_t off64_t;
# 123 "include/stdio.h" 3 4
typedef __longlong_t fpos64_t;
# 151 "include/stdio.h" 3 4
extern unsigned char _sibuf[], _sobuf[];
# 193 "include/stdio.h" 3 4
extern unsigned char *_bufendtab[];
extern FILE *_lastbuf;
# 229 "include/stdio.h" 3 4
extern void setbuffer(FILE *, char *, size_t);
extern int setlinebuf(FILE *);
extern int vfscanf(FILE *, const char *, __gnuc_va_list);
extern int vscanf(const char *, __gnuc_va_list);
extern int vsscanf(const char *, const char *, __gnuc_va_list);
extern int snprintf(char *, size_t, const char *, ...);
extern int vsnprintf(char *, size_t, const char *, __gnuc_va_list);
# 258 "include/stdio.h" 3 4
extern FILE *fdopen(int, const char *);
extern char *ctermid(char *);
extern int fileno(FILE *);
# 284 "include/stdio.h" 3 4
extern FILE *popen(const char *, const char *);
extern char *cuserid(char *);
extern char *tempnam(const char *, const char *);
extern int getopt(int, char *const *, const char *);
extern int getsubopt(char **, char *const *, char **);
extern char *optarg;
extern int optind, opterr, optopt;
extern int getw(FILE *);
extern int putw(int, FILE *);
extern int pclose(FILE *);
extern int fseeko(FILE *, off_t, int);
extern off_t ftello(FILE *);
# 313 "include/stdio.h" 3 4
extern FILE *fopen64(const char *, const char *);
extern FILE *freopen64(const char *, const char *, FILE *);
extern FILE *tmpfile64(void);
extern int fgetpos64(FILE *, fpos64_t *);
extern int fsetpos64(FILE *, const fpos64_t *);
extern int fseeko64(FILE *, off64_t, int);
extern off64_t ftello64(FILE *);
# 46 "/opt/local/src/gcc-3.3.3/gcc/system.h" 2
# 105 "/opt/local/src/gcc-3.3.3/gcc/system.h"
# 1 "/opt/local/src/gcc-3.3.3/include/safe-ctype.h" 1
# 44 "/opt/local/src/gcc-3.3.3/include/safe-ctype.h"
enum {
_sch_isblank = 0x0001,
_sch_iscntrl = 0x0002,
_sch_isdigit = 0x0004,
_sch_islower = 0x0008,
_sch_isprint = 0x0010,
_sch_ispunct = 0x0020,
_sch_isspace = 0x0040,
_sch_isupper = 0x0080,
_sch_isxdigit = 0x0100,
_sch_isidst = 0x0200,
_sch_isvsp = 0x0400,
_sch_isnvsp = 0x0800,
_sch_isalpha = _sch_isupper|_sch_islower,
_sch_isalnum = _sch_isalpha|_sch_isdigit,
_sch_isidnum = _sch_isidst|_sch_isdigit,
_sch_isgraph = _sch_isalnum|_sch_ispunct,
_sch_iscppsp = _sch_isvsp|_sch_isnvsp,
_sch_isbasic = _sch_isprint|_sch_iscppsp
};
extern const unsigned short _sch_istable[256];
# 97 "/opt/local/src/gcc-3.3.3/include/safe-ctype.h"
extern const unsigned char _sch_toupper[256];
extern const unsigned char _sch_tolower[256];
# 106 "/opt/local/src/gcc-3.3.3/gcc/system.h" 2
# 1 "include/sys/types.h" 1 3 4
# 25 "include/sys/types.h" 3 4
#pragma ident "@(#)types.h 1.74 03/08/07 SMI"
# 1 "/usr/include/sys/machtypes.h" 1 3 4
# 16 "/usr/include/sys/machtypes.h" 3 4
#pragma ident "@(#)machtypes.h 1.13 99/05/04 SMI"
# 33 "/usr/include/sys/machtypes.h" 3 4
typedef struct _label_t { long val[2]; } label_t;
typedef unsigned char lock_t;
# 34 "include/sys/types.h" 2 3 4
# 45 "include/sys/types.h" 3 4
# 1 "/usr/include/sys/int_types.h" 1 3 4
# 9 "/usr/include/sys/int_types.h" 3 4
#pragma ident "@(#)int_types.h 1.6 97/08/20 SMI"
# 62 "/usr/include/sys/int_types.h" 3 4
typedef char int8_t;
typedef short int16_t;
typedef int int32_t;
typedef long long int64_t;
typedef unsigned char uint8_t;
typedef unsigned short uint16_t;
typedef unsigned int uint32_t;
typedef unsigned long long uint64_t;
# 94 "/usr/include/sys/int_types.h" 3 4
typedef int64_t intmax_t;
typedef uint64_t uintmax_t;
# 110 "/usr/include/sys/int_types.h" 3 4
typedef int intptr_t;
typedef unsigned int uintptr_t;
typedef char int_least8_t;
typedef short int_least16_t;
typedef int int_least32_t;
typedef long long int_least64_t;
typedef unsigned char uint_least8_t;
typedef unsigned short uint_least16_t;
typedef unsigned int uint_least32_t;
typedef unsigned long long uint_least64_t;
# 46 "include/sys/types.h" 2 3 4
# 62 "include/sys/types.h" 3 4
typedef long long longlong_t;
typedef unsigned long long u_longlong_t;
# 85 "include/sys/types.h" 3 4
typedef long t_scalar_t;
typedef unsigned long t_uscalar_t;
typedef unsigned char uchar_t;
typedef unsigned short ushort_t;
typedef unsigned int uint_t;
typedef unsigned long ulong_t;
typedef char *caddr_t;
typedef long daddr_t;
typedef short cnt_t;
# 121 "include/sys/types.h" 3 4
typedef ulong_t pfn_t;
typedef ulong_t pgcnt_t;
typedef long spgcnt_t;
typedef uchar_t use_t;
typedef short sysid_t;
typedef short index_t;
typedef void *timeout_id_t;
typedef void *bufcall_id_t;
# 159 "include/sys/types.h" 3 4
typedef ulong_t ino_t;
typedef long blkcnt_t;
typedef ulong_t fsblkcnt_t;
typedef ulong_t fsfilcnt_t;
# 177 "include/sys/types.h" 3 4
typedef u_longlong_t ino64_t;
typedef longlong_t blkcnt64_t;
typedef u_longlong_t fsblkcnt64_t;
typedef u_longlong_t fsfilcnt64_t;
typedef long blksize_t;
typedef enum { B_FALSE, B_TRUE } boolean_t;
# 204 "include/sys/types.h" 3 4
typedef int64_t pad64_t;
typedef uint64_t upad64_t;
# 217 "include/sys/types.h" 3 4
typedef longlong_t offset_t;
typedef u_longlong_t u_offset_t;
typedef u_longlong_t len_t;
typedef u_longlong_t diskaddr_t;
# 238 "include/sys/types.h" 3 4
typedef union {
offset_t _f;
struct {
int32_t _u;
int32_t _l;
} _p;
} lloff_t;
# 258 "include/sys/types.h" 3 4
typedef union {
longlong_t _f;
struct {
int32_t _u;
int32_t _l;
} _p;
} lldaddr_t;
typedef uint_t k_fltset_t;
# 281 "include/sys/types.h" 3 4
typedef long id_t;
typedef uint_t useconds_t;
typedef long suseconds_t;
# 302 "include/sys/types.h" 3 4
typedef ulong_t major_t;
typedef ulong_t minor_t;
typedef short pri_t;
# 322 "include/sys/types.h" 3 4
typedef ushort_t o_mode_t;
typedef short o_dev_t;
typedef ushort_t o_uid_t;
typedef o_uid_t o_gid_t;
typedef short o_nlink_t;
typedef short o_pid_t;
typedef ushort_t o_ino_t;
typedef int key_t;
typedef ulong_t mode_t;
typedef long uid_t;
typedef uid_t gid_t;
typedef id_t taskid_t;
typedef id_t projid_t;
typedef uint_t pthread_t;
typedef uint_t pthread_key_t;
typedef struct _pthread_mutex {
struct {
uint16_t __pthread_mutex_flag1;
uint8_t __pthread_mutex_flag2;
uint8_t __pthread_mutex_ceiling;
uint16_t __pthread_mutex_type;
uint16_t __pthread_mutex_magic;
} __pthread_mutex_flags;
union {
struct {
uint8_t __pthread_mutex_pad[8];
} __pthread_mutex_lock64;
struct {
uint32_t __pthread_ownerpid;
uint32_t __pthread_lockword;
} __pthread_mutex_lock32;
upad64_t __pthread_mutex_owner64;
} __pthread_mutex_lock;
upad64_t __pthread_mutex_data;
} pthread_mutex_t;
typedef struct _pthread_cond {
struct {
uint8_t __pthread_cond_flag[4];
uint16_t __pthread_cond_type;
uint16_t __pthread_cond_magic;
} __pthread_cond_flags;
upad64_t __pthread_cond_data;
} pthread_cond_t;
typedef struct _pthread_rwlock {
int32_t __pthread_rwlock_readers;
uint16_t __pthread_rwlock_type;
uint16_t __pthread_rwlock_magic;
pthread_mutex_t __pthread_rwlock_mutex;
pthread_cond_t __pthread_rwlock_readercv;
pthread_cond_t __pthread_rwlock_writercv;
} pthread_rwlock_t;
typedef struct _pthread_attr {
void *__pthread_attrp;
} pthread_attr_t;
typedef struct _pthread_mutexattr {
void *__pthread_mutexattrp;
} pthread_mutexattr_t;
typedef struct _pthread_condattr {
void *__pthread_condattrp;
} pthread_condattr_t;
typedef struct _once {
upad64_t __pthread_once_pad[4];
} pthread_once_t;
typedef struct _pthread_rwlockattr {
void *__pthread_rwlockattrp;
} pthread_rwlockattr_t;
typedef ulong_t dev_t;
typedef ulong_t nlink_t;
typedef long pid_t;
# 485 "include/sys/types.h" 3 4
typedef long time_t;
typedef long clock_t;
typedef int clockid_t;
typedef int timer_t;
typedef unsigned char unchar;
typedef unsigned short ushort;
typedef unsigned int uint;
typedef unsigned long ulong;
# 561 "include/sys/types.h" 3 4
typedef unsigned char u_char;
typedef unsigned short u_short;
typedef unsigned int u_int;
typedef unsigned long u_long;
typedef struct _quad { int val[2]; } quad_t;
typedef quad_t quad;
# 1 "/usr/include/sys/select.h" 1 3 4
# 15 "/usr/include/sys/select.h" 3 4
#pragma ident "@(#)select.h 1.17 01/08/15 SMI"
# 1 "/usr/include/sys/time.h" 1 3 4
# 22 "/usr/include/sys/time.h" 3 4
#pragma ident "@(#)time.h 2.70 02/01/28 SMI"
# 49 "/usr/include/sys/time.h" 3 4
struct timeval {
time_t tv_sec;
suseconds_t tv_usec;
};
# 82 "/usr/include/sys/time.h" 3 4
struct timezone {
int tz_minuteswest;
int tz_dsttime;
};
# 100 "/usr/include/sys/time.h" 3 4
# 1 "include/sys/types.h" 1 3 4
# 101 "/usr/include/sys/time.h" 2 3 4
# 153 "/usr/include/sys/time.h" 3 4
struct itimerval {
struct timeval it_interval;
struct timeval it_value;
};
# 201 "/usr/include/sys/time.h" 3 4
typedef longlong_t hrtime_t;
# 319 "/usr/include/sys/time.h" 3 4
int adjtime(struct timeval *, struct timeval *);
# 329 "/usr/include/sys/time.h" 3 4
int futimesat(int, const char *, const struct timeval *);
# 340 "/usr/include/sys/time.h" 3 4
int getitimer(int, struct itimerval *);
int utimes(const char *, const struct timeval *);
int setitimer(int, struct itimerval *, struct itimerval *);
# 377 "/usr/include/sys/time.h" 3 4
int settimeofday(struct timeval *, void *);
hrtime_t gethrtime(void);
hrtime_t gethrvtime(void);
# 397 "/usr/include/sys/time.h" 3 4
int gettimeofday(struct timeval *, void *);
# 418 "/usr/include/sys/time.h" 3 4
# 1 "/usr/include/time.h" 1 3 4
# 16 "/usr/include/time.h" 3 4
#pragma ident "@(#)time.h 1.39 99/08/10 SMI"
# 1 "/usr/include/iso/time_iso.h" 1 3 4
# 28 "/usr/include/iso/time_iso.h" 3 4
#pragma ident "@(#)time_iso.h 1.1 99/08/09 SMI"
# 69 "/usr/include/iso/time_iso.h" 3 4
struct tm {
int tm_sec;
int tm_min;
int tm_hour;
int tm_mday;
int tm_mon;
int tm_year;
int tm_wday;
int tm_yday;
int tm_isdst;
};
extern char *asctime(const struct tm *);
extern clock_t clock(void);
extern char *ctime(const time_t *);
extern double difftime(time_t, time_t);
extern struct tm *gmtime(const time_t *);
extern struct tm *localtime(const time_t *);
extern time_t mktime(struct tm *);
extern time_t time(time_t *);
extern size_t strftime(char *, size_t, const char *, const struct tm *);
# 21 "/usr/include/time.h" 2 3 4
# 67 "/usr/include/time.h" 3 4
extern char *strptime(const char *, const char *, struct tm *);
# 83 "/usr/include/time.h" 3 4
# 1 "/usr/include/sys/time_impl.h" 1 3 4
# 19 "/usr/include/sys/time_impl.h" 3 4
#pragma ident "@(#)time_impl.h 1.7 01/09/06 SMI"
# 38 "/usr/include/sys/time_impl.h" 3 4
typedef struct timespec {
time_t tv_sec;
long tv_nsec;
} timespec_t;
# 62 "/usr/include/sys/time_impl.h" 3 4
typedef struct timespec timestruc_t;
# 77 "/usr/include/sys/time_impl.h" 3 4
typedef struct itimerspec {
struct timespec it_interval;
struct timespec it_value;
} itimerspec_t;
# 84 "/usr/include/time.h" 2 3 4
# 98 "/usr/include/time.h" 3 4
union sigval {
int sival_int;
void *sival_ptr;
};
struct sigevent {
int sigev_notify;
int sigev_signo;
union sigval sigev_value;
void (*sigev_notify_function)(union sigval);
pthread_attr_t *sigev_notify_attributes;
int __sigev_pad2;
};
extern int clock_getres(clockid_t, struct timespec *);
extern int clock_gettime(clockid_t, struct timespec *);
extern int clock_settime(clockid_t, const struct timespec *);
extern int timer_create(clockid_t, struct sigevent *, timer_t *);
extern int timer_delete(timer_t);
extern int timer_getoverrun(timer_t);
extern int timer_gettime(timer_t, struct itimerspec *);
extern int timer_settime(timer_t, int, const struct itimerspec *,
struct itimerspec *);
extern int nanosleep(const struct timespec *, struct timespec *);
extern void tzset(void);
extern char *tzname[2];
extern long _sysconf(int);
extern long timezone;
extern int daylight;
extern int cftime(char *, char *, const time_t *);
extern int ascftime(char *, const char *, const struct tm *);
extern long altzone;
extern struct tm *getdate(const char *);
extern int getdate_err;
# 419 "/usr/include/sys/time.h" 2 3 4
# 431 "/usr/include/sys/time.h" 3 4
# 1 "/usr/include/sys/select.h" 1 3 4
# 432 "/usr/include/sys/time.h" 2 3 4
# 21 "/usr/include/sys/select.h" 2 3 4
# 48 "/usr/include/sys/select.h" 3 4
typedef long fd_mask;
typedef long fds_mask;
# 76 "/usr/include/sys/select.h" 3 4
typedef struct fd_set {
long fds_bits[(((1024)+(((sizeof (fds_mask) * 8))-1))/((sizeof (fds_mask) * 8)))];
} fd_set;
# 100 "/usr/include/sys/select.h" 3 4
extern int select(int, fd_set *, fd_set *, fd_set *, struct timeval *);
# 574 "include/sys/types.h" 2 3 4
# 108 "/opt/local/src/gcc-3.3.3/gcc/system.h" 2
# 1 "/usr/include/errno.h" 1 3 4
# 17 "/usr/include/errno.h" 3 4
#pragma ident "@(#)errno.h 1.16 99/07/26 SMI"
# 1 "/usr/include/sys/errno.h" 1 3 4
# 9 "/usr/include/sys/errno.h" 3 4
#pragma ident "@(#)errno.h 1.20 00/01/12 SMI"
# 24 "/usr/include/errno.h" 2 3 4
# 41 "/usr/include/errno.h" 3 4
extern int errno;
# 110 "/opt/local/src/gcc-3.3.3/gcc/system.h" 2
# 1 "/usr/include/string.h" 1 3 4
# 16 "/usr/include/string.h" 3 4
#pragma ident "@(#)string.h 1.24 99/08/10 SMI"
# 1 "/usr/include/iso/string_iso.h" 1 3 4
# 28 "/usr/include/iso/string_iso.h" 3 4
#pragma ident "@(#)string_iso.h 1.2 99/11/09 SMI"
# 60 "/usr/include/iso/string_iso.h" 3 4
extern int memcmp(const void *, const void *, size_t);
extern void *memcpy(void *, const void *, size_t);
extern void *memmove(void *, const void *, size_t);
extern void *memset(void *, int, size_t);
extern char *strcat(char *, const char *);
extern int strcmp(const char *, const char *);
extern char *strcpy(char *, const char *);
extern int strcoll(const char *, const char *);
extern size_t strcspn(const char *, const char *);
extern char *strerror(int);
extern size_t strlen(const char *);
extern char *strncat(char *, const char *, size_t);
extern int strncmp(const char *, const char *, size_t);
extern char *strncpy(char *, const char *, size_t);
extern size_t strspn(const char *, const char *);
extern char *strtok(char *, const char *);
extern size_t strxfrm(char *, const char *, size_t);
# 112 "/usr/include/iso/string_iso.h" 3 4
extern void *memchr(const void *, int, size_t);
extern char *strchr(const char *, int);
extern char *strpbrk(const char *, const char *);
extern char *strrchr(const char *, int);
extern char *strstr(const char *, const char *);
# 19 "/usr/include/string.h" 2 3 4
# 63 "/usr/include/string.h" 3 4
extern void *memccpy(void *, const void *, int, size_t);
extern char *strsignal(int);
extern int ffs(int);
extern int strcasecmp(const char *, const char *);
extern int strncasecmp(const char *, const char *, size_t);
extern size_t strlcpy(char *, const char *, size_t);
extern size_t strlcat(char *, const char *, size_t);
extern char *strdup(const char *);
# 117 "/opt/local/src/gcc-3.3.3/gcc/system.h" 2
# 1 "/usr/include/strings.h" 1 3 4
# 9 "/usr/include/strings.h" 3 4
#pragma ident "@(#)strings.h 1.3 96/03/12 SMI"
# 24 "/usr/include/strings.h" 3 4
extern int bcmp(const void *, const void *, size_t);
extern void bcopy(const void *, void *, size_t);
extern void bzero(void *, size_t);
extern char *index(const char *, int);
extern char *rindex(const char *, int);
# 118 "/opt/local/src/gcc-3.3.3/gcc/system.h" 2
# 129 "/opt/local/src/gcc-3.3.3/gcc/system.h"
# 1 "/usr/include/stdlib.h" 1 3 4
# 16 "/usr/include/stdlib.h" 3 4
#pragma ident "@(#)stdlib.h 1.48 00/04/13 SMI"
# 1 "include/iso/stdlib_iso.h" 1 3 4
# 37 "include/iso/stdlib_iso.h" 3 4
#pragma ident "@(#)stdlib_iso.h 1.3 01/03/09 SMI"
# 46 "include/iso/stdlib_iso.h" 3 4
extern unsigned char __ctype[];
# 57 "include/iso/stdlib_iso.h" 3 4
typedef struct {
int quot;
int rem;
} div_t;
typedef struct {
long quot;
long rem;
} ldiv_t;
# 103 "include/iso/stdlib_iso.h" 3 4
extern void abort(void);
extern int abs(int);
extern int atexit(void (*)(void));
extern double atof(const char *);
extern int atoi(const char *);
extern long int atol(const char *);
extern void *bsearch(const void *, const void *, size_t, size_t,
int (*)(const void *, const void *));
extern void *calloc(size_t, size_t);
extern div_t div(int, int);
extern void exit(int);
extern void free(void *);
extern char *getenv(const char *);
extern long int labs(long);
extern ldiv_t ldiv(long, long);
extern void *malloc(size_t);
extern int mblen(const char *, size_t);
extern size_t mbstowcs(wchar_t *, const char *, size_t);
extern int mbtowc(wchar_t *, const char *, size_t);
extern void qsort(void *, size_t, size_t,
int (*)(const void *, const void *));
extern int rand(void);
extern void *realloc(void *, size_t);
extern void srand(unsigned int);
extern double strtod(const char *, char **);
extern long int strtol(const char *, char **, int);
extern unsigned long int strtoul(const char *, char **, int);
extern int system(const char *);
extern int wctomb(char *, wchar_t);
extern size_t wcstombs(char *, const wchar_t *, size_t);
# 19 "/usr/include/stdlib.h" 2 3 4
# 68 "/usr/include/stdlib.h" 3 4
typedef struct {
long long quot;
long long rem;
} lldiv_t;
# 112 "/usr/include/stdlib.h" 3 4
extern void _exithandle(void);
extern double drand48(void);
extern double erand48(unsigned short *);
extern long jrand48(unsigned short *);
extern void lcong48(unsigned short *);
extern long lrand48(void);
extern long mrand48(void);
extern long nrand48(unsigned short *);
extern unsigned short *seed48(unsigned short *);
extern void srand48(long);
extern int putenv(char *);
extern void setkey(const char *);
# 144 "/usr/include/stdlib.h" 3 4
extern void swab(const char *, char *, ssize_t);
extern int mkstemp(char *);
extern int mkstemp64(char *);
extern long a64l(const char *);
extern char *ecvt(double, int, int *, int *);
extern char *fcvt(double, int, int *, int *);
extern char *gcvt(double, int, char *);
extern int getsubopt(char **, char *const *, char **);
extern int grantpt(int);
extern char *initstate(unsigned, char *, size_t);
extern char *l64a(long);
extern char *mktemp(char *);
extern char *ptsname(int);
extern long random(void);
extern char *realpath(const char *, char *);
extern char *setstate(const char *);
extern void srandom(unsigned);
extern int ttyslot(void);
extern int unlockpt(int);
extern void *valloc(size_t);
extern void closefrom(int);
extern int dup2(int, int);
extern int fdwalk(int (*)(void *, int), void *);
extern char *qecvt(long double, int, int *, int *);
extern char *qfcvt(long double, int, int *, int *);
extern char *qgcvt(long double, int, char *);
extern char *getcwd(char *, size_t);
extern const char *getexecname(void);
extern char *getlogin(void);
extern int getopt(int, char *const *, const char *);
extern char *optarg;
extern int optind, opterr, optopt;
extern char *getpass(const char *);
extern char *getpassphrase(const char *);
extern int getpw(uid_t, char *);
extern int isatty(int);
extern void *memalign(size_t, size_t);
extern char *ttyname(int);
extern long long atoll(const char *);
extern long long llabs(long long);
extern lldiv_t lldiv(long long, long long);
extern char *lltostr(long long, char *);
extern long long strtoll(const char *, char **, int);
extern unsigned long long strtoull(const char *, char **, int);
extern char *ulltostr(unsigned long long, char *);
# 130 "/opt/local/src/gcc-3.3.3/gcc/system.h" 2
# 152 "/opt/local/src/gcc-3.3.3/gcc/system.h"
# 1 "/usr/include/unistd.h" 1 3 4
# 16 "/usr/include/unistd.h" 3 4
#pragma ident "@(#)unistd.h 1.60 01/07/29 SMI"
# 1 "/usr/include/sys/unistd.h" 1 3 4
# 25 "/usr/include/sys/unistd.h" 3 4
#pragma ident "@(#)unistd.h 1.39 01/07/29 SMI"
# 22 "/usr/include/unistd.h" 2 3 4
# 171 "/usr/include/unistd.h" 3 4
extern int access(const char *, int);
extern int acct(const char *);
extern unsigned alarm(unsigned);
extern int brk(void *);
extern int chdir(const char *);
extern int chown(const char *, uid_t, gid_t);
extern int chroot(const char *);
extern int close(int);
extern char *ctermid(char *);
extern char *cuserid(char *);
extern int dup(int);
extern int dup2(int, int);
extern int execl(const char *, const char *, ...);
extern int execle(const char *, const char *, ...);
extern int execlp(const char *, const char *, ...);
extern int execv(const char *, char *const *);
extern int execve(const char *, char *const *, char *const *);
extern int execvp(const char *, char *const *);
extern void _exit(int);
extern int fattach(int, const char *);
extern int fchdir(int);
extern int fchown(int, uid_t, gid_t);
extern int fchownat(int, const char *, uid_t, gid_t, int);
extern int fchroot(int);
extern int fdatasync(int);
# 247 "/usr/include/unistd.h" 3 4
extern int fdetach(const char *);
extern pid_t fork(void);
extern pid_t fork1(void);
extern long fpathconf(int, int);
extern int fsync(int);
extern int ftruncate(int, off_t);
extern char *getcwd(char *, size_t);
extern int getdtablesize(void);
extern gid_t getegid(void);
extern uid_t geteuid(void);
extern gid_t getgid(void);
extern int getgroups(int, gid_t *);
extern long gethostid(void);
extern int gethostname(char *, int);
extern char *getlogin(void);
# 293 "/usr/include/unistd.h" 3 4
extern int getpagesize(void);
extern pid_t getpgid(pid_t);
extern pid_t getpid(void);
extern pid_t getppid(void);
extern pid_t getpgrp(void);
char *gettxt(const char *, const char *);
extern pid_t getsid(pid_t);
extern uid_t getuid(void);
extern char *getwd(char *);
# 319 "/usr/include/unistd.h" 3 4
extern int ioctl(int, int, ...);
extern int isaexec(const char *, char *const *, char *const *);
extern int issetugid(void);
extern int isatty(int);
extern int link(const char *, const char *);
extern int lchown(const char *, uid_t, gid_t);
extern int lockf(int, int, off_t);
extern int readlink(const char *, char *, size_t);
extern off_t lseek(int, off_t, int);
extern int nice(int);
extern long pathconf(const char *, int);
extern int pause(void);
extern int pipe(int *);
extern offset_t llseek(int, offset_t, int);
extern off_t tell(int);
extern int mincore(caddr_t, size_t, char *);
extern ssize_t pread(int, void *, size_t, off_t);
extern void profil(unsigned short *, size_t, unsigned long, unsigned int);
extern int pthread_atfork(void (*) (void), void (*) (void), void (*) (void));
extern long ptrace(int, pid_t, long, long);
extern ssize_t pwrite(int, const void *, size_t, off_t);
extern ssize_t read(int, void *, size_t);
extern int rename(const char *, const char *);
extern int renameat(int, const char *, int, const char *);
extern int resolvepath(const char *, char *, size_t);
extern int rmdir(const char *);
extern void *sbrk(intptr_t);
extern int setgid(gid_t);
extern int setegid(gid_t);
extern int setgroups(int, const gid_t *);
extern int setpgid(pid_t, pid_t);
extern pid_t setpgrp(void);
extern int setregid(gid_t, gid_t);
extern int setreuid(uid_t, uid_t);
extern pid_t setsid(void);
extern int setuid(uid_t);
extern int seteuid(uid_t);
extern unsigned sleep(unsigned);
extern int stime(const time_t *);
extern int symlink(const char *, const char *);
extern void sync(void);
extern long sysconf(int);
# 447 "/usr/include/unistd.h" 3 4
extern pid_t tcgetpgrp(int);
extern int tcsetpgrp(int, pid_t);
extern off_t tell(int);
extern int truncate(const char *, off_t);
extern char *ttyname(int);
extern useconds_t ualarm(useconds_t, useconds_t);
extern int unlink(const char *);
extern int unlinkat(int, const char *, int);
extern int usleep(useconds_t);
extern pid_t vfork(void);
extern void vhangup(void);
extern ssize_t write(int, const void *, size_t);
extern void yield(void);
extern int ftruncate64(int, off64_t);
extern off64_t lseek64(int, off64_t, int);
extern ssize_t pread64(int, void *, size_t, off64_t);
extern ssize_t pwrite64(int, const void *, size_t, off64_t);
extern off64_t tell64(int);
extern int truncate64(const char *, off64_t);
extern int lockf64(int, int, off64_t);
# 808 "/usr/include/unistd.h" 3 4
#pragma unknown_control_flow(vfork)
# 153 "/opt/local/src/gcc-3.3.3/gcc/system.h" 2
# 1 "/usr/include/sys/param.h" 1 3 4
# 37 "/usr/include/sys/param.h" 3 4
#pragma ident "@(#)param.h 1.77 02/01/22 SMI"
# 430 "/usr/include/sys/param.h" 3 4
extern long _sysconf(int);
# 157 "/opt/local/src/gcc-3.3.3/gcc/system.h" 2
# 1 "include/limits.h" 1 3 4
# 11 "include/limits.h" 3 4
# 1 "include/syslimits.h" 1 3 4
# 25 "include/syslimits.h" 3 4
#pragma ident "@(#)limits.h 1.52 02/01/08 SMI"
# 1 "/usr/include/iso/limits_iso.h" 1 3 4
# 28 "/usr/include/iso/limits_iso.h" 3 4
#pragma ident "@(#)limits_iso.h 1.1 99/08/09 SMI"
# 30 "include/syslimits.h" 2 3 4
# 41 "include/syslimits.h" 3 4
# 1 "/usr/include/sys/int_limits.h" 1 3 4
# 9 "/usr/include/sys/int_limits.h" 3 4
#pragma ident "@(#)int_limits.h 1.6 99/08/06 SMI"
# 42 "include/syslimits.h" 2 3 4
# 12 "include/limits.h" 2 3 4
# 163 "/opt/local/src/gcc-3.3.3/gcc/system.h" 2
# 1 "/opt/local/src/gcc-3.3.3/gcc/hwint.h" 1
# 167 "/opt/local/src/gcc-3.3.3/gcc/system.h" 2
# 208 "/opt/local/src/gcc-3.3.3/gcc/system.h"
# 1 "/usr/include/fcntl.h" 1 3 4
# 16 "/usr/include/fcntl.h" 3 4
#pragma ident "@(#)fcntl.h 1.15 01/07/29 SMI"
# 1 "/usr/include/sys/fcntl.h" 1 3 4
# 16 "/usr/include/sys/fcntl.h" 3 4
#pragma ident "@(#)fcntl.h 1.48 01/12/17 SMI"
# 172 "/usr/include/sys/fcntl.h" 3 4
typedef struct flock {
short l_type;
short l_whence;
off_t l_start;
off_t l_len;
int l_sysid;
pid_t l_pid;
long l_pad[4];
} flock_t;
# 202 "/usr/include/sys/fcntl.h" 3 4
typedef struct flock64 {
short l_type;
short l_whence;
off64_t l_start;
off64_t l_len;
int l_sysid;
pid_t l_pid;
long l_pad[4];
} flock64_t;
# 280 "/usr/include/sys/fcntl.h" 3 4
typedef struct fshare {
short f_access;
short f_deny;
int f_id;
} fshare_t;
# 25 "/usr/include/fcntl.h" 2 3 4
# 92 "/usr/include/fcntl.h" 3 4
extern int fcntl(int, int, ...);
extern int open(const char *, int, ...);
extern int creat(const char *, mode_t);
extern int openat(int, const char *, int, ...);
extern int attropen(const char *, const char *, int, ...);
extern int directio(int, int);
extern int open64(const char *, int, ...);
extern int creat64(const char *, mode_t);
extern int openat64(int, const char *, int, ...);
extern int attropen64(const char *, const char *, int, ...);
# 209 "/opt/local/src/gcc-3.3.3/gcc/system.h" 2
# 246 "/opt/local/src/gcc-3.3.3/gcc/system.h"
# 1 "/usr/include/sys/wait.h" 1 3 4
# 16 "/usr/include/sys/wait.h" 3 4
#pragma ident "@(#)wait.h 1.21 97/04/08 SMI"
# 1 "/usr/include/sys/resource.h" 1 3 4
# 16 "/usr/include/sys/resource.h" 3 4
#pragma ident "@(#)resource.h 1.27 01/04/05 SMI"
# 69 "/usr/include/sys/resource.h" 3 4
typedef unsigned long rlim_t;
# 104 "/usr/include/sys/resource.h" 3 4
struct rlimit {
rlim_t rlim_cur;
rlim_t rlim_max;
};
typedef u_longlong_t rlim64_t;
struct rlimit64 {
rlim64_t rlim_cur;
rlim64_t rlim_max;
};
# 141 "/usr/include/sys/resource.h" 3 4
struct rusage {
struct timeval ru_utime;
struct timeval ru_stime;
long ru_maxrss;
long ru_ixrss;
long ru_idrss;
long ru_isrss;
long ru_minflt;
long ru_majflt;
long ru_nswap;
long ru_inblock;
long ru_oublock;
long ru_msgsnd;
long ru_msgrcv;
long ru_nsignals;
long ru_nvcsw;
long ru_nivcsw;
};
# 191 "/usr/include/sys/resource.h" 3 4
extern int setrlimit(int, const struct rlimit *);
extern int getrlimit(int, struct rlimit *);
extern int setrlimit64(int, const struct rlimit64 *);
extern int getrlimit64(int, struct rlimit64 *);
extern int getpriority(int, id_t);
extern int setpriority(int, id_t, int);
extern int getrusage(int, struct rusage *);
# 25 "/usr/include/sys/wait.h" 2 3 4
# 1 "/usr/include/sys/siginfo.h" 1 3 4
# 16 "/usr/include/sys/siginfo.h" 3 4
#pragma ident "@(#)siginfo.h 1.55 01/04/05 SMI"
# 127 "/usr/include/sys/siginfo.h" 3 4
# 1 "/usr/include/sys/machsig.h" 1 3 4
# 16 "/usr/include/sys/machsig.h" 3 4
#pragma ident "@(#)machsig.h 1.15 99/08/15 SMI"
# 128 "/usr/include/sys/siginfo.h" 2 3 4
# 222 "/usr/include/sys/siginfo.h" 3 4
typedef struct siginfo {
int si_signo;
int si_code;
int si_errno;
union {
int __pad[((128 / sizeof (int)) - 3)];
struct {
pid_t __pid;
union {
struct {
uid_t __uid;
union sigval __value;
} __kill;
struct {
clock_t __utime;
int __status;
clock_t __stime;
} __cld;
} __pdata;
} __proc;
struct {
void *__addr;
int __trapno;
caddr_t __pc;
} __fault;
struct {
int __fd;
long __band;
} __file;
struct {
caddr_t __faddr;
timestruc_t __tstamp;
short __syscall;
char __nsysarg;
char __fault;
long __sysarg[8];
int __mstate[10];
} __prof;
struct {
int32_t __entity;
} __rctl;
} __data;
} siginfo_t;
# 362 "/usr/include/sys/siginfo.h" 3 4
typedef struct k_siginfo {
int si_signo;
int si_code;
int si_errno;
union {
struct {
pid_t __pid;
union {
struct {
uid_t __uid;
union sigval __value;
} __kill;
struct {
clock_t __utime;
int __status;
clock_t __stime;
} __cld;
} __pdata;
} __proc;
struct {
void *__addr;
int __trapno;
caddr_t __pc;
} __fault;
struct {
int __fd;
long __band;
} __file;
struct {
caddr_t __faddr;
timestruc_t __tstamp;
short __syscall;
char __nsysarg;
char __fault;
} __prof;
struct {
int32_t __entity;
} __rctl;
} __data;
} k_siginfo_t;
typedef struct sigqueue {
struct sigqueue *sq_next;
k_siginfo_t sq_info;
void (*sq_func)(struct sigqueue *);
void *sq_backptr;
} sigqueue_t;
# 26 "/usr/include/sys/wait.h" 2 3 4
# 1 "/usr/include/sys/procset.h" 1 3 4
# 16 "/usr/include/sys/procset.h" 3 4
#pragma ident "@(#)procset.h 1.20 00/01/11 SMI"
# 41 "/usr/include/sys/procset.h" 3 4
typedef enum
idtype
{
P_PID,
P_PPID,
P_PGID,
P_SID,
P_CID,
P_UID,
P_GID,
P_ALL,
P_LWPID,
P_TASKID,
P_PROJID
} idtype_t;
# 67 "/usr/include/sys/procset.h" 3 4
typedef enum idop {
POP_DIFF,
POP_AND,
POP_OR,
POP_XOR
} idop_t;
typedef struct procset {
idop_t p_op;
idtype_t p_lidtype;
id_t p_lid;
idtype_t p_ridtype;
id_t p_rid;
} procset_t;
# 27 "/usr/include/sys/wait.h" 2 3 4
# 86 "/usr/include/sys/wait.h" 3 4
extern pid_t wait(int *);
extern pid_t waitpid(pid_t, int *, int);
extern int waitid(idtype_t, id_t, siginfo_t *, int);
extern pid_t wait3(int *, int, struct rusage *);
extern pid_t wait4(pid_t, int *, int, struct rusage *);
# 247 "/opt/local/src/gcc-3.3.3/gcc/system.h" 2
# 313 "/opt/local/src/gcc-3.3.3/gcc/system.h"
# 1 "/usr/include/malloc.h" 1 3 4
# 11 "/usr/include/malloc.h" 3 4
#pragma ident "@(#)malloc.h 1.11 97/08/23 SMI"
# 31 "/usr/include/malloc.h" 3 4
struct mallinfo {
unsigned long arena;
unsigned long ordblks;
unsigned long smblks;
unsigned long hblks;
unsigned long hblkhd;
unsigned long usmblks;
unsigned long fsmblks;
unsigned long uordblks;
unsigned long fordblks;
unsigned long keepcost;
};
void *malloc(size_t);
void free(void *);
void *realloc(void *, size_t);
int mallopt(int, int);
struct mallinfo mallinfo(void);
void *calloc(size_t, size_t);
# 314 "/opt/local/src/gcc-3.3.3/gcc/system.h" 2
# 382 "/opt/local/src/gcc-3.3.3/gcc/system.h"
# 1 "/usr/include/sys/stat.h" 1 3 4
# 18 "/usr/include/sys/stat.h" 3 4
#pragma ident "@(#)stat.h 1.3 01/07/29 SMI"
# 250 "/usr/include/sys/stat.h" 3 4
struct stat {
dev_t st_dev;
long st_pad1[3];
ino_t st_ino;
mode_t st_mode;
nlink_t st_nlink;
uid_t st_uid;
gid_t st_gid;
dev_t st_rdev;
long st_pad2[2];
off_t st_size;
long st_pad3;
timestruc_t st_atim;
timestruc_t st_mtim;
timestruc_t st_ctim;
blksize_t st_blksize;
blkcnt_t st_blocks;
char st_fstype[16];
long st_pad4[8];
};
# 313 "/usr/include/sys/stat.h" 3 4
struct stat64 {
dev_t st_dev;
long st_pad1[3];
ino64_t st_ino;
mode_t st_mode;
nlink_t st_nlink;
uid_t st_uid;
gid_t st_gid;
dev_t st_rdev;
long st_pad2[2];
off64_t st_size;
timestruc_t st_atim;
timestruc_t st_mtim;
timestruc_t st_ctim;
blksize_t st_blksize;
blkcnt64_t st_blocks;
char st_fstype[16];
long st_pad4[8];
};
# 486 "/usr/include/sys/stat.h" 3 4
extern int fchmod(int, mode_t);
extern int chmod(const char *, mode_t);
extern int mkdir(const char *, mode_t);
extern int mkfifo(const char *, mode_t);
extern mode_t umask(mode_t);
extern int fstat64(int, struct stat64 *);
extern int stat64(const char *, struct stat64 *);
extern int lstat64(const char *, struct stat64 *);
extern int fstatat64(int, const char *, struct stat64 *, int);
# 533 "/usr/include/sys/stat.h" 3 4
# 1 "/usr/include/sys/stat_impl.h" 1 3 4
# 9 "/usr/include/sys/stat_impl.h" 3 4
#pragma ident "@(#)stat_impl.h 1.2 01/07/29 SMI"
# 26 "/usr/include/sys/stat_impl.h" 3 4
extern int fstat(int, struct stat *);
extern int stat(const char *, struct stat *);
extern int fstatat(int, const char *, struct stat *, int);
extern int lstat(const char *, struct stat *);
extern int mknod(const char *, mode_t, dev_t);
# 534 "/usr/include/sys/stat.h" 2 3 4
# 383 "/opt/local/src/gcc-3.3.3/gcc/system.h" 2
# 491 "/opt/local/src/gcc-3.3.3/gcc/system.h"
# 1 "/opt/local/src/gcc-3.3.3/include/libiberty.h" 1
# 46 "/opt/local/src/gcc-3.3.3/include/libiberty.h"
# 1 "include/stddef.h" 1 3 4
# 47 "/opt/local/src/gcc-3.3.3/include/libiberty.h" 2
extern char **buildargv (const char *) __attribute__ ((__malloc__));
extern void freeargv (char **);
extern char **dupargv (char **) __attribute__ ((__malloc__));
# 78 "/opt/local/src/gcc-3.3.3/include/libiberty.h"
extern char *basename (const char *);
extern const char *lbasename (const char *);
extern char *lrealpath (const char *);
extern char *concat (const char *, ...) __attribute__ ((__malloc__));
# 105 "/opt/local/src/gcc-3.3.3/include/libiberty.h"
extern char *reconcat (char *, const char *, ...) __attribute__ ((__malloc__));
extern unsigned long concat_length (const char *, ...);
extern char *concat_copy (char *, const char *, ...);
extern char *concat_copy2 (const char *, ...);
extern char *libiberty_concat_ptr;
# 141 "/opt/local/src/gcc-3.3.3/include/libiberty.h"
extern int fdmatch (int fd1, int fd2);
extern char * getpwd (void);
extern long get_run_time (void);
extern char *make_relative_prefix (const char *, const char *, const char *);
extern char *choose_temp_base (void) __attribute__ ((__malloc__));
extern char *make_temp_file (const char *) __attribute__ ((__malloc__));
extern const char *spaces (int count);
extern int errno_max (void);
extern const char *strerrno (int);
extern int strtoerrno (const char *);
extern char *xstrerror (int);
extern int signo_max (void);
# 203 "/opt/local/src/gcc-3.3.3/include/libiberty.h"
extern const char *strsigno (int);
extern int strtosigno (const char *);
extern int xatexit (void (*fn) (void));
extern void xexit (int status) __attribute__ ((__noreturn__));
extern void xmalloc_set_program_name (const char *);
extern void xmalloc_failed (size_t) __attribute__ ((__noreturn__));
extern void * xmalloc (size_t) __attribute__ ((__malloc__));
extern void * xrealloc (void *, size_t);
extern void * xcalloc (size_t, size_t) __attribute__ ((__malloc__));
extern char *xstrdup (const char *) __attribute__ ((__malloc__));
extern void * xmemdup (const void *, size_t, size_t) __attribute__ ((__malloc__));
extern double physmem_total (void);
extern double physmem_available (void);
extern const char _hex_value[256];
extern void hex_init (void);
# 274 "/opt/local/src/gcc-3.3.3/include/libiberty.h"
extern int pexecute (const char *, char * const *, const char *, const char *, char **, char **, int);
extern int pwait (int, int *, int);
extern int asprintf (char **, const char *, ...) __attribute__ ((__format__ (__printf__, 2, 3))) __attribute__ ((__nonnull__ (2)));
extern int vasprintf (char **, const char *, va_list)
__attribute__ ((__format__ (__printf__, 2, 0))) __attribute__ ((__nonnull__ (2)));
# 304 "/opt/local/src/gcc-3.3.3/include/libiberty.h"
extern void * C_alloca (size_t) __attribute__ ((__malloc__));
# 492 "/opt/local/src/gcc-3.3.3/gcc/system.h" 2
# 1 "/opt/local/src/gcc-3.3.3/include/symcat.h" 1
# 493 "/opt/local/src/gcc-3.3.3/gcc/system.h" 2
# 548 "/opt/local/src/gcc-3.3.3/gcc/system.h"
# 1 "include/stdbool.h" 1 3 4
# 549 "/opt/local/src/gcc-3.3.3/gcc/system.h" 2
# 585 "/opt/local/src/gcc-3.3.3/gcc/system.h"
# 594 "/opt/local/src/gcc-3.3.3/gcc/system.h"
# 587 "/opt/local/src/gcc-3.3.3/gcc/system.h"
# 598 "/opt/local/src/gcc-3.3.3/gcc/system.h"
# 381 "/opt/local/src/gcc-3.3.3/gcc/system.h"
# 614 "/opt/local/src/gcc-3.3.3/gcc/system.h"
# 381 "/opt/local/src/gcc-3.3.3/gcc/system.h"
# 629 "/opt/local/src/gcc-3.3.3/gcc/system.h"
# 616 "/opt/local/src/gcc-3.3.3/gcc/system.h"
# 640 "/opt/local/src/gcc-3.3.3/gcc/system.h"
# 616 "/opt/local/src/gcc-3.3.3/gcc/system.h"
# 91 "/opt/local/src/gcc-3.3.3/gcc/reload.c" 2
# 1 "/opt/local/src/gcc-3.3.3/gcc/rtl.h" 1
# 25 "/opt/local/src/gcc-3.3.3/gcc/rtl.h"
struct function;
# 1 "/opt/local/src/gcc-3.3.3/gcc/machmode.h" 1
# 29 "/opt/local/src/gcc-3.3.3/gcc/machmode.h"
enum machine_mode {
# 1 "/opt/local/src/gcc-3.3.3/gcc/machmode.def" 1
# 74 "/opt/local/src/gcc-3.3.3/gcc/machmode.def"
VOIDmode,
BImode,
QImode,
HImode,
SImode,
DImode,
TImode,
OImode,
PQImode,
PHImode,
PSImode,
PDImode,
QFmode,
HFmode,
TQFmode,
SFmode,
DFmode,
XFmode,
TFmode,
QCmode,
HCmode,
SCmode,
DCmode,
XCmode,
TCmode,
CQImode,
CHImode,
CSImode,
CDImode,
CTImode,
COImode,
V1DImode,
V2QImode,
V2HImode,
V2SImode,
V2DImode,
V4QImode,
V4HImode,
V4SImode,
V4DImode,
V8QImode,
V8HImode,
V8SImode,
V8DImode,
V16QImode,
V2SFmode,
V2DFmode,
V4SFmode,
V4DFmode,
V8SFmode,
V8DFmode,
V16SFmode,
BLKmode,
# 158 "/opt/local/src/gcc-3.3.3/gcc/machmode.def"
CCmode,
# 1 "/opt/local/src/gcc-3.3.3/gcc/config/sparc/sparc-modes.def" 1
# 37 "/opt/local/src/gcc-3.3.3/gcc/config/sparc/sparc-modes.def"
CCXmode,
CC_NOOVmode,
CCX_NOOVmode,
CCFPmode,
CCFPEmode,
# 165 "/opt/local/src/gcc-3.3.3/gcc/machmode.def" 2
# 31 "/opt/local/src/gcc-3.3.3/gcc/machmode.h" 2
MAX_MACHINE_MODE };
# 41 "/opt/local/src/gcc-3.3.3/gcc/machmode.h"
extern const char * const mode_name[(int) MAX_MACHINE_MODE];
enum mode_class { MODE_RANDOM, MODE_INT, MODE_FLOAT, MODE_PARTIAL_INT, MODE_CC,
MODE_COMPLEX_INT, MODE_COMPLEX_FLOAT,
MODE_VECTOR_INT, MODE_VECTOR_FLOAT,
MAX_MODE_CLASS};
extern const enum mode_class mode_class[(int) MAX_MACHINE_MODE];
# 89 "/opt/local/src/gcc-3.3.3/gcc/machmode.h"
extern const unsigned char mode_size[(int) MAX_MACHINE_MODE];
extern const unsigned char mode_unit_size[(int) MAX_MACHINE_MODE];
# 105 "/opt/local/src/gcc-3.3.3/gcc/machmode.h"
extern const unsigned short mode_bitsize[(int) MAX_MACHINE_MODE];
# 115 "/opt/local/src/gcc-3.3.3/gcc/machmode.h"
extern const unsigned long long mode_mask_array[(int) MAX_MACHINE_MODE];
extern const enum machine_mode inner_mode_array[(int) MAX_MACHINE_MODE];
# 132 "/opt/local/src/gcc-3.3.3/gcc/machmode.h"
extern const unsigned char mode_wider_mode[(int) MAX_MACHINE_MODE];
extern enum machine_mode mode_for_size (unsigned int, enum mode_class, int);
extern enum machine_mode smallest_mode_for_size
(unsigned int, enum mode_class);
extern enum machine_mode int_mode_for_mode (enum machine_mode);
extern enum machine_mode get_best_mode (int, int, unsigned int, enum machine_mode, int);
extern unsigned get_mode_alignment (enum machine_mode);
extern const enum machine_mode class_narrowest_mode[(int) MAX_MODE_CLASS];
extern enum machine_mode byte_mode;
extern enum machine_mode word_mode;
extern enum machine_mode ptr_mode;
# 28 "/opt/local/src/gcc-3.3.3/gcc/rtl.h" 2
# 41 "/opt/local/src/gcc-3.3.3/gcc/rtl.h"
enum rtx_code {
# 1 "/opt/local/src/gcc-3.3.3/gcc/rtl.def" 1
# 70 "/opt/local/src/gcc-3.3.3/gcc/rtl.def"
UNKNOWN ,
NIL ,
INCLUDE ,
EXPR_LIST ,
INSN_LIST ,
# 129 "/opt/local/src/gcc-3.3.3/gcc/rtl.def"
MATCH_OPERAND ,
MATCH_SCRATCH ,
MATCH_DUP ,
MATCH_OPERATOR ,
# 158 "/opt/local/src/gcc-3.3.3/gcc/rtl.def"
MATCH_PARALLEL ,
MATCH_OP_DUP ,
MATCH_PAR_DUP ,
MATCH_INSN ,
# 192 "/opt/local/src/gcc-3.3.3/gcc/rtl.def"
DEFINE_INSN ,
DEFINE_PEEPHOLE ,
# 211 "/opt/local/src/gcc-3.3.3/gcc/rtl.def"
DEFINE_SPLIT ,
# 239 "/opt/local/src/gcc-3.3.3/gcc/rtl.def"
DEFINE_INSN_AND_SPLIT ,
DEFINE_PEEPHOLE2 ,
DEFINE_COMBINE ,
# 260 "/opt/local/src/gcc-3.3.3/gcc/rtl.def"
DEFINE_EXPAND ,
# 276 "/opt/local/src/gcc-3.3.3/gcc/rtl.def"
DEFINE_DELAY ,
# 317 "/opt/local/src/gcc-3.3.3/gcc/rtl.def"
DEFINE_FUNCTION_UNIT ,
DEFINE_ASM_ATTRIBUTES ,
# 333 "/opt/local/src/gcc-3.3.3/gcc/rtl.def"
DEFINE_COND_EXEC ,
SEQUENCE ,
ADDRESS ,
# 358 "/opt/local/src/gcc-3.3.3/gcc/rtl.def"
DEFINE_CPU_UNIT ,
DEFINE_QUERY_CPU_UNIT ,
# 374 "/opt/local/src/gcc-3.3.3/gcc/rtl.def"
EXCLUSION_SET ,
# 383 "/opt/local/src/gcc-3.3.3/gcc/rtl.def"
PRESENCE_SET ,
# 393 "/opt/local/src/gcc-3.3.3/gcc/rtl.def"
ABSENCE_SET ,
# 404 "/opt/local/src/gcc-3.3.3/gcc/rtl.def"
DEFINE_BYPASS ,
# 413 "/opt/local/src/gcc-3.3.3/gcc/rtl.def"
DEFINE_AUTOMATON ,
# 433 "/opt/local/src/gcc-3.3.3/gcc/rtl.def"
AUTOMATA_OPTION ,
# 442 "/opt/local/src/gcc-3.3.3/gcc/rtl.def"
DEFINE_RESERVATION ,
# 490 "/opt/local/src/gcc-3.3.3/gcc/rtl.def"
DEFINE_INSN_RESERVATION ,
# 501 "/opt/local/src/gcc-3.3.3/gcc/rtl.def"
DEFINE_ATTR ,
ATTR ,
SET_ATTR ,
# 527 "/opt/local/src/gcc-3.3.3/gcc/rtl.def"
SET_ATTR_ALTERNATIVE ,
EQ_ATTR ,
# 542 "/opt/local/src/gcc-3.3.3/gcc/rtl.def"
ATTR_FLAG ,
# 555 "/opt/local/src/gcc-3.3.3/gcc/rtl.def"
INSN ,
JUMP_INSN ,
CALL_INSN ,
BARRIER ,
CODE_LABEL ,
# 586 "/opt/local/src/gcc-3.3.3/gcc/rtl.def"
NOTE ,
# 599 "/opt/local/src/gcc-3.3.3/gcc/rtl.def"
COND_EXEC ,
PARALLEL ,
ASM_INPUT ,
# 624 "/opt/local/src/gcc-3.3.3/gcc/rtl.def"
ASM_OPERANDS ,
# 635 "/opt/local/src/gcc-3.3.3/gcc/rtl.def"
UNSPEC ,
UNSPEC_VOLATILE ,
ADDR_VEC ,
# 667 "/opt/local/src/gcc-3.3.3/gcc/rtl.def"
ADDR_DIFF_VEC ,
# 678 "/opt/local/src/gcc-3.3.3/gcc/rtl.def"
PREFETCH ,
# 690 "/opt/local/src/gcc-3.3.3/gcc/rtl.def"
SET ,
USE ,
CLOBBER ,
CALL ,
RETURN ,
TRAP_IF ,
RESX ,
CONST_INT ,
CONST_DOUBLE ,
CONST_VECTOR ,
CONST_STRING ,
CONST ,
PC ,
VALUE ,
# 761 "/opt/local/src/gcc-3.3.3/gcc/rtl.def"
REG ,
SCRATCH ,
# 778 "/opt/local/src/gcc-3.3.3/gcc/rtl.def"
SUBREG ,
# 791 "/opt/local/src/gcc-3.3.3/gcc/rtl.def"
STRICT_LOW_PART ,
CONCAT ,
MEM ,
LABEL_REF ,
SYMBOL_REF ,
CC0 ,
# 830 "/opt/local/src/gcc-3.3.3/gcc/rtl.def"
ADDRESSOF ,
# 848 "/opt/local/src/gcc-3.3.3/gcc/rtl.def"
QUEUED ,
# 860 "/opt/local/src/gcc-3.3.3/gcc/rtl.def"
IF_THEN_ELSE ,
# 869 "/opt/local/src/gcc-3.3.3/gcc/rtl.def"
COND ,
COMPARE ,
PLUS ,
MINUS ,
NEG ,
MULT ,
DIV ,
MOD ,
UDIV ,
UMOD ,
AND ,
IOR ,
XOR ,
NOT ,
ASHIFT ,
ROTATE ,
ASHIFTRT ,
LSHIFTRT ,
ROTATERT ,
SMIN ,
SMAX ,
UMIN ,
UMAX ,
# 928 "/opt/local/src/gcc-3.3.3/gcc/rtl.def"
PRE_DEC ,
PRE_INC ,
POST_DEC ,
POST_INC ,
# 945 "/opt/local/src/gcc-3.3.3/gcc/rtl.def"
PRE_MODIFY ,
POST_MODIFY ,
NE ,
EQ ,
GE ,
GT ,
LE ,
LT ,
GEU ,
GTU ,
LEU ,
LTU ,
UNORDERED ,
ORDERED ,
UNEQ ,
UNGE ,
UNGT ,
UNLE ,
UNLT ,
LTGT ,
SIGN_EXTEND ,
ZERO_EXTEND ,
TRUNCATE ,
FLOAT_EXTEND ,
FLOAT_TRUNCATE ,
FLOAT ,
FIX ,
UNSIGNED_FLOAT ,
UNSIGNED_FIX ,
ABS ,
SQRT ,
FFS ,
# 1029 "/opt/local/src/gcc-3.3.3/gcc/rtl.def"
SIGN_EXTRACT ,
ZERO_EXTRACT ,
HIGH ,
LO_SUM ,
# 1054 "/opt/local/src/gcc-3.3.3/gcc/rtl.def"
RANGE_INFO ,
# 1069 "/opt/local/src/gcc-3.3.3/gcc/rtl.def"
RANGE_REG ,
RANGE_VAR ,
RANGE_LIVE ,
CONSTANT_P_RTX ,
# 1105 "/opt/local/src/gcc-3.3.3/gcc/rtl.def"
CALL_PLACEHOLDER ,
VEC_MERGE ,
VEC_SELECT ,
VEC_CONCAT ,
VEC_DUPLICATE ,
SS_PLUS ,
US_PLUS ,
SS_MINUS ,
US_MINUS ,
SS_TRUNCATE ,
US_TRUNCATE ,
# 1161 "/opt/local/src/gcc-3.3.3/gcc/rtl.def"
PHI ,
# 45 "/opt/local/src/gcc-3.3.3/gcc/rtl.h" 2
LAST_AND_UNUSED_RTX_CODE};
extern const unsigned char rtx_length[((int) LAST_AND_UNUSED_RTX_CODE)];
extern const char * const rtx_name[((int) LAST_AND_UNUSED_RTX_CODE)];
extern const char * const rtx_format[((int) LAST_AND_UNUSED_RTX_CODE)];
extern const char rtx_class[((int) LAST_AND_UNUSED_RTX_CODE)];
extern const unsigned char rtx_next[((int) LAST_AND_UNUSED_RTX_CODE)];
typedef struct
{
unsigned min_align: 8;
unsigned base_after_vec: 1;
unsigned min_after_vec: 1;
unsigned max_after_vec: 1;
unsigned min_after_base: 1;
unsigned max_after_base: 1;
unsigned offset_unsigned: 1;
unsigned : 2;
unsigned scale : 8;
} addr_diff_vec_flags;
# 97 "/opt/local/src/gcc-3.3.3/gcc/rtl.h"
typedef struct mem_attrs
{
long long alias;
tree expr;
rtx offset;
rtx size;
unsigned int align;
} mem_attrs;
union rtunion_def
{
long long rtwint;
int rtint;
unsigned int rtuint;
const char *rtstr;
rtx rtx;
rtvec rtvec;
enum machine_mode rttype;
addr_diff_vec_flags rt_addr_diff_vec_flags;
struct cselib_val_struct *rt_cselib;
struct bitmap_head_def *rtbit;
tree rttree;
struct basic_block_def *bb;
mem_attrs *rtmem;
};
typedef union rtunion_def rtunion;
struct rtx_def
{
enum rtx_code code: 16;
enum machine_mode mode : 8;
unsigned int jump : 1;
unsigned int call : 1;
unsigned int unchanging : 1;
# 162 "/opt/local/src/gcc-3.3.3/gcc/rtl.h"
unsigned int volatil : 1;
# 180 "/opt/local/src/gcc-3.3.3/gcc/rtl.h"
unsigned int in_struct : 1;
unsigned int used : 1;
unsigned integrated : 1;
# 201 "/opt/local/src/gcc-3.3.3/gcc/rtl.h"
unsigned frame_related : 1;
rtunion fld[1];
};
# 241 "/opt/local/src/gcc-3.3.3/gcc/rtl.h"
struct rtvec_def {
int num_elem;
rtx elem[1];
};
# 604 "/opt/local/src/gcc-3.3.3/gcc/rtl.h"
enum reg_note
{
REG_DEAD = 1,
REG_INC,
# 623 "/opt/local/src/gcc-3.3.3/gcc/rtl.h"
REG_EQUIV,
REG_EQUAL,
REG_WAS_0,
REG_RETVAL,
REG_LIBCALL,
REG_NONNEG,
REG_NO_CONFLICT,
REG_UNUSED,
# 668 "/opt/local/src/gcc-3.3.3/gcc/rtl.h"
REG_CC_SETTER, REG_CC_USER,
REG_LABEL,
REG_DEP_ANTI, REG_DEP_OUTPUT,
REG_BR_PROB,
REG_NOALIAS,
REG_SAVE_AREA,
REG_BR_PRED,
REG_FRAME_RELATED_EXPR,
REG_EH_CONTEXT,
REG_EH_REGION,
REG_SAVE_NOTE,
REG_MAYBE_DEAD,
REG_NORETURN,
REG_NON_LOCAL_GOTO,
REG_SETJMP,
REG_ALWAYS_RETURN,
REG_VTABLE_REF
};
# 755 "/opt/local/src/gcc-3.3.3/gcc/rtl.h"
extern const char * const reg_note_name[];
# 815 "/opt/local/src/gcc-3.3.3/gcc/rtl.h"
enum insn_note
{
NOTE_INSN_BIAS = -100,
NOTE_INSN_DELETED,
NOTE_INSN_BLOCK_BEG,
NOTE_INSN_BLOCK_END,
NOTE_INSN_LOOP_BEG,
NOTE_INSN_LOOP_END,
NOTE_INSN_LOOP_CONT,
NOTE_INSN_LOOP_VTOP,
NOTE_INSN_LOOP_END_TOP_COND,
NOTE_INSN_FUNCTION_END,
NOTE_INSN_PROLOGUE_END,
NOTE_INSN_EPILOGUE_BEG,
NOTE_INSN_DELETED_LABEL,
NOTE_INSN_FUNCTION_BEG,
NOTE_INSN_EH_REGION_BEG,
NOTE_INSN_EH_REGION_END,
NOTE_INSN_REPEATED_LINE_NUMBER,
NOTE_INSN_BASIC_BLOCK,
NOTE_INSN_EXPECTED_VALUE,
NOTE_INSN_PREDICTION,
NOTE_INSN_MAX
};
extern const char * const note_insn_name[NOTE_INSN_MAX - NOTE_INSN_BIAS];
# 905 "/opt/local/src/gcc-3.3.3/gcc/rtl.h"
enum label_kind
{
LABEL_NORMAL = 0,
LABEL_STATIC_ENTRY,
LABEL_GLOBAL_ENTRY,
LABEL_WEAK_ENTRY
};
# 1032 "/opt/local/src/gcc-3.3.3/gcc/rtl.h"
extern unsigned int subreg_lsb (rtx);
extern unsigned int subreg_regno_offset (unsigned int, enum machine_mode, unsigned int, enum machine_mode);
extern _Bool subreg_offset_representable_p (unsigned int, enum machine_mode, unsigned int, enum machine_mode);
extern unsigned int subreg_regno (rtx);
# 1339 "/opt/local/src/gcc-3.3.3/gcc/rtl.h"
extern int rtx_equal_function_value_matters;
extern int generating_concat_p;
extern int ceil_log2 (unsigned long long);
extern rtx expand_builtin_expect_jump (tree, rtx, rtx);
extern void set_stack_check_libfunc (rtx);
extern long long trunc_int_for_mode (long long, enum machine_mode);
extern rtx plus_constant_wide (rtx, long long);
extern rtx plus_constant_for_output_wide (rtx, long long);
extern void optimize_save_area_alloca (rtx);
extern rtx gen_rtx (enum rtx_code, enum machine_mode, ...);
extern rtvec gen_rtvec (int, ...);
extern rtx copy_insn_1 (rtx);
extern rtx copy_insn (rtx);
extern rtx gen_int_mode (long long, enum machine_mode);
extern rtx emit_copy_of_insn_after (rtx, rtx);
extern rtx rtx_alloc (enum rtx_code);
extern rtvec rtvec_alloc (int);
extern rtx copy_rtx (rtx);
extern rtx copy_rtx_if_shared (rtx);
extern rtx copy_most_rtx (rtx, rtx);
extern rtx shallow_copy_rtx (rtx);
extern int rtx_equal_p (rtx, rtx);
extern rtvec gen_rtvec_v (int, rtx *);
extern rtx gen_reg_rtx (enum machine_mode);
extern rtx gen_label_rtx (void);
extern int subreg_hard_regno (rtx, int);
extern rtx gen_lowpart_common (enum machine_mode, rtx);
extern rtx gen_lowpart (enum machine_mode, rtx);
extern rtx gen_lowpart_if_possible (enum machine_mode, rtx);
extern rtx gen_highpart (enum machine_mode, rtx);
extern rtx gen_highpart_mode (enum machine_mode, enum machine_mode, rtx);
extern rtx gen_realpart (enum machine_mode, rtx);
extern rtx gen_imagpart (enum machine_mode, rtx);
extern rtx operand_subword (rtx, unsigned int, int, enum machine_mode);
extern rtx constant_subword (rtx, int, enum machine_mode);
extern rtx operand_subword_force (rtx, unsigned int, enum machine_mode);
extern int subreg_lowpart_p (rtx);
extern unsigned int subreg_lowpart_offset (enum machine_mode, enum machine_mode);
extern unsigned int subreg_highpart_offset (enum machine_mode, enum machine_mode);
extern rtx make_safe_from (rtx, rtx);
extern rtx convert_memory_address (enum machine_mode, rtx);
extern rtx get_insns (void);
extern const char *get_insn_name (int);
extern rtx get_last_insn (void);
extern rtx get_last_insn_anywhere (void);
extern rtx get_first_nonnote_insn (void);
extern rtx get_last_nonnote_insn (void);
extern void start_sequence (void);
extern void push_to_sequence (rtx);
extern void end_sequence (void);
extern void push_to_full_sequence (rtx, rtx);
extern void end_full_sequence (rtx*, rtx*);
extern rtx immed_double_const (long long, long long, enum machine_mode);
extern rtx mem_for_const_double (rtx);
extern rtx force_const_mem (enum machine_mode, rtx);
extern rtx get_pool_constant (rtx);
extern rtx get_pool_constant_mark (rtx, _Bool *);
extern enum machine_mode get_pool_mode (rtx);
extern rtx get_pool_constant_for_function (struct function *, rtx);
extern enum machine_mode get_pool_mode_for_function (struct function *, rtx);
extern int get_pool_offset (rtx);
extern rtx simplify_subtraction (rtx);
extern rtx assign_stack_local (enum machine_mode, long long, int);
extern rtx assign_stack_temp (enum machine_mode, long long, int);
extern rtx assign_stack_temp_for_type (enum machine_mode, long long, int, tree);
extern rtx assign_temp (tree, int, int, int);
extern rtx emit_insn_before (rtx, rtx);
extern rtx emit_insn_before_scope (rtx, rtx, tree);
extern rtx emit_jump_insn_before (rtx, rtx);
extern rtx emit_jump_insn_before_scope (rtx, rtx, tree);
extern rtx emit_call_insn_before (rtx, rtx);
extern rtx emit_call_insn_before_scope (rtx, rtx, tree);
extern rtx emit_barrier_before (rtx);
extern rtx emit_label_before (rtx, rtx);
extern rtx emit_note_before (int, rtx);
extern rtx emit_insn_after (rtx, rtx);
extern rtx emit_insn_after_scope (rtx, rtx, tree);
extern rtx emit_jump_insn_after (rtx, rtx);
extern rtx emit_jump_insn_after_scope (rtx, rtx, tree);
extern rtx emit_call_insn_after (rtx, rtx);
extern rtx emit_call_insn_after_scope (rtx, rtx, tree);
extern rtx emit_barrier_after (rtx);
extern rtx emit_label_after (rtx, rtx);
extern rtx emit_note_after (int, rtx);
extern rtx emit_line_note_after (const char *, int, rtx);
extern rtx emit_insn (rtx);
extern rtx emit_jump_insn (rtx);
extern rtx emit_call_insn (rtx);
extern rtx emit_label (rtx);
extern rtx emit_barrier (void);
extern rtx emit_line_note (const char *, int);
extern rtx emit_note (const char *, int);
extern rtx emit_line_note_force (const char *, int);
extern rtx make_insn_raw (rtx);
extern rtx previous_insn (rtx);
extern rtx next_insn (rtx);
extern rtx prev_nonnote_insn (rtx);
extern rtx next_nonnote_insn (rtx);
extern rtx prev_real_insn (rtx);
extern rtx next_real_insn (rtx);
extern rtx prev_active_insn (rtx);
extern rtx next_active_insn (rtx);
extern int active_insn_p (rtx);
extern rtx prev_label (rtx);
extern rtx next_label (rtx);
extern rtx next_cc0_user (rtx);
extern rtx prev_cc0_setter (rtx);
extern tree choose_inner_scope (tree, tree);
extern rtx next_nondeleted_insn (rtx);
extern enum rtx_code reverse_condition (enum rtx_code);
extern enum rtx_code reverse_condition_maybe_unordered (enum rtx_code);
extern enum rtx_code swap_condition (enum rtx_code);
extern enum rtx_code unsigned_condition (enum rtx_code);
extern enum rtx_code signed_condition (enum rtx_code);
extern void mark_jump_label (rtx, rtx, int);
extern void cleanup_barriers (void);
extern _Bool squeeze_notes (rtx *, rtx *);
extern rtx delete_related_insns (rtx);
extern void delete_jump (rtx);
extern void delete_barrier (rtx);
extern rtx get_label_before (rtx);
extern rtx get_label_after (rtx);
extern rtx follow_jumps (rtx);
extern rtx *find_constant_term_loc (rtx *);
extern rtx try_split (rtx, rtx, int);
extern int split_branch_probability;
extern rtx split_insns (rtx, rtx);
extern rtx simplify_unary_operation (enum rtx_code, enum machine_mode, rtx, enum machine_mode);
extern rtx simplify_binary_operation (enum rtx_code, enum machine_mode, rtx, rtx);
extern rtx simplify_ternary_operation (enum rtx_code, enum machine_mode, enum machine_mode, rtx, rtx, rtx);
extern rtx simplify_relational_operation (enum rtx_code, enum machine_mode, rtx, rtx);
extern rtx simplify_gen_binary (enum rtx_code, enum machine_mode, rtx, rtx);
extern rtx simplify_gen_unary (enum rtx_code, enum machine_mode, rtx, enum machine_mode);
extern rtx simplify_gen_ternary (enum rtx_code, enum machine_mode, enum machine_mode, rtx, rtx, rtx);
extern rtx simplify_gen_relational (enum rtx_code, enum machine_mode, enum machine_mode, rtx, rtx);
extern rtx simplify_subreg (enum machine_mode, rtx, enum machine_mode, unsigned int);
extern rtx simplify_gen_subreg (enum machine_mode, rtx, enum machine_mode, unsigned int);
extern rtx simplify_replace_rtx (rtx, rtx, rtx);
extern rtx simplify_rtx (rtx);
extern rtx avoid_constant_pool_reference (rtx);
extern rtx gen_mem_addressof (rtx, tree, int);
extern enum machine_mode choose_hard_reg_mode (unsigned int, unsigned int);
extern rtx set_unique_reg_note (rtx, enum reg_note, rtx);
# 1585 "/opt/local/src/gcc-3.3.3/gcc/rtl.h"
extern int rtx_addr_can_trap_p (rtx);
extern int rtx_unstable_p (rtx);
extern int rtx_varies_p (rtx, int);
extern int rtx_addr_varies_p (rtx, int);
extern long long get_integer_term (rtx);
extern rtx get_related_value (rtx);
extern rtx get_jump_table_offset (rtx, rtx *);
extern int global_reg_mentioned_p (rtx);
extern int reg_mentioned_p (rtx, rtx);
extern int count_occurrences (rtx, rtx, int);
extern int reg_referenced_p (rtx, rtx);
extern int reg_used_between_p (rtx, rtx, rtx);
extern int reg_referenced_between_p (rtx, rtx, rtx);
extern int reg_set_between_p (rtx, rtx, rtx);
extern int regs_set_between_p (rtx, rtx, rtx);
extern int commutative_operand_precedence (rtx);
extern int swap_commutative_operands_p (rtx, rtx);
extern int modified_between_p (rtx, rtx, rtx);
extern int no_labels_between_p (rtx, rtx);
extern int no_jumps_between_p (rtx, rtx);
extern int modified_in_p (rtx, rtx);
extern int insn_dependent_p (rtx, rtx);
extern int reg_set_p (rtx, rtx);
extern rtx single_set_2 (rtx, rtx);
extern int multiple_sets (rtx);
extern int set_noop_p (rtx);
extern int noop_move_p (rtx);
extern rtx find_last_value (rtx, rtx *, rtx, int);
extern int refers_to_regno_p (unsigned int, unsigned int, rtx, rtx *);
extern int reg_overlap_mentioned_p (rtx, rtx);
extern rtx set_of (rtx, rtx);
extern void note_stores (rtx, void (*) (rtx, rtx, void *), void *);
extern void note_uses (rtx *, void (*) (rtx *, void *), void *);
extern rtx reg_set_last (rtx, rtx);
extern int dead_or_set_p (rtx, rtx);
extern int dead_or_set_regno_p (rtx, unsigned int);
extern rtx find_reg_note (rtx, enum reg_note, rtx);
extern rtx find_regno_note (rtx, enum reg_note, unsigned int);
extern rtx find_reg_equal_equiv_note (rtx);
extern int find_reg_fusage (rtx, enum rtx_code, rtx);
extern int find_regno_fusage (rtx, enum rtx_code, unsigned int);
extern int pure_call_p (rtx);
extern void remove_note (rtx, rtx);
extern int side_effects_p (rtx);
extern int volatile_refs_p (rtx);
extern int volatile_insn_p (rtx);
extern int may_trap_p (rtx);
extern int inequality_comparisons_p (rtx);
extern rtx replace_rtx (rtx, rtx, rtx);
extern rtx replace_regs (rtx, rtx *, unsigned int, int);
extern int computed_jump_p (rtx);
typedef int (*rtx_function) (rtx *, void *);
extern int for_each_rtx (rtx *, rtx_function, void *);
extern rtx regno_use_in (unsigned int, rtx);
extern int auto_inc_p (rtx);
extern int in_expr_list_p (rtx, rtx);
extern void remove_node_from_expr_list (rtx, rtx *);
extern int insns_safe_to_move_p (rtx, rtx, rtx *);
extern int loc_mentioned_in_p (rtx *, rtx);
extern rtx find_first_parameter_load (rtx, rtx);
extern _Bool keep_with_call_p (rtx);
extern rtx find_use_as_address (rtx, rtx, long long);
void free_EXPR_LIST_list (rtx *);
void free_INSN_LIST_list (rtx *);
void free_EXPR_LIST_node (rtx);
void free_INSN_LIST_node (rtx);
rtx alloc_INSN_LIST (rtx, rtx);
rtx alloc_EXPR_LIST (int, rtx, rtx);
extern int max_parallel;
extern void free_reg_info (void);
extern int asm_noperands (rtx);
extern const char *decode_asm_operands (rtx, rtx *, rtx **, const char **, enum machine_mode *);
extern enum reg_class reg_preferred_class (int);
extern enum reg_class reg_alternate_class (int);
extern rtx get_first_nonparm_insn (void);
extern void split_all_insns (int);
extern void split_all_insns_noflow (void);
extern rtx const_int_rtx[64 * 2 + 1];
extern rtx const_true_rtx;
extern rtx const_tiny_rtx[3][(int) MAX_MACHINE_MODE];
# 1725 "/opt/local/src/gcc-3.3.3/gcc/rtl.h"
enum global_rtl_index
{
GR_PC,
GR_CC0,
GR_STACK_POINTER,
GR_FRAME_POINTER,
GR_ARG_POINTER = GR_FRAME_POINTER,
GR_HARD_FRAME_POINTER,
# 1749 "/opt/local/src/gcc-3.3.3/gcc/rtl.h"
GR_VIRTUAL_INCOMING_ARGS,
GR_VIRTUAL_STACK_ARGS,
GR_VIRTUAL_STACK_DYNAMIC,
GR_VIRTUAL_OUTGOING_ARGS,
GR_VIRTUAL_CFA,
GR_MAX
};
extern rtx global_rtl[GR_MAX];
# 1773 "/opt/local/src/gcc-3.3.3/gcc/rtl.h"
extern rtx pic_offset_table_rtx;
extern rtx struct_value_rtx;
extern rtx struct_value_incoming_rtx;
extern rtx static_chain_rtx;
extern rtx static_chain_incoming_rtx;
extern rtx return_address_pointer_rtx;
# 1 "genrtl.h" 1
extern rtx gen_rtx_fmt_s (enum rtx_code, enum machine_mode mode, const char *arg0);
extern rtx gen_rtx_fmt_ee (enum rtx_code, enum machine_mode mode, rtx arg0, rtx arg1);
extern rtx gen_rtx_fmt_ue (enum rtx_code, enum machine_mode mode, rtx arg0, rtx arg1);
extern rtx gen_rtx_fmt_iss (enum rtx_code, enum machine_mode mode, int arg0, const char *arg1, const char *arg2);
extern rtx gen_rtx_fmt_is (enum rtx_code, enum machine_mode mode, int arg0, const char *arg1);
extern rtx gen_rtx_fmt_i (enum rtx_code, enum machine_mode mode, int arg0);
extern rtx gen_rtx_fmt_isE (enum rtx_code, enum machine_mode mode, int arg0, const char *arg1, rtvec arg2);
extern rtx gen_rtx_fmt_iE (enum rtx_code, enum machine_mode mode, int arg0, rtvec arg1);
extern rtx gen_rtx_fmt_Ess (enum rtx_code, enum machine_mode mode, rtvec arg0, const char *arg1, const char *arg2);
extern rtx gen_rtx_fmt_sEss (enum rtx_code, enum machine_mode mode, const char *arg0, rtvec arg1, const char *arg2, const char *arg3);
extern rtx gen_rtx_fmt_eE (enum rtx_code, enum machine_mode mode, rtx arg0, rtvec arg1);
extern rtx gen_rtx_fmt_E (enum rtx_code, enum machine_mode mode, rtvec arg0);
extern rtx gen_rtx_fmt_e (enum rtx_code, enum machine_mode mode, rtx arg0);
extern rtx gen_rtx_fmt_ss (enum rtx_code, enum machine_mode mode, const char *arg0, const char *arg1);
extern rtx gen_rtx_fmt_sies (enum rtx_code, enum machine_mode mode, const char *arg0, int arg1, rtx arg2, const char *arg3);
extern rtx gen_rtx_fmt_sse (enum rtx_code, enum machine_mode mode, const char *arg0, const char *arg1, rtx arg2);
extern rtx gen_rtx_fmt_sE (enum rtx_code, enum machine_mode mode, const char *arg0, rtvec arg1);
extern rtx gen_rtx_fmt_iuuBteiee (enum rtx_code, enum machine_mode mode, int arg0, rtx arg1, rtx arg2, struct basic_block_def *arg3, union tree_node *arg4, rtx arg5, int arg6, rtx arg7, rtx arg8);
extern rtx gen_rtx_fmt_iuuBteiee0 (enum rtx_code, enum machine_mode mode, int arg0, rtx arg1, rtx arg2, struct basic_block_def *arg3, union tree_node *arg4, rtx arg5, int arg6, rtx arg7, rtx arg8);
extern rtx gen_rtx_fmt_iuuBteieee (enum rtx_code, enum machine_mode mode, int arg0, rtx arg1, rtx arg2, struct basic_block_def *arg3, union tree_node *arg4, rtx arg5, int arg6, rtx arg7, rtx arg8, rtx arg9);
extern rtx gen_rtx_fmt_iuu000000 (enum rtx_code, enum machine_mode mode, int arg0, rtx arg1, rtx arg2);
extern rtx gen_rtx_fmt_iuuB00is (enum rtx_code, enum machine_mode mode, int arg0, rtx arg1, rtx arg2, struct basic_block_def *arg3, int arg4, const char *arg5);
extern rtx gen_rtx_fmt_ssiEEsi (enum rtx_code, enum machine_mode mode, const char *arg0, const char *arg1, int arg2, rtvec arg3, rtvec arg4, const char *arg5, int arg6);
extern rtx gen_rtx_fmt_Ei (enum rtx_code, enum machine_mode mode, rtvec arg0, int arg1);
extern rtx gen_rtx_fmt_eEee0 (enum rtx_code, enum machine_mode mode, rtx arg0, rtvec arg1, rtx arg2, rtx arg3);
extern rtx gen_rtx_fmt_eee (enum rtx_code, enum machine_mode mode, rtx arg0, rtx arg1, rtx arg2);
extern rtx gen_rtx_fmt_ (enum rtx_code, enum machine_mode mode);
extern rtx gen_rtx_fmt_w (enum rtx_code, enum machine_mode mode, long long arg0);
extern rtx gen_rtx_fmt_www (enum rtx_code, enum machine_mode mode, long long arg0, long long arg1, long long arg2);
extern rtx gen_rtx_fmt_0 (enum rtx_code, enum machine_mode mode);
extern rtx gen_rtx_fmt_i0 (enum rtx_code, enum machine_mode mode, int arg0);
extern rtx gen_rtx_fmt_ei (enum rtx_code, enum machine_mode mode, rtx arg0, int arg1);
extern rtx gen_rtx_fmt_e0 (enum rtx_code, enum machine_mode mode, rtx arg0);
extern rtx gen_rtx_fmt_u00 (enum rtx_code, enum machine_mode mode, rtx arg0);
extern rtx gen_rtx_fmt_eit (enum rtx_code, enum machine_mode mode, rtx arg0, int arg1, union tree_node *arg2);
extern rtx gen_rtx_fmt_eeeee (enum rtx_code, enum machine_mode mode, rtx arg0, rtx arg1, rtx arg2, rtx arg3, rtx arg4);
extern rtx gen_rtx_fmt_Ee (enum rtx_code, enum machine_mode mode, rtvec arg0, rtx arg1);
extern rtx gen_rtx_fmt_uuEiiiiiibbii (enum rtx_code, enum machine_mode mode, rtx arg0, rtx arg1, rtvec arg2, int arg3, int arg4, int arg5, int arg6, int arg7, int arg8, struct bitmap_head_def *arg9, struct bitmap_head_def *arg10, int arg11, int arg12);
extern rtx gen_rtx_fmt_iiiiiiiitt (enum rtx_code, enum machine_mode mode, int arg0, int arg1, int arg2, int arg3, int arg4, int arg5, int arg6, int arg7, union tree_node *arg8, union tree_node *arg9);
extern rtx gen_rtx_fmt_eti (enum rtx_code, enum machine_mode mode, rtx arg0, union tree_node *arg1, int arg2);
extern rtx gen_rtx_fmt_bi (enum rtx_code, enum machine_mode mode, struct bitmap_head_def *arg0, int arg1);
extern rtx gen_rtx_fmt_uuuu (enum rtx_code, enum machine_mode mode, rtx arg0, rtx arg1, rtx arg2, rtx arg3);
# 1784 "/opt/local/src/gcc-3.3.3/gcc/rtl.h" 2
extern rtx gen_rtx_CONST_INT (enum machine_mode, long long);
extern rtx gen_rtx_CONST_VECTOR (enum machine_mode, rtvec);
extern rtx gen_raw_REG (enum machine_mode, int);
extern rtx gen_rtx_REG (enum machine_mode, unsigned);
extern rtx gen_rtx_SUBREG (enum machine_mode, rtx, int);
extern rtx gen_rtx_MEM (enum machine_mode, rtx);
extern rtx gen_lowpart_SUBREG (enum machine_mode, rtx);
# 1868 "/opt/local/src/gcc-3.3.3/gcc/rtl.h"
extern rtx find_next_ref (rtx, rtx);
extern rtx output_constant_def (tree, int);
# 1880 "/opt/local/src/gcc-3.3.3/gcc/rtl.h"
extern int flow2_completed;
extern int reload_completed;
extern int reload_in_progress;
extern int cse_not_expected;
extern int no_new_pseudos;
extern int rtx_to_tree_code (enum rtx_code);
struct obstack;
extern void gcc_obstack_init (struct obstack *);
struct cse_basic_block_data;
# 1926 "/opt/local/src/gcc-3.3.3/gcc/rtl.h"
extern int rtx_cost (rtx, enum rtx_code);
extern int address_cost (rtx, enum machine_mode);
extern int delete_trivially_dead_insns (rtx, int);
extern int cse_main (rtx, int, int, FILE *);
extern void cse_end_of_basic_block (rtx, struct cse_basic_block_data *, int, int, int);
extern int comparison_dominates_p (enum rtx_code, enum rtx_code);
extern int condjump_p (rtx);
extern int any_condjump_p (rtx);
extern int any_uncondjump_p (rtx);
extern int safe_to_remove_jump_p (rtx);
extern rtx pc_set (rtx);
extern rtx condjump_label (rtx);
extern int simplejump_p (rtx);
extern int tablejump_p (rtx);
extern int returnjump_p (rtx);
extern int onlyjump_p (rtx);
extern int only_sets_cc0_p (rtx);
extern int sets_cc0_p (rtx);
extern int invert_jump_1 (rtx, rtx);
extern int invert_jump (rtx, rtx, int);
extern int rtx_renumbered_equal_p (rtx, rtx);
extern int true_regnum (rtx);
extern unsigned int reg_or_subregno (rtx);
extern int redirect_jump_1 (rtx, rtx);
extern int redirect_jump (rtx, rtx, int);
extern void rebuild_jump_labels (rtx);
extern enum rtx_code reversed_comparison_code (rtx, rtx);
extern enum rtx_code reversed_comparison_code_parts (enum rtx_code, rtx, rtx, rtx);
extern void delete_for_peephole (rtx, rtx);
extern int condjump_in_parallel_p (rtx);
extern void never_reached_warning (rtx, rtx);
extern void purge_line_number_notes (rtx);
extern void copy_loop_headers (rtx);
extern int max_reg_num (void);
extern int max_label_num (void);
extern int get_first_label_num (void);
extern void delete_insns_since (rtx);
extern void mark_reg_pointer (rtx, int);
extern void mark_user_reg (rtx);
extern void reset_used_flags (rtx);
extern void reorder_insns (rtx, rtx, rtx);
extern void reorder_insns_nobb (rtx, rtx, rtx);
extern int get_max_uid (void);
extern int in_sequence_p (void);
extern void force_next_line_note (void);
extern void init_emit (void);
extern void init_emit_once (int);
extern void push_topmost_sequence (void);
extern void pop_topmost_sequence (void);
extern int subreg_realpart_p (rtx);
extern void reverse_comparison (rtx);
extern void set_new_first_and_last_insn (rtx, rtx);
extern void set_new_first_and_last_label_num (int, int);
extern void set_new_last_label_num (int);
extern void unshare_all_rtl_again (rtx);
extern void set_first_insn (rtx);
extern void set_last_insn (rtx);
extern void link_cc0_insns (rtx);
extern void add_insn (rtx);
extern void add_insn_before (rtx, rtx);
extern void add_insn_after (rtx, rtx);
extern void remove_insn (rtx);
extern void reorder_insns_with_line_notes (rtx, rtx, rtx);
extern void emit_insn_after_with_line_notes (rtx, rtx, rtx);
extern enum rtx_code classify_insn (rtx);
extern rtx emit (rtx);
int force_line_numbers (void);
void restore_line_number_status (int old_value);
extern void renumber_insns (FILE *);
extern void remove_unnecessary_notes (void);
extern rtx delete_insn (rtx);
extern void delete_insn_chain (rtx, rtx);
extern rtx delete_insn_and_edges (rtx);
extern void delete_insn_chain_and_edges (rtx, rtx);
extern int combine_instructions (rtx, unsigned int);
extern unsigned int extended_count (rtx, enum machine_mode, int);
extern rtx remove_death (unsigned int, rtx);
extern void dump_combine_stats (FILE *);
extern void dump_combine_total_stats (FILE *);
extern void schedule_insns (FILE *);
extern void schedule_ebbs (FILE *);
extern void fix_sched_param (const char *, const char *);
extern const char *print_rtx_head;
extern void debug_rtx (rtx);
extern void debug_rtx_list (rtx, int);
extern void debug_rtx_range (rtx, rtx);
extern rtx debug_rtx_find (rtx, int);
extern void print_mem_expr (FILE *, tree);
extern void print_rtl (FILE *, rtx);
extern void print_simple_rtl (FILE *, rtx);
extern int print_rtl_single (FILE *, rtx);
extern void print_inline_rtx (FILE *, rtx, int);
extern void init_loop (void);
extern rtx libcall_other_reg (rtx, rtx);
extern void loop_optimize (rtx, FILE *, int);
extern void record_excess_regs (rtx, rtx, rtx *);
extern void reposition_prologue_and_epilogue_notes (rtx);
extern void thread_prologue_and_epilogue_insns (rtx);
extern int prologue_epilogue_contains (rtx);
extern int sibcall_epilogue_contains (rtx);
extern void preserve_rtl_expr_result (rtx);
extern void mark_temp_addr_taken (rtx);
extern void update_temp_slot_address (rtx, rtx);
extern void purge_addressof (rtx);
extern void purge_hard_subreg_sets (rtx);
extern void set_file_and_line_for_stmt (const char *, int);
extern void expand_null_return (void);
extern void emit_jump (rtx);
extern int preserve_subexpressions_p (void);
extern void move_by_pieces (rtx, rtx, unsigned long long, unsigned int);
extern void recompute_reg_usage (rtx, int);
extern int initialize_uninitialized_subregs (void);
extern void delete_dead_jumptables (void);
extern void print_rtl_with_bb (FILE *, rtx);
extern void dump_flow_info (FILE *);
extern void init_expmed (void);
extern void expand_inc (rtx, rtx);
extern void expand_dec (rtx, rtx);
extern rtx expand_mult_highpart (enum machine_mode, rtx, unsigned long long, rtx, int, int);
extern int gcse_main (rtx, FILE *);
extern void mark_elimination (int, int);
extern int global_alloc (FILE *);
extern void dump_global_regs (FILE *);
extern void build_insn_chain (rtx);
extern int reg_classes_intersect_p (enum reg_class, enum reg_class);
extern int reg_class_subset_p (enum reg_class, enum reg_class);
extern void globalize_reg (int);
extern void init_regs (void);
extern void init_fake_stack_mems (void);
extern void init_reg_sets (void);
extern void regset_release_memory (void);
extern void regclass_init (void);
extern void regclass (rtx, int, FILE *);
extern void reg_scan (rtx, unsigned int, int);
extern void reg_scan_update (rtx, rtx, unsigned int);
extern void fix_register (const char *, int, int);
extern _Bool invalid_mode_change_p (unsigned int, enum reg_class, enum machine_mode);
extern int delete_null_pointer_checks (rtx);
extern void regmove_optimize (rtx, int, FILE *);
extern void combine_stack_adjustments (void);
extern void dbr_schedule (rtx, FILE *);
extern void dump_local_alloc (FILE *);
extern int local_alloc (void);
extern int function_invariant_p (rtx);
extern void init_branch_prob (const char *);
extern void branch_prob (void);
extern void end_branch_prob (void);
extern void output_func_start_profiler (void);
extern void reg_to_stack (rtx, FILE *);
extern int add_double (unsigned long long, long long, unsigned long long, long long, unsigned long long *, long long *);
extern int neg_double (unsigned long long, long long, unsigned long long *, long long *);
extern int mul_double (unsigned long long, long long, unsigned long long, long long, unsigned long long *, long long *);
extern void lshift_double (unsigned long long, long long, long long, unsigned int, unsigned long long *, long long *, int);
extern void rshift_double (unsigned long long, long long, long long, unsigned int, unsigned long long *, long long *, int);
extern void lrotate_double (unsigned long long, long long, long long, unsigned int, unsigned long long *, long long *);
extern void rrotate_double (unsigned long long, long long, long long, unsigned int, unsigned long long *, long long *);
enum libcall_type
{
LCT_NORMAL = 0,
LCT_CONST = 1,
LCT_PURE = 2,
LCT_CONST_MAKE_BLOCK = 3,
LCT_PURE_MAKE_BLOCK = 4,
LCT_NORETURN = 5,
LCT_THROW = 6,
LCT_ALWAYS_RETURN = 7,
LCT_RETURNS_TWICE = 8
};
extern void emit_library_call (rtx, enum libcall_type, enum machine_mode, int, ...);
extern rtx emit_library_call_value (rtx, rtx, enum libcall_type, enum machine_mode, int, ...);
extern int set_dominates_use (int, int, int, rtx, rtx);
extern int in_data_section (void);
extern void init_varasm_once (void);
extern void init_rtl (void);
extern void traverse_md_constants (int (*) (void **, void *), void *);
struct md_constant { char *name, *value; };
extern int read_skip_spaces (FILE *);
extern rtx read_rtx (FILE *);
extern const char *read_rtx_filename;
extern int read_rtx_lineno;
extern void fancy_abort (const char *, int, const char *)
__attribute__ ((__noreturn__));
extern void clear_reg_alias_info (rtx);
extern rtx canon_rtx (rtx);
extern int true_dependence (rtx, enum machine_mode, rtx, int (*)(rtx, int));
extern rtx get_addr (rtx);
extern int canon_true_dependence (rtx, enum machine_mode, rtx, rtx, int (*)(rtx, int));
extern int read_dependence (rtx, rtx);
extern int anti_dependence (rtx, rtx);
extern int output_dependence (rtx, rtx);
extern void mark_constant_function (void);
extern void init_alias_once (void);
extern void init_alias_analysis (void);
extern void end_alias_analysis (void);
extern rtx addr_side_effect_eval (rtx, int, int);
typedef enum {
sibcall_use_normal = 1,
sibcall_use_tail_recursion,
sibcall_use_sibcall
} sibcall_use_t;
extern void optimize_sibling_and_tail_recursive_calls (void);
extern void replace_call_placeholder (rtx, sibcall_use_t);
extern rtx stack_limit_rtx;
extern void regrename_optimize (void);
extern void copyprop_hardreg_forward (void);
extern void if_convert (int);
extern void invert_br_probabilities (rtx);
extern _Bool expensive_function_p (int);
extern void tracer (void);
# 92 "/opt/local/src/gcc-3.3.3/gcc/reload.c" 2
# 1 "tm_p.h" 1
# 1 "/opt/local/src/gcc-3.3.3/gcc/config/sparc/sparc-protos.h" 1
# 27 "/opt/local/src/gcc-3.3.3/gcc/config/sparc/sparc-protos.h"
extern _Bool sparc_emitting_epilogue;
# 55 "/opt/local/src/gcc-3.3.3/gcc/config/sparc/sparc-protos.h"
extern void load_pic_register (void);
extern void order_regs_for_local_alloc (void);
extern int compute_frame_size (int, int);
extern int check_pic (int);
extern int short_branch (int, int);
extern int sparc_flat_epilogue_delay_slots (void);
extern unsigned long sparc_flat_compute_frame_size (int);
extern void sparc_profile_hook (int);
extern void sparc_override_options (void);
extern int leaf_return_peephole_ok (void);
extern void sparc_output_scratch_registers (FILE *);
extern void sparc_flat_save_restore (FILE *, const char *, unsigned int, unsigned long, unsigned long, const char *, const char *, unsigned long);
extern enum machine_mode select_cc_mode (enum rtx_code, rtx, rtx);
extern rtx gen_compare_reg (enum rtx_code code, rtx, rtx);
extern void sparc_emit_float_lib_cmp (rtx, rtx, enum rtx_code);
extern void sparc_emit_floatunsdi (rtx [2]);
extern void emit_tfmode_binop (enum rtx_code, rtx *);
extern void emit_tfmode_unop (enum rtx_code, rtx *);
extern void emit_tfmode_cvt (enum rtx_code, rtx *);
extern int gen_v9_scc (enum rtx_code, rtx *);
extern void sparc_initialize_trampoline (rtx, rtx, rtx);
extern void sparc64_initialize_trampoline (rtx, rtx, rtx);
extern rtx legitimize_pic_address (rtx, enum machine_mode, rtx);
extern void sparc_defer_case_vector (rtx, rtx, int);
extern void sparc_emit_set_const32 (rtx, rtx);
extern void sparc_emit_set_const64 (rtx, rtx);
extern void sparc_emit_set_symbolic_const64 (rtx, rtx, rtx);
extern int sparc_splitdi_legitimate (rtx, rtx);
extern int sparc_absnegfloat_split_legitimate (rtx, rtx);
extern char *output_cbranch (rtx, rtx, int, int, int, int, rtx);
extern const char *output_sibcall (rtx, rtx);
extern char *output_v9branch (rtx, rtx, int, int, int, int, int, rtx);
extern void emit_v9_brxx_insn (enum rtx_code, rtx, rtx);
extern void print_operand (FILE *, rtx, int);
extern int mems_ok_for_ldd_peep (rtx, rtx, rtx);
extern int arith_double_4096_operand (rtx, enum machine_mode);
extern int arith_4096_operand (rtx, enum machine_mode);
extern int zero_operand (rtx, enum machine_mode);
extern int fp_zero_operand (rtx, enum machine_mode);
extern int reg_or_0_operand (rtx, enum machine_mode);
extern int empty_delay_slot (rtx);
extern int eligible_for_epilogue_delay (rtx, int);
extern int eligible_for_sibcall_delay (rtx);
extern int emit_move_sequence (rtx, enum machine_mode);
extern int fp_sethi_p (rtx);
extern int fp_mov_p (rtx);
extern int fp_high_losum_p (rtx);
extern int mem_min_alignment (rtx, int);
extern int pic_address_needs_scratch (rtx);
extern int reg_unused_after (rtx, rtx);
extern int register_ok_for_ldd (rtx);
extern int registers_ok_for_ldd_peep (rtx, rtx);
extern int sparc_flat_eligible_for_epilogue_delay (rtx, int);
extern int v9_regcmp_p (enum rtx_code);
extern char *sparc_v8plus_shift (rtx *, rtx, const char *);
extern int sparc_check_64 (rtx, rtx);
extern rtx gen_df_reg (rtx, int);
extern int sparc_extra_constraint_check (rtx, int, int);
extern int sparc_rtx_costs (rtx, enum rtx_code, enum rtx_code);
# 3 "tm_p.h" 2
# 1 "tm-preds.h" 1
extern int reg_or_0_operand (rtx, enum machine_mode);
extern int const1_operand (rtx, enum machine_mode);
extern int fp_zero_operand (rtx, enum machine_mode);
extern int fp_register_operand (rtx, enum machine_mode);
extern int intreg_operand (rtx, enum machine_mode);
extern int fcc_reg_operand (rtx, enum machine_mode);
extern int fcc0_reg_operand (rtx, enum machine_mode);
extern int icc_or_fcc_reg_operand (rtx, enum machine_mode);
extern int restore_operand (rtx, enum machine_mode);
extern int call_operand (rtx, enum machine_mode);
extern int call_operand_address (rtx, enum machine_mode);
extern int symbolic_operand (rtx, enum machine_mode);
extern int symbolic_memory_operand (rtx, enum machine_mode);
extern int label_ref_operand (rtx, enum machine_mode);
extern int sp64_medium_pic_operand (rtx, enum machine_mode);
extern int data_segment_operand (rtx, enum machine_mode);
extern int text_segment_operand (rtx, enum machine_mode);
extern int reg_or_nonsymb_mem_operand (rtx, enum machine_mode);
extern int splittable_symbolic_memory_operand (rtx, enum machine_mode);
extern int splittable_immediate_memory_operand (rtx, enum machine_mode);
extern int eq_or_neq (rtx, enum machine_mode);
extern int normal_comp_operator (rtx, enum machine_mode);
extern int noov_compare_op (rtx, enum machine_mode);
extern int noov_compare64_op (rtx, enum machine_mode);
extern int v9_regcmp_op (rtx, enum machine_mode);
extern int extend_op (rtx, enum machine_mode);
extern int cc_arithop (rtx, enum machine_mode);
extern int cc_arithopn (rtx, enum machine_mode);
extern int arith_operand (rtx, enum machine_mode);
extern int arith_add_operand (rtx, enum machine_mode);
extern int arith11_operand (rtx, enum machine_mode);
extern int arith10_operand (rtx, enum machine_mode);
extern int arith_double_operand (rtx, enum machine_mode);
extern int arith_double_add_operand (rtx, enum machine_mode);
extern int arith11_double_operand (rtx, enum machine_mode);
extern int arith10_double_operand (rtx, enum machine_mode);
extern int small_int (rtx, enum machine_mode);
extern int small_int_or_double (rtx, enum machine_mode);
extern int uns_small_int (rtx, enum machine_mode);
extern int uns_arith_operand (rtx, enum machine_mode);
extern int clobbered_register (rtx, enum machine_mode);
extern int input_operand (rtx, enum machine_mode);
extern int const64_operand (rtx, enum machine_mode);
extern int const64_high_operand (rtx, enum machine_mode);
# 5 "tm_p.h" 2
# 93 "/opt/local/src/gcc-3.3.3/gcc/reload.c" 2
# 1 "insn-config.h" 1
# 94 "/opt/local/src/gcc-3.3.3/gcc/reload.c" 2
# 1 "/opt/local/src/gcc-3.3.3/gcc/expr.h" 1
# 57 "/opt/local/src/gcc-3.3.3/gcc/expr.h"
enum expand_modifier {EXPAND_NORMAL = 0, EXPAND_STACK_PARM = 2, EXPAND_SUM,
EXPAND_CONST_ADDRESS, EXPAND_INITIALIZER, EXPAND_WRITE,
EXPAND_MEMORY};
# 125 "/opt/local/src/gcc-3.3.3/gcc/expr.h"
enum direction {none, upward, downward};
# 262 "/opt/local/src/gcc-3.3.3/gcc/expr.h"
enum optab_methods
{
OPTAB_DIRECT,
OPTAB_LIB,
OPTAB_WIDEN,
OPTAB_LIB_WIDEN,
OPTAB_MUST_WIDEN
};
extern rtx expand_simple_binop (enum machine_mode, enum rtx_code, rtx, rtx, rtx, int, enum optab_methods);
extern rtx expand_simple_unop (enum machine_mode, enum rtx_code, rtx, rtx, int);
extern int have_insn_for (enum rtx_code, enum machine_mode);
extern void emit_libcall_block (rtx, rtx, rtx, rtx);
extern rtx gen_add2_insn (rtx, rtx);
extern rtx gen_add3_insn (rtx, rtx, rtx);
extern rtx gen_sub2_insn (rtx, rtx);
extern rtx gen_sub3_insn (rtx, rtx, rtx);
extern rtx gen_move_insn (rtx, rtx);
extern int have_add2_insn (rtx, rtx);
extern int have_sub2_insn (rtx, rtx);
extern void emit_cmp_and_jump_insns (rtx, rtx, enum rtx_code, rtx, enum machine_mode, int, rtx);
extern void emit_indirect_jump (rtx);
rtx emit_conditional_move (rtx, enum rtx_code, rtx, rtx, enum machine_mode, rtx, rtx, enum machine_mode, int);
int can_conditionally_move_p (enum machine_mode mode);
# 322 "/opt/local/src/gcc-3.3.3/gcc/expr.h"
extern rtx negate_rtx (enum machine_mode, rtx);
extern rtx expand_and (enum machine_mode, rtx, rtx, rtx);
extern rtx emit_store_flag (rtx, enum rtx_code, rtx, rtx, enum machine_mode, int, int);
extern rtx emit_store_flag_force (rtx, enum rtx_code, rtx, rtx, enum machine_mode, int, int);
extern rtx canonicalize_condition (rtx, rtx, int, rtx *, rtx);
extern rtx get_condition (rtx, rtx *);
extern rtx gen_cond_trap (enum rtx_code, rtx, rtx, rtx);
extern rtx expand_builtin (tree, rtx, rtx, enum machine_mode, int);
extern void std_expand_builtin_va_start (tree, rtx);
extern rtx std_expand_builtin_va_arg (tree, tree);
extern rtx expand_builtin_va_arg (tree, tree);
extern void default_init_builtins (void);
extern rtx default_expand_builtin (tree, rtx, rtx, enum machine_mode, int);
extern void expand_builtin_setjmp_setup (rtx, rtx);
extern void expand_builtin_setjmp_receiver (rtx);
extern void expand_builtin_longjmp (rtx, rtx);
extern rtx expand_builtin_saveregs (void);
extern void expand_builtin_trap (void);
extern long long get_varargs_alias_set (void);
extern long long get_frame_alias_set (void);
extern void record_base_value (unsigned int, rtx, int);
extern void record_alias_subset (long long, long long);
extern long long new_alias_set (void);
extern int can_address_p (tree);
extern void init_expr_once (void);
extern void init_expr (void);
extern void finish_expr_for_function (void);
extern rtx protect_from_queue (rtx, int);
extern void emit_queue (void);
extern int queued_subexp_p (rtx);
extern void convert_move (rtx, rtx, int);
extern rtx convert_to_mode (enum machine_mode, rtx, int);
extern rtx convert_modes (enum machine_mode, enum machine_mode, rtx, int);
enum block_op_methods
{
BLOCK_OP_NORMAL,
BLOCK_OP_NO_LIBCALL,
BLOCK_OP_CALL_PARM
};
extern rtx emit_block_move (rtx, rtx, rtx, enum block_op_methods);
extern void move_block_to_reg (int, rtx, int, enum machine_mode);
extern void move_block_from_reg (int, rtx, int, int);
extern rtx gen_group_rtx (rtx);
extern void emit_group_load (rtx, rtx, int);
extern void emit_group_move (rtx, rtx);
extern void emit_group_store (rtx, rtx, int);
extern void use_reg (rtx *, rtx);
extern void use_regs (rtx *, int, int);
extern void use_group_regs (rtx *, rtx);
extern rtx clear_storage (rtx, rtx);
extern int can_store_by_pieces (unsigned long long, rtx (*) (void *, long long, enum machine_mode), void *, unsigned int);
# 469 "/opt/local/src/gcc-3.3.3/gcc/expr.h"
extern void store_by_pieces (rtx, unsigned long long, rtx (*) (void *, long long, enum machine_mode), void *, unsigned int);
extern rtx emit_move_insn (rtx, rtx);
extern rtx emit_move_insn_1 (rtx, rtx);
extern rtx push_block (rtx, int, int);
# 503 "/opt/local/src/gcc-3.3.3/gcc/expr.h"
extern rtx force_operand (rtx, rtx);
# 512 "/opt/local/src/gcc-3.3.3/gcc/expr.h"
extern tree find_placeholder (tree, tree *);
extern rtx expand_expr (tree, rtx, enum machine_mode, enum expand_modifier);
extern void init_pending_stack_adjust (void);
extern void clear_pending_stack_adjust (void);
extern void do_pending_stack_adjust (void);
# 548 "/opt/local/src/gcc-3.3.3/gcc/expr.h"
extern rtx compare_from_rtx (rtx, rtx, enum rtx_code, int, enum machine_mode, rtx);
extern void do_compare_rtx_and_jump (rtx, rtx, enum rtx_code, int, enum machine_mode, rtx, rtx, rtx);
extern int try_casesi (tree, tree, tree, tree, rtx, rtx);
extern int try_tablejump (tree, tree, tree, tree, rtx, rtx);
extern unsigned int case_values_threshold (void);
# 605 "/opt/local/src/gcc-3.3.3/gcc/expr.h"
extern rtx promoted_input_arg (unsigned int, enum machine_mode *, int *);
extern rtx eliminate_constant_term (rtx, rtx *);
extern rtx memory_address (enum machine_mode, rtx);
extern rtx memory_address_noforce (enum machine_mode, rtx);
extern void set_mem_alias_set (rtx, long long);
extern void set_mem_align (rtx, unsigned int);
extern void set_mem_expr (rtx, tree);
extern void set_mem_offset (rtx, rtx);
extern void set_mem_size (rtx, rtx);
extern rtx change_address (rtx, enum machine_mode, rtx);
# 660 "/opt/local/src/gcc-3.3.3/gcc/expr.h"
extern rtx adjust_address_1 (rtx, enum machine_mode, long long, int, int);
extern rtx adjust_automodify_address_1 (rtx, enum machine_mode, rtx, long long, int);
extern rtx offset_address (rtx, rtx, long long);
extern rtx replace_equiv_address (rtx, rtx);
extern rtx replace_equiv_address_nv (rtx, rtx);
extern rtx widen_memory_access (rtx, enum machine_mode, long long);
extern rtx validize_mem (rtx);
# 706 "/opt/local/src/gcc-3.3.3/gcc/expr.h"
extern rtx assemble_trampoline_template (void);
extern rtx stabilize (rtx);
extern rtx copy_all_regs (rtx);
extern rtx copy_to_reg (rtx);
extern rtx copy_addr_to_reg (rtx);
extern rtx copy_to_mode_reg (enum machine_mode, rtx);
extern rtx copy_to_suggested_reg (rtx, rtx, enum machine_mode);
extern rtx force_reg (enum machine_mode, rtx);
extern rtx force_not_mem (rtx);
# 742 "/opt/local/src/gcc-3.3.3/gcc/expr.h"
extern void adjust_stack (rtx);
extern void anti_adjust_stack (rtx);
enum save_level {SAVE_BLOCK, SAVE_FUNCTION, SAVE_NONLOCAL};
extern void emit_stack_save (enum save_level, rtx *, rtx);
extern void emit_stack_restore (enum save_level, rtx, rtx);
extern rtx allocate_dynamic_stack_space (rtx, rtx, int);
extern void probe_stack_range (long long, rtx);
extern rtx hard_libcall_value (enum machine_mode);
extern rtx round_push (rtx);
enum extraction_pattern { EP_insv, EP_extv, EP_extzv };
extern enum machine_mode
mode_for_extraction (enum extraction_pattern, int);
extern rtx store_bit_field (rtx, unsigned long long, unsigned long long, enum machine_mode, rtx, long long);
extern rtx extract_bit_field (rtx, unsigned long long, unsigned long long, int, rtx, enum machine_mode, enum machine_mode, long long);
extern rtx expand_mult (enum machine_mode, rtx, rtx, rtx, int);
extern _Bool const_mult_add_overflow_p (rtx, rtx, rtx, enum machine_mode, int);
extern rtx expand_mult_add (rtx, rtx, rtx, rtx,enum machine_mode, int);
extern rtx expand_mult_highpart_adjust (enum machine_mode, rtx, rtx, rtx, rtx, int);
extern rtx assemble_static_space (int);
extern rtx (*lang_expand_expr) (union tree_node *, rtx, enum machine_mode, enum expand_modifier modifier);
extern int safe_from_p (rtx, tree, int);
extern void init_optabs (void);
extern void init_all_optabs (void);
extern rtx init_one_libfunc (const char *);
extern void do_jump_by_parts_equality_rtx (rtx, rtx, rtx);
extern void do_jump_by_parts_greater_rtx (enum machine_mode, int, rtx, rtx, rtx, rtx);
# 824 "/opt/local/src/gcc-3.3.3/gcc/expr.h"
extern int vector_mode_valid_p (enum machine_mode);
# 95 "/opt/local/src/gcc-3.3.3/gcc/reload.c" 2
# 1 "/opt/local/src/gcc-3.3.3/gcc/optabs.h" 1
# 24 "/opt/local/src/gcc-3.3.3/gcc/optabs.h"
# 1 "insn-codes.h" 1
enum insn_code {
CODE_FOR_get_pc = 45,
CODE_FOR_movsi_lo_sum_pic = 54,
CODE_FOR_movsi_high_pic = 55,
CODE_FOR_movdi_lo_sum_pic = 65,
CODE_FOR_movdi_high_pic = 66,
CODE_FOR_seth44 = 70,
CODE_FOR_setm44 = 71,
CODE_FOR_setl44 = 72,
CODE_FOR_sethh = 73,
CODE_FOR_setlm = 74,
CODE_FOR_sethm = 75,
CODE_FOR_setlo = 76,
CODE_FOR_embmedany_sethi = 77,
CODE_FOR_embmedany_losum = 78,
CODE_FOR_embmedany_brsum = 79,
CODE_FOR_embmedany_textuhi = 80,
CODE_FOR_embmedany_texthi = 81,
CODE_FOR_embmedany_textulo = 82,
CODE_FOR_embmedany_textlo = 83,
CODE_FOR_movdf_cc_sp64 = 111,
CODE_FOR_movdf_cc_reg_sp64 = 120,
CODE_FOR_extendsfdf2 = 150,
CODE_FOR_truncdfsf2 = 153,
CODE_FOR_floatsisf2 = 156,
CODE_FOR_floatsidf2 = 157,
CODE_FOR_floatdisf2 = 159,
CODE_FOR_floatdidf2 = 160,
CODE_FOR_fix_truncsfsi2 = 162,
CODE_FOR_fix_truncdfsi2 = 163,
CODE_FOR_fix_truncsfdi2 = 165,
CODE_FOR_fix_truncdfdi2 = 166,
CODE_FOR_adddi3_insn_sp32 = 168,
CODE_FOR_addx = 169,
CODE_FOR_subx = 172,
CODE_FOR_addsi3 = 177,
CODE_FOR_subsi3 = 185,
CODE_FOR_cmp_minus_cc_set = 188,
CODE_FOR_mulsi3 = 190,
CODE_FOR_muldi3_v8plus = 192,
CODE_FOR_mulsidi3_v8plus = 194,
CODE_FOR_const_mulsidi3_v8plus = 195,
CODE_FOR_const_mulsidi3_sp32 = 198,
CODE_FOR_const_mulsidi3_sp64 = 199,
CODE_FOR_smulsi3_highpart_v8plus = 200,
CODE_FOR_const_smulsi3_highpart_v8plus = 202,
CODE_FOR_const_smulsi3_highpart = 204,
CODE_FOR_umulsidi3_v8plus = 205,
CODE_FOR_const_umulsidi3_sp32 = 208,
CODE_FOR_const_umulsidi3_sp64 = 209,
CODE_FOR_const_umulsidi3_v8plus = 210,
CODE_FOR_umulsi3_highpart_v8plus = 211,
CODE_FOR_const_umulsi3_highpart_v8plus = 212,
CODE_FOR_const_umulsi3_highpart = 214,
CODE_FOR_divsi3_sp32 = 215,
CODE_FOR_divsi3_sp64 = 216,
CODE_FOR_divdi3 = 217,
CODE_FOR_udivsi3_sp32 = 219,
CODE_FOR_udivsi3_sp64 = 220,
CODE_FOR_udivdi3 = 221,
CODE_FOR_andsi3 = 228,
CODE_FOR_iorsi3 = 234,
CODE_FOR_xorsi3 = 240,
CODE_FOR_negsi2 = 258,
CODE_FOR_one_cmplsi2 = 265,
CODE_FOR_adddf3 = 273,
CODE_FOR_addsf3 = 274,
CODE_FOR_subdf3 = 276,
CODE_FOR_subsf3 = 277,
CODE_FOR_muldf3 = 279,
CODE_FOR_mulsf3 = 280,
CODE_FOR_divdf3 = 284,
CODE_FOR_divsf3 = 285,
CODE_FOR_negsf2 = 290,
CODE_FOR_abssf2 = 296,
CODE_FOR_sqrtdf2 = 298,
CODE_FOR_sqrtsf2 = 299,
CODE_FOR_ashlsi3 = 300,
CODE_FOR_ashldi3_v8plus = 302,
CODE_FOR_ashrsi3 = 305,
CODE_FOR_ashrdi3_v8plus = 309,
CODE_FOR_lshrsi3 = 310,
CODE_FOR_lshrdi3_v8plus = 314,
CODE_FOR_jump = 319,
CODE_FOR_blockage = 338,
CODE_FOR_update_return = 339,
CODE_FOR_nop = 340,
CODE_FOR_flush_register_windows = 343,
CODE_FOR_goto_handler_and_restore = 344,
CODE_FOR_do_builtin_setjmp_setup = 345,
CODE_FOR_flush = 346,
CODE_FOR_flushdi = 347,
CODE_FOR_ffssi2 = 348,
CODE_FOR_prefetch_64 = 360,
CODE_FOR_prefetch_32 = 361,
CODE_FOR_trap = 362,
CODE_FOR_cmpsi = 365,
CODE_FOR_cmpdi = 366,
CODE_FOR_cmpsf = 367,
CODE_FOR_cmpdf = 368,
CODE_FOR_cmptf = 369,
CODE_FOR_seqsi_special = 370,
CODE_FOR_seqdi_special = 371,
CODE_FOR_snesi_special = 372,
CODE_FOR_snedi_special = 373,
CODE_FOR_seqdi_special_trunc = 374,
CODE_FOR_snedi_special_trunc = 375,
CODE_FOR_seqsi_special_extend = 376,
CODE_FOR_snesi_special_extend = 377,
CODE_FOR_seq = 378,
CODE_FOR_sne = 379,
CODE_FOR_sgt = 380,
CODE_FOR_slt = 381,
CODE_FOR_sge = 382,
CODE_FOR_sle = 383,
CODE_FOR_sgtu = 384,
CODE_FOR_sltu = 385,
CODE_FOR_sgeu = 386,
CODE_FOR_sleu = 387,
CODE_FOR_beq = 405,
CODE_FOR_bne = 406,
CODE_FOR_bgt = 407,
CODE_FOR_bgtu = 408,
CODE_FOR_blt = 409,
CODE_FOR_bltu = 410,
CODE_FOR_bge = 411,
CODE_FOR_bgeu = 412,
CODE_FOR_ble = 413,
CODE_FOR_bleu = 414,
CODE_FOR_bunordered = 415,
CODE_FOR_bordered = 416,
CODE_FOR_bungt = 417,
CODE_FOR_bunlt = 418,
CODE_FOR_buneq = 419,
CODE_FOR_bunge = 420,
CODE_FOR_bunle = 421,
CODE_FOR_bltgt = 422,
CODE_FOR_movqi = 423,
CODE_FOR_movhi = 424,
CODE_FOR_movsi = 425,
CODE_FOR_movsi_pic_label_ref = 426,
CODE_FOR_movdi = 427,
CODE_FOR_movdi_pic_label_ref = 428,
CODE_FOR_reload_indi = 429,
CODE_FOR_reload_outdi = 430,
CODE_FOR_movsf = 438,
CODE_FOR_movdf = 439,
CODE_FOR_movtf = 446,
CODE_FOR_movqicc = 451,
CODE_FOR_movhicc = 452,
CODE_FOR_movsicc = 453,
CODE_FOR_movdicc = 454,
CODE_FOR_movsfcc = 455,
CODE_FOR_movdfcc = 456,
CODE_FOR_movtfcc = 457,
CODE_FOR_zero_extendhisi2 = 460,
CODE_FOR_zero_extendqihi2 = 461,
CODE_FOR_zero_extendqisi2 = 462,
CODE_FOR_zero_extendqidi2 = 463,
CODE_FOR_zero_extendhidi2 = 464,
CODE_FOR_zero_extendsidi2 = 465,
CODE_FOR_extendhisi2 = 467,
CODE_FOR_extendqihi2 = 468,
CODE_FOR_extendqisi2 = 469,
CODE_FOR_extendqidi2 = 470,
CODE_FOR_extendhidi2 = 471,
CODE_FOR_extendsidi2 = 472,
CODE_FOR_extendsftf2 = 473,
CODE_FOR_extenddftf2 = 474,
CODE_FOR_trunctfsf2 = 475,
CODE_FOR_trunctfdf2 = 476,
CODE_FOR_floatsitf2 = 477,
CODE_FOR_floatunssitf2 = 478,
CODE_FOR_floatunsdisf2 = 479,
CODE_FOR_floatunsdidf2 = 480,
CODE_FOR_floatditf2 = 481,
CODE_FOR_floatunsditf2 = 482,
CODE_FOR_fix_trunctfsi2 = 483,
CODE_FOR_fixuns_trunctfsi2 = 484,
CODE_FOR_fix_trunctfdi2 = 485,
CODE_FOR_fixuns_trunctfdi2 = 486,
CODE_FOR_adddi3 = 487,
CODE_FOR_subdi3 = 493,
CODE_FOR_muldi3 = 497,
CODE_FOR_mulsidi3 = 498,
CODE_FOR_smulsi3_highpart = 499,
CODE_FOR_umulsidi3 = 500,
CODE_FOR_umulsi3_highpart = 501,
CODE_FOR_divsi3 = 502,
CODE_FOR_udivsi3 = 503,
CODE_FOR_anddi3 = 504,
CODE_FOR_iordi3 = 508,
CODE_FOR_xordi3 = 511,
CODE_FOR_negdi2 = 515,
CODE_FOR_one_cmpldi2 = 517,
CODE_FOR_addtf3 = 519,
CODE_FOR_subtf3 = 520,
CODE_FOR_multf3 = 521,
CODE_FOR_divtf3 = 522,
CODE_FOR_negtf2 = 523,
CODE_FOR_negdf2 = 526,
CODE_FOR_abstf2 = 528,
CODE_FOR_absdf2 = 531,
CODE_FOR_sqrttf2 = 533,
CODE_FOR_ashldi3 = 534,
CODE_FOR_ashrdi3 = 535,
CODE_FOR_lshrdi3 = 536,
CODE_FOR_tablejump = 537,
CODE_FOR_call = 538,
CODE_FOR_call_value = 539,
CODE_FOR_untyped_call = 540,
CODE_FOR_sibcall = 541,
CODE_FOR_sibcall_value = 542,
CODE_FOR_sibcall_epilogue = 543,
CODE_FOR_untyped_return = 544,
CODE_FOR_indirect_jump = 545,
CODE_FOR_nonlocal_goto = 546,
CODE_FOR_builtin_setjmp_setup = 547,
CODE_FOR_setjmp = 548,
CODE_FOR_setjmp_32 = 549,
CODE_FOR_setjmp_64 = 550,
CODE_FOR_prefetch = 563,
CODE_FOR_prologue = 564,
CODE_FOR_exception_receiver = 565,
CODE_FOR_builtin_setjmp_receiver = 566,
CODE_FOR_conditional_trap = 567,
CODE_FOR_nothing
};
# 25 "/opt/local/src/gcc-3.3.3/gcc/optabs.h" 2
# 41 "/opt/local/src/gcc-3.3.3/gcc/optabs.h"
struct optab
{
enum rtx_code code;
struct optab_handlers {
enum insn_code insn_code;
rtx libfunc;
} handlers [(int) MAX_MACHINE_MODE];
};
typedef struct optab * optab;
enum optab_index
{
OTI_add,
OTI_addv,
OTI_sub,
OTI_subv,
OTI_smul,
OTI_smulv,
OTI_smul_highpart,
OTI_umul_highpart,
OTI_smul_widen,
OTI_umul_widen,
OTI_sdiv,
OTI_sdivv,
OTI_sdivmod,
OTI_udiv,
OTI_udivmod,
OTI_smod,
OTI_umod,
OTI_ftrunc,
OTI_and,
OTI_ior,
OTI_xor,
OTI_ashl,
OTI_lshr,
OTI_ashr,
OTI_rotl,
OTI_rotr,
OTI_smin,
OTI_smax,
OTI_umin,
OTI_umax,
OTI_mov,
OTI_movstrict,
OTI_neg,
OTI_negv,
OTI_abs,
OTI_absv,
OTI_one_cmpl,
OTI_ffs,
OTI_sqrt,
OTI_sin,
OTI_cos,
OTI_exp,
OTI_log,
OTI_cmp,
OTI_ucmp,
OTI_tst,
OTI_strlen,
OTI_cbranch,
OTI_cmov,
OTI_cstore,
OTI_push,
OTI_MAX
};
extern optab optab_table[OTI_MAX];
# 220 "/opt/local/src/gcc-3.3.3/gcc/optabs.h"
extern enum insn_code extendtab[MAX_MACHINE_MODE][MAX_MACHINE_MODE][2];
extern enum insn_code fixtab[(int) MAX_MACHINE_MODE][(int) MAX_MACHINE_MODE][2];
extern enum insn_code fixtrunctab[(int) MAX_MACHINE_MODE][(int) MAX_MACHINE_MODE][2];
extern enum insn_code floattab[(int) MAX_MACHINE_MODE][(int) MAX_MACHINE_MODE][2];
extern enum insn_code reload_in_optab[(int) MAX_MACHINE_MODE];
extern enum insn_code reload_out_optab[(int) MAX_MACHINE_MODE];
extern optab code_to_optab[((int) LAST_AND_UNUSED_RTX_CODE) + 1];
typedef rtx (*rtxfun) (rtx);
extern rtxfun bcc_gen_fctn[((int) LAST_AND_UNUSED_RTX_CODE)];
extern enum insn_code setcc_gen_code[((int) LAST_AND_UNUSED_RTX_CODE)];
extern enum insn_code movcc_gen_code[(int) MAX_MACHINE_MODE];
extern enum insn_code movstr_optab[(int) MAX_MACHINE_MODE];
extern enum insn_code clrstr_optab[(int) MAX_MACHINE_MODE];
extern rtx expand_binop (enum machine_mode, optab, rtx, rtx, rtx, int, enum optab_methods);
extern rtx sign_expand_binop (enum machine_mode, optab, optab, rtx, rtx, rtx, int, enum optab_methods);
extern int expand_twoval_binop (optab, rtx, rtx, rtx, rtx, int);
extern rtx expand_unop (enum machine_mode, optab, rtx, rtx, int);
extern rtx expand_abs (enum machine_mode, rtx, rtx, int, int);
extern rtx expand_complex_abs (enum machine_mode, rtx, rtx, int);
extern void emit_unop_insn (int, rtx, rtx, enum rtx_code);
extern rtx emit_no_conflict_block (rtx, rtx, rtx, rtx, rtx);
extern void emit_clr_insn (rtx);
extern void emit_0_to_1_insn (rtx);
extern void emit_cmp_insn (rtx, rtx, enum rtx_code, rtx, enum machine_mode, int);
enum can_compare_purpose
{
ccp_jump,
ccp_cmov,
ccp_store_flag
};
extern int can_compare_p (enum rtx_code, enum machine_mode, enum can_compare_purpose);
extern rtx prepare_operand (int, rtx, int, enum machine_mode, enum machine_mode, int);
extern enum insn_code can_extend_p (enum machine_mode, enum machine_mode, int);
extern rtx gen_extend_insn (rtx, rtx, enum machine_mode, enum machine_mode, int);
extern void init_fixtab (void);
extern void init_floattab (void);
extern void expand_float (rtx, rtx, int);
extern void expand_fix (rtx, rtx, int);
# 96 "/opt/local/src/gcc-3.3.3/gcc/reload.c" 2
# 1 "/opt/local/src/gcc-3.3.3/gcc/recog.h" 1
# 28 "/opt/local/src/gcc-3.3.3/gcc/recog.h"
enum op_type {
OP_IN,
OP_OUT,
OP_INOUT
};
struct operand_alternative
{
const char *constraint;
enum reg_class class;
unsigned int reject;
int matches;
int matched;
unsigned int earlyclobber:1;
unsigned int memory_ok:1;
unsigned int offmem_ok:1;
unsigned int nonoffmem_ok:1;
unsigned int decmem_ok:1;
unsigned int incmem_ok:1;
unsigned int is_address:1;
unsigned int anything_ok:1;
};
extern void init_recog (void);
extern void init_recog_no_volatile (void);
extern int recog_memoized_1 (rtx);
extern int check_asm_operands (rtx);
extern int asm_operand_ok (rtx, const char *);
extern int validate_change (rtx, rtx *, rtx, int);
extern int insn_invalid_p (rtx);
extern int apply_change_group (void);
extern int num_validated_changes (void);
extern void cancel_changes (int);
extern int constrain_operands (int);
extern int constrain_operands_cached (int);
extern int memory_address_p (enum machine_mode, rtx);
extern int strict_memory_address_p (enum machine_mode, rtx);
extern int validate_replace_rtx_subexp (rtx, rtx, rtx, rtx *);
extern int validate_replace_rtx (rtx, rtx, rtx);
extern void validate_replace_rtx_group (rtx, rtx, rtx);
extern int validate_replace_src (rtx, rtx, rtx);
extern void validate_replace_src_group (rtx, rtx, rtx);
extern int num_changes_pending (void);
extern int reg_fits_class_p (rtx, enum reg_class, int, enum machine_mode);
extern rtx *find_single_use (rtx, rtx, rtx *);
extern int general_operand (rtx, enum machine_mode);
extern int address_operand (rtx, enum machine_mode);
extern int register_operand (rtx, enum machine_mode);
extern int pmode_register_operand (rtx, enum machine_mode);
extern int scratch_operand (rtx, enum machine_mode);
extern int immediate_operand (rtx, enum machine_mode);
extern int const_int_operand (rtx, enum machine_mode);
extern int const_double_operand (rtx, enum machine_mode);
extern int nonimmediate_operand (rtx, enum machine_mode);
extern int nonmemory_operand (rtx, enum machine_mode);
extern int push_operand (rtx, enum machine_mode);
extern int pop_operand (rtx, enum machine_mode);
extern int memory_operand (rtx, enum machine_mode);
extern int indirect_operand (rtx, enum machine_mode);
extern int mode_independent_operand (rtx, enum machine_mode);
extern int comparison_operator (rtx, enum machine_mode);
extern int offsettable_memref_p (rtx);
extern int offsettable_nonstrict_memref_p (rtx);
extern int offsettable_address_p (int, enum machine_mode, rtx);
extern int mode_dependent_address_p (rtx);
extern int recog (rtx, rtx, int *);
extern void add_clobbers (rtx, int);
extern int added_clobbers_hard_reg_p (int);
extern void insn_extract (rtx);
extern void extract_insn (rtx);
extern void extract_constrain_insn_cached (rtx);
extern void extract_insn_cached (rtx);
extern void preprocess_constraints (void);
extern rtx peep2_next_insn (int);
extern int peep2_regno_dead_p (int, int);
extern int peep2_reg_dead_p (int, rtx);
extern void peephole2_optimize (FILE *);
extern rtx peephole2_insns (rtx, rtx, int *);
extern int store_data_bypass_p (rtx, rtx);
extern int if_test_bypass_p (rtx, rtx);
extern int volatile_ok;
extern int which_alternative;
struct recog_data
{
rtx operand[30];
rtx *operand_loc[30];
const char *constraints[30];
enum machine_mode operand_mode[30];
enum op_type operand_type[30];
rtx *dup_loc[2];
char dup_num[2];
# 196 "/opt/local/src/gcc-3.3.3/gcc/recog.h"
char n_operands;
char n_dups;
char n_alternatives;
rtx insn;
};
extern struct recog_data recog_data;
extern struct operand_alternative recog_op_alt[30][30];
typedef int (*insn_operand_predicate_fn) (rtx, enum machine_mode);
typedef const char * (*insn_output_fn) (rtx *, rtx);
typedef rtx (*insn_gen_fn) (rtx, ...);
struct insn_operand_data
{
const insn_operand_predicate_fn predicate;
const char *const constraint;
const enum machine_mode mode : 16;
const char strict_low;
const char eliminable;
};
# 241 "/opt/local/src/gcc-3.3.3/gcc/recog.h"
struct insn_data
{
const char *const name;
const void * output;
const insn_gen_fn genfun;
const struct insn_operand_data *const operand;
const char n_operands;
const char n_dups;
const char n_alternatives;
const char output_format;
};
extern const struct insn_data insn_data[];
# 97 "/opt/local/src/gcc-3.3.3/gcc/reload.c" 2
# 1 "/opt/local/src/gcc-3.3.3/gcc/reload.h" 1
# 47 "/opt/local/src/gcc-3.3.3/gcc/reload.h"
extern int memory_move_secondary_cost (enum machine_mode, enum reg_class, int);
# 76 "/opt/local/src/gcc-3.3.3/gcc/reload.h"
enum reload_type
{
RELOAD_FOR_INPUT, RELOAD_FOR_OUTPUT, RELOAD_FOR_INSN,
RELOAD_FOR_INPUT_ADDRESS, RELOAD_FOR_INPADDR_ADDRESS,
RELOAD_FOR_OUTPUT_ADDRESS, RELOAD_FOR_OUTADDR_ADDRESS,
RELOAD_FOR_OPERAND_ADDRESS, RELOAD_FOR_OPADDR_ADDR,
RELOAD_OTHER, RELOAD_FOR_OTHER_ADDRESS
};
struct reload
{
rtx in;
rtx out;
enum reg_class class;
enum machine_mode inmode;
enum machine_mode outmode;
enum machine_mode mode;
unsigned int nregs;
int inc;
rtx in_reg;
rtx out_reg;
int regno;
rtx reg_rtx;
int opnum;
int secondary_in_reload;
int secondary_out_reload;
enum insn_code secondary_in_icode;
enum insn_code secondary_out_icode;
enum reload_type when_needed;
unsigned int optional:1;
unsigned int nocombine:1;
unsigned int secondary_p:1;
unsigned int nongroup:1;
};
extern struct reload rld[(2 * 30 * (2 + 1))];
extern int n_reloads;
extern rtx *reg_equiv_constant;
extern rtx *reg_equiv_memory_loc;
extern rtx *reg_equiv_address;
extern rtx *reg_equiv_mem;
extern int n_earlyclobbers;
extern rtx reload_earlyclobbers[30];
extern int reload_n_operands;
extern int reload_first_uid;
extern char indirect_symref_ok;
extern char double_reg_address_ok;
extern int num_not_at_initial_offset;
struct needs
{
short regs[2][(int) LIM_REG_CLASSES];
short groups[(int) LIM_REG_CLASSES];
};
# 260 "/opt/local/src/gcc-3.3.3/gcc/reload.h"
extern rtx get_secondary_mem (rtx, enum machine_mode, int, enum reload_type);
extern void clear_secondary_mem (void);
extern void transfer_replacements (int, int);
extern int remove_address_replacements (rtx in_rtx);
extern int operands_match_p (rtx, rtx);
extern int safe_from_earlyclobber (rtx, rtx);
extern int find_reloads (rtx, int, int, int, short *);
extern rtx form_sum (rtx, rtx);
extern void subst_reloads (rtx);
extern void copy_replacements (rtx, rtx);
extern void move_replacements (rtx *x, rtx *y);
extern rtx find_replacement (rtx *);
extern int refers_to_regno_for_reload_p (unsigned int, unsigned int, rtx, rtx *);
extern int reg_overlap_mentioned_for_reload_p (rtx, rtx);
extern int refers_to_mem_for_reload_p (rtx);
extern rtx find_equiv_reg (rtx, rtx, enum reg_class, int, short *, int, enum machine_mode);
extern int regno_clobbered_p (unsigned int, rtx, enum machine_mode, int);
extern int earlyclobber_operand_p (rtx);
extern int push_reload (rtx, rtx, rtx *, rtx *, enum reg_class, enum machine_mode, enum machine_mode, int, int, int, enum reload_type);
extern void reload_cse_regs (rtx);
extern int reloads_conflict (int, int);
extern void init_reload (void);
extern int reload (rtx, int);
extern void mark_home_live (int);
extern rtx eliminate_regs (rtx, enum machine_mode, rtx);
extern rtx gen_reload (rtx, rtx, int, enum reload_type);
extern void deallocate_reload_reg (int r);
extern void init_caller_save (void);
extern void init_save_areas (void);
extern void setup_save_areas (void);
extern void save_call_clobbered_regs (void);
extern void cleanup_subreg_operands (rtx);
extern void debug_reload_to_stream (FILE *);
extern void debug_reload (void);
# 98 "/opt/local/src/gcc-3.3.3/gcc/reload.c" 2
# 1 "/opt/local/src/gcc-3.3.3/gcc/regs.h" 1
# 23 "/opt/local/src/gcc-3.3.3/gcc/regs.h"
# 1 "/opt/local/src/gcc-3.3.3/gcc/varray.h" 1
# 36 "/opt/local/src/gcc-3.3.3/gcc/varray.h"
struct const_equiv_data {
# 50 "/opt/local/src/gcc-3.3.3/gcc/varray.h"
struct rtx_def *rtx;
unsigned age;
};
enum varray_data_enum {
VARRAY_DATA_C,
VARRAY_DATA_UC,
VARRAY_DATA_S,
VARRAY_DATA_US,
VARRAY_DATA_I,
VARRAY_DATA_U,
VARRAY_DATA_L,
VARRAY_DATA_UL,
VARRAY_DATA_HINT,
VARRAY_DATA_UHINT,
VARRAY_DATA_GENERIC,
VARRAY_DATA_CPTR,
VARRAY_DATA_RTX,
VARRAY_DATA_RTVEC,
VARRAY_DATA_TREE,
VARRAY_DATA_BITMAP,
VARRAY_DATA_REG,
VARRAY_DATA_CONST_EQUIV,
VARRAY_DATA_BB,
VARRAY_DATA_TE,
NUM_VARRAY_DATA
};
typedef union varray_data_tag {
char c[1];
unsigned char uc[1];
short s[1];
unsigned short us[1];
int i[1];
unsigned int u[1];
long l[1];
unsigned long ul[1];
long long hint[1];
unsigned long long uhint[1];
void * generic[1];
char * cptr[1];
struct rtx_def * rtx[1];
struct rtvec_def * rtvec[1];
union tree_node * tree[1];
struct bitmap_head_def * bitmap[1];
struct reg_info_def * reg[1];
struct const_equiv_data const_equiv[1];
struct basic_block_def * bb[1];
struct elt_list * te[1];
} varray_data;
struct varray_head_tag {
size_t num_elements;
size_t elements_used;
enum varray_data_enum type;
const char *name;
varray_data data;
};
typedef struct varray_head_tag *varray_type;
extern varray_type varray_init (size_t, enum varray_data_enum, const char *);
# 211 "/opt/local/src/gcc-3.3.3/gcc/varray.h"
extern varray_type varray_grow (varray_type, size_t);
# 222 "/opt/local/src/gcc-3.3.3/gcc/varray.h"
extern void varray_clear (varray_type);
# 24 "/opt/local/src/gcc-3.3.3/gcc/regs.h" 2
# 1 "/opt/local/src/gcc-3.3.3/gcc/hard-reg-set.h" 1
# 41 "/opt/local/src/gcc-3.3.3/gcc/hard-reg-set.h"
typedef unsigned long long HARD_REG_ELT_TYPE;
# 52 "/opt/local/src/gcc-3.3.3/gcc/hard-reg-set.h"
typedef HARD_REG_ELT_TYPE HARD_REG_SET[((102 + (8 * 8) - 1) / (8 * 8))];
# 395 "/opt/local/src/gcc-3.3.3/gcc/hard-reg-set.h"
extern char fixed_regs[102];
extern HARD_REG_SET fixed_reg_set;
extern char call_used_regs[102];
extern HARD_REG_SET call_used_reg_set;
extern HARD_REG_SET losing_caller_save_reg_set;
extern char call_fixed_regs[102];
extern HARD_REG_SET call_fixed_reg_set;
extern char global_regs[102];
# 445 "/opt/local/src/gcc-3.3.3/gcc/hard-reg-set.h"
extern HARD_REG_SET regs_invalidated_by_call;
extern int reg_alloc_order[102];
extern int inv_reg_alloc_order[102];
extern HARD_REG_SET reg_class_contents[(int) LIM_REG_CLASSES];
extern unsigned int reg_class_size[(int) LIM_REG_CLASSES];
extern enum reg_class reg_class_superclasses[(int) LIM_REG_CLASSES][(int) LIM_REG_CLASSES];
extern enum reg_class reg_class_subclasses[(int) LIM_REG_CLASSES][(int) LIM_REG_CLASSES];
extern enum reg_class reg_class_subunion[(int) LIM_REG_CLASSES][(int) LIM_REG_CLASSES];
extern enum reg_class reg_class_superunion[(int) LIM_REG_CLASSES][(int) LIM_REG_CLASSES];
extern int n_non_fixed_regs;
extern const char * reg_names[102];
# 25 "/opt/local/src/gcc-3.3.3/gcc/regs.h" 2
# 1 "/opt/local/src/gcc-3.3.3/gcc/basic-block.h" 1
# 25 "/opt/local/src/gcc-3.3.3/gcc/basic-block.h"
# 1 "/opt/local/src/gcc-3.3.3/gcc/bitmap.h" 1
# 29 "/opt/local/src/gcc-3.3.3/gcc/bitmap.h"
typedef unsigned long BITMAP_WORD;
# 51 "/opt/local/src/gcc-3.3.3/gcc/bitmap.h"
typedef struct bitmap_element_def
{
struct bitmap_element_def *next;
struct bitmap_element_def *prev;
unsigned int indx;
BITMAP_WORD bits[((128 + (8 * 4) - 1) / (8 * 4))];
} bitmap_element;
typedef struct bitmap_head_def {
bitmap_element *first;
bitmap_element *current;
unsigned int indx;
int using_obstack;
} bitmap_head;
typedef struct bitmap_head_def *bitmap;
enum bitmap_bits {
BITMAP_AND,
BITMAP_AND_COMPL,
BITMAP_IOR,
BITMAP_XOR,
BITMAP_IOR_COMPL
};
extern bitmap_element bitmap_zero_bits;
extern void bitmap_clear (bitmap);
extern void bitmap_copy (bitmap, bitmap);
extern int bitmap_equal_p (bitmap, bitmap);
extern int bitmap_operation (bitmap, bitmap, bitmap, enum bitmap_bits);
extern void bitmap_ior_and_compl (bitmap, bitmap, bitmap);
extern void bitmap_clear_bit (bitmap, int);
extern void bitmap_set_bit (bitmap, int);
extern int bitmap_bit_p (bitmap, int);
extern void debug_bitmap (bitmap);
extern void debug_bitmap_file (FILE *, bitmap);
extern void bitmap_print (FILE *, bitmap, const char *, const char *);
extern bitmap bitmap_initialize (bitmap head, int using_obstack);
extern void bitmap_release_memory (void);
extern int bitmap_union_of_diff (bitmap, bitmap, bitmap, bitmap);
extern int bitmap_first_set_bit (bitmap);
extern int bitmap_last_set_bit (bitmap);
# 26 "/opt/local/src/gcc-3.3.3/gcc/basic-block.h" 2
# 1 "/opt/local/src/gcc-3.3.3/gcc/sbitmap.h" 1
# 31 "/opt/local/src/gcc-3.3.3/gcc/sbitmap.h"
typedef struct simple_bitmap_def
{
unsigned int n_bits;
unsigned int size;
unsigned int bytes;
unsigned long long elms[1];
} *sbitmap;
typedef unsigned long long *sbitmap_ptr;
# 119 "/opt/local/src/gcc-3.3.3/gcc/sbitmap.h"
struct int_list;
extern void dump_sbitmap (FILE *, sbitmap);
extern void dump_sbitmap_file (FILE *, sbitmap);
extern void dump_sbitmap_vector (FILE *, const char *, const char *, sbitmap *, int);
extern sbitmap sbitmap_alloc (unsigned int);
extern sbitmap *sbitmap_vector_alloc (unsigned int, unsigned int);
extern sbitmap sbitmap_resize (sbitmap, unsigned int, int);
extern void sbitmap_copy (sbitmap, sbitmap);
extern int sbitmap_equal (sbitmap, sbitmap);
extern void sbitmap_zero (sbitmap);
extern void sbitmap_ones (sbitmap);
extern void sbitmap_vector_zero (sbitmap *, unsigned int);
extern void sbitmap_vector_ones (sbitmap *, unsigned int);
extern void sbitmap_union_of_diff (sbitmap, sbitmap, sbitmap, sbitmap);
extern _Bool sbitmap_union_of_diff_cg (sbitmap, sbitmap, sbitmap, sbitmap);
extern void sbitmap_difference (sbitmap, sbitmap, sbitmap);
extern void sbitmap_not (sbitmap, sbitmap);
extern void sbitmap_a_or_b_and_c (sbitmap, sbitmap, sbitmap, sbitmap);
extern _Bool sbitmap_a_or_b_and_c_cg (sbitmap, sbitmap, sbitmap, sbitmap);
extern void sbitmap_a_and_b_or_c (sbitmap, sbitmap, sbitmap, sbitmap);
extern _Bool sbitmap_a_and_b_or_c_cg (sbitmap, sbitmap, sbitmap, sbitmap);
extern void sbitmap_a_and_b (sbitmap, sbitmap, sbitmap);
extern _Bool sbitmap_a_and_b_cg (sbitmap, sbitmap, sbitmap);
extern void sbitmap_a_or_b (sbitmap, sbitmap, sbitmap);
extern _Bool sbitmap_a_or_b_cg (sbitmap, sbitmap, sbitmap);
extern void sbitmap_a_xor_b (sbitmap, sbitmap, sbitmap);
extern _Bool sbitmap_a_xor_b_cg (sbitmap, sbitmap, sbitmap);
extern _Bool sbitmap_a_subset_b_p (sbitmap, sbitmap);
extern int sbitmap_first_set_bit (sbitmap);
extern int sbitmap_last_set_bit (sbitmap);
extern void sbitmap_intersect_of_predsucc (sbitmap, sbitmap *, int, struct int_list **);
extern void sbitmap_union_of_predsucc (sbitmap, sbitmap *, int, struct int_list **);
extern void sbitmap_intersection_of_succs (sbitmap, sbitmap *, int);
extern void sbitmap_intersection_of_preds (sbitmap, sbitmap *, int);
extern void sbitmap_union_of_succs (sbitmap, sbitmap *, int);
extern void sbitmap_union_of_preds (sbitmap, sbitmap *, int);
extern void debug_sbitmap (sbitmap);
# 27 "/opt/local/src/gcc-3.3.3/gcc/basic-block.h" 2
# 1 "/opt/local/src/gcc-3.3.3/include/partition.h" 1
# 46 "/opt/local/src/gcc-3.3.3/include/partition.h"
struct partition_elem
{
int class_element;
struct partition_elem* next;
unsigned class_count;
};
typedef struct partition_def
{
int num_elements;
struct partition_elem elements[1];
} *partition;
extern partition partition_new (int);
extern void partition_delete (partition);
extern int partition_union (partition, int, int);
extern void partition_print (partition, FILE*);
# 29 "/opt/local/src/gcc-3.3.3/gcc/basic-block.h" 2
typedef bitmap_head regset_head;
typedef bitmap regset;
# 75 "/opt/local/src/gcc-3.3.3/gcc/basic-block.h"
extern void reg_set_to_hard_reg_set (HARD_REG_SET *, bitmap);
# 117 "/opt/local/src/gcc-3.3.3/gcc/basic-block.h"
typedef long long gcov_type;
typedef struct edge_def {
struct edge_def *pred_next, *succ_next;
struct basic_block_def *src, *dest;
rtx insns;
void *aux;
int flags;
int probability;
gcov_type count;
} *edge;
# 179 "/opt/local/src/gcc-3.3.3/gcc/basic-block.h"
typedef struct basic_block_def {
rtx head, end;
tree head_tree;
tree end_tree;
edge pred, succ;
regset local_set;
regset cond_local_set;
regset global_live_at_start;
regset global_live_at_end;
void *aux;
int index;
struct basic_block_def *prev_bb, *next_bb;
int loop_depth;
struct loop *loop_father;
gcov_type count;
int frequency;
int flags;
} *basic_block;
# 242 "/opt/local/src/gcc-3.3.3/gcc/basic-block.h"
extern int n_basic_blocks;
extern int last_basic_block;
extern int n_edges;
extern varray_type basic_block_info;
# 276 "/opt/local/src/gcc-3.3.3/gcc/basic-block.h"
extern regset regs_live_at_setjmp;
extern rtx label_value_list;
extern rtx tail_recursion_label_list;
extern struct obstack flow_obstack;
# 313 "/opt/local/src/gcc-3.3.3/gcc/basic-block.h"
extern struct basic_block_def entry_exit_blocks[2];
extern void compute_bb_for_insn (void);
extern void free_bb_for_insn (void);
extern void update_bb_for_insn (basic_block);
extern void free_basic_block_vars (int);
extern edge split_block (basic_block, rtx);
extern basic_block split_edge (edge);
extern void insert_insn_on_edge (rtx, edge);
extern void commit_edge_insertions (void);
extern void commit_edge_insertions_watch_calls (void);
extern void remove_fake_edges (void);
extern void add_noreturn_fake_exit_edges (void);
extern void connect_infinite_loops_to_exit (void);
extern int flow_call_edges_add (sbitmap);
extern edge cached_make_edge (sbitmap *, basic_block, basic_block, int);
extern edge unchecked_make_edge (basic_block, basic_block, int);
extern edge make_edge (basic_block, basic_block, int);
extern edge make_single_succ_edge (basic_block, basic_block, int);
extern void remove_edge (edge);
extern void redirect_edge_succ (edge, basic_block);
extern edge redirect_edge_succ_nodup (edge, basic_block);
extern void redirect_edge_pred (edge, basic_block);
extern basic_block create_basic_block_structure (rtx, rtx, rtx, basic_block);
extern basic_block create_basic_block (rtx, rtx, basic_block);
extern int flow_delete_block (basic_block);
extern int flow_delete_block_noexpunge (basic_block);
extern void clear_bb_flags (void);
extern void merge_blocks_nomove (basic_block, basic_block);
extern void tidy_fallthru_edge (edge, basic_block, basic_block);
extern void tidy_fallthru_edges (void);
extern void flow_reverse_top_sort_order_compute (int *);
extern int flow_depth_first_order_compute (int *, int *);
extern void flow_preorder_transversal_compute (int *);
extern void dump_edge_info (FILE *, edge, int);
extern void clear_edges (void);
extern void mark_critical_edges (void);
extern rtx first_insn_after_basic_block_note (basic_block);
typedef struct dominance_info *dominance_info;
struct loop
{
int num;
basic_block header;
basic_block latch;
basic_block pre_header;
edge *pre_header_edges;
int num_pre_header_edges;
basic_block first;
basic_block last;
sbitmap nodes;
int num_nodes;
edge *entry_edges;
int num_entries;
edge *exit_edges;
int num_exits;
sbitmap exits_doms;
int depth;
struct loop **pred;
int level;
struct loop *outer;
struct loop *inner;
struct loop *next;
int invalid;
void *aux;
rtx vtop;
rtx cont;
rtx start;
rtx end;
rtx top;
rtx scan_start;
rtx sink;
# 482 "/opt/local/src/gcc-3.3.3/gcc/basic-block.h"
rtx exit_labels;
int exit_count;
};
struct loops
{
int num;
int levels;
struct loop *array;
struct loop **parray;
struct loop *tree_root;
struct cfg
{
dominance_info dom;
int *dfs_order;
int *rc_order;
} cfg;
sbitmap shared_headers;
};
typedef struct ce_if_block
{
basic_block test_bb;
basic_block then_bb;
basic_block else_bb;
basic_block join_bb;
basic_block last_test_bb;
int num_multiple_test_blocks;
int num_and_and_blocks;
int num_or_or_blocks;
int num_multiple_test_insns;
int and_and_p;
int num_then_insns;
int num_else_insns;
int pass;
} ce_if_block_t;
extern int flow_loops_find (struct loops *, int flags);
extern int flow_loops_update (struct loops *, int flags);
extern void flow_loops_free (struct loops *);
extern void flow_loops_dump (const struct loops *, FILE *, void (*)(const struct loop *, FILE *, int), int);
extern void flow_loop_dump (const struct loop *, FILE *, void (*)(const struct loop *, FILE *, int), int);
extern int flow_loop_scan (struct loops *, struct loop *, int);
extern void flow_loop_tree_node_add (struct loop *, struct loop *);
extern void flow_loop_tree_node_remove (struct loop *);
struct edge_list
{
int num_blocks;
int num_edges;
edge *index_to_edge;
};
# 613 "/opt/local/src/gcc-3.3.3/gcc/basic-block.h"
struct edge_list * create_edge_list (void);
void free_edge_list (struct edge_list *);
void print_edge_list (FILE *, struct edge_list *);
void verify_edge_list (FILE *, struct edge_list *);
int find_edge_index (struct edge_list *, basic_block, basic_block);
enum update_life_extent
{
UPDATE_LIFE_LOCAL = 0,
UPDATE_LIFE_GLOBAL = 1,
UPDATE_LIFE_GLOBAL_RM_NOTES = 2
};
# 668 "/opt/local/src/gcc-3.3.3/gcc/basic-block.h"
extern void life_analysis (rtx, FILE *, int);
extern int update_life_info (sbitmap, enum update_life_extent, int);
extern int update_life_info_in_dirty_blocks (enum update_life_extent, int);
extern int count_or_remove_death_notes (sbitmap, int);
extern int propagate_block (basic_block, regset, regset, regset, int);
struct propagate_block_info;
extern rtx propagate_one_insn (struct propagate_block_info *, rtx);
extern struct propagate_block_info *init_propagate_block_info
(basic_block, regset, regset, regset, int);
extern void free_propagate_block_info (struct propagate_block_info *);
extern struct edge_list *pre_edge_lcm (FILE *, int, sbitmap *, sbitmap *, sbitmap *, sbitmap *, sbitmap **, sbitmap **);
extern struct edge_list *pre_edge_rev_lcm (FILE *, int, sbitmap *, sbitmap *, sbitmap *, sbitmap *, sbitmap **, sbitmap **);
extern void compute_available (sbitmap *, sbitmap *, sbitmap *, sbitmap *);
extern int optimize_mode_switching (FILE *);
extern rtx emit_block_insn_after (rtx, rtx, basic_block);
extern rtx emit_block_insn_before (rtx, rtx, basic_block);
extern void estimate_probability (struct loops *);
extern void note_prediction_to_br_prob (void);
extern void expected_value_to_br_prob (void);
extern void note_prediction_to_br_prob (void);
extern _Bool maybe_hot_bb_p (basic_block);
extern _Bool probably_cold_bb_p (basic_block);
extern _Bool probably_never_executed_bb_p (basic_block);
extern void init_flow (void);
extern void reorder_basic_blocks (void);
extern void dump_bb (basic_block, FILE *);
extern void debug_bb (basic_block);
extern void debug_bb_n (int);
extern void dump_regset (regset, FILE *);
extern void debug_regset (regset);
extern void allocate_reg_life_data (void);
extern void allocate_bb_life_data (void);
extern void expunge_block (basic_block);
extern void link_block (basic_block, basic_block);
extern void unlink_block (basic_block);
extern void compact_blocks (void);
extern basic_block alloc_block (void);
extern void find_unreachable_blocks (void);
extern int delete_noop_moves (rtx);
extern basic_block redirect_edge_and_branch_force (edge, basic_block);
extern basic_block force_nonfallthru (edge);
extern _Bool redirect_edge_and_branch (edge, basic_block);
extern rtx block_label (basic_block);
extern _Bool forwarder_block_p (basic_block);
extern _Bool purge_all_dead_edges (int);
extern _Bool purge_dead_edges (basic_block);
extern void find_sub_basic_blocks (basic_block);
extern void find_many_sub_basic_blocks (sbitmap);
extern _Bool can_fallthru (basic_block, basic_block);
extern void flow_nodes_print (const char *, const sbitmap, FILE *);
extern void flow_edge_list_print (const char *, const edge *, int, FILE *);
extern void alloc_aux_for_block (basic_block, int);
extern void alloc_aux_for_blocks (int);
extern void clear_aux_for_blocks (void);
extern void free_aux_for_blocks (void);
extern void alloc_aux_for_edge (edge, int);
extern void alloc_aux_for_edges (int);
extern void clear_aux_for_edges (void);
extern void free_aux_for_edges (void);
extern void verify_flow_info (void);
extern _Bool flow_loop_outside_edge_p (const struct loop *, edge);
extern _Bool flow_loop_nested_p (const struct loop *, const struct loop *);
extern _Bool flow_bb_inside_loop_p (const struct loop *, const basic_block);
extern basic_block *get_loop_body (const struct loop *);
extern int dfs_enumerate_from (basic_block, int, _Bool (*)(basic_block, void *), basic_block *, int, void *);
extern edge loop_preheader_edge (struct loop *);
extern edge loop_latch_edge (struct loop *);
extern void add_bb_to_loop (basic_block, struct loop *);
extern void remove_bb_from_loops (basic_block);
extern struct loop * find_common_loop (struct loop *, struct loop *);
extern void verify_loop_structure (struct loops *, int);
typedef struct conflict_graph_def *conflict_graph;
typedef int (*conflict_graph_enum_fn) (int, int, void *);
extern conflict_graph conflict_graph_new
(int);
extern void conflict_graph_delete (conflict_graph);
extern int conflict_graph_add (conflict_graph, int, int);
extern int conflict_graph_conflict_p (conflict_graph, int, int);
extern void conflict_graph_enum (conflict_graph, int, conflict_graph_enum_fn, void *);
extern void conflict_graph_merge_regs (conflict_graph, int, int);
extern void conflict_graph_print (conflict_graph, FILE*);
extern conflict_graph conflict_graph_compute
(regset, partition);
extern _Bool mark_dfs_back_edges (void);
extern void set_edge_can_fallthru_flag (void);
extern void update_br_prob_note (basic_block);
extern void fixup_abnormal_edges (void);
extern _Bool can_hoist_insn_p (rtx, rtx, regset);
extern rtx hoist_insn_after (rtx, rtx, rtx, rtx);
extern rtx hoist_insn_to_edge (rtx, edge, rtx, rtx);
extern _Bool control_flow_insn_p (rtx);
enum cdi_direction
{
CDI_DOMINATORS,
CDI_POST_DOMINATORS
};
extern dominance_info calculate_dominance_info (enum cdi_direction);
extern void free_dominance_info (dominance_info);
extern basic_block nearest_common_dominator (dominance_info, basic_block, basic_block);
extern void set_immediate_dominator (dominance_info, basic_block, basic_block);
extern basic_block get_immediate_dominator (dominance_info, basic_block);
extern _Bool dominated_by_p (dominance_info, basic_block, basic_block);
extern int get_dominated_by (dominance_info, basic_block, basic_block **);
extern void add_to_dominance_info (dominance_info, basic_block);
extern void delete_from_dominance_info (dominance_info, basic_block);
basic_block recount_dominator (dominance_info, basic_block);
extern void redirect_immediate_dominators (dominance_info, basic_block, basic_block);
void iterate_fix_dominators (dominance_info, basic_block *, int);
extern void verify_dominators (dominance_info);
# 26 "/opt/local/src/gcc-3.3.3/gcc/regs.h" 2
# 44 "/opt/local/src/gcc-3.3.3/gcc/regs.h"
extern int max_regno;
typedef struct reg_info_def
{
int first_uid;
int last_uid;
int last_note_uid;
int sets;
int refs;
int freq;
int deaths;
int live_length;
int calls_crossed;
int basic_block;
char changes_mode;
} reg_info;
extern varray_type reg_n_info;
extern bitmap_head subregs_of_mode;
# 154 "/opt/local/src/gcc-3.3.3/gcc/regs.h"
extern short *reg_renumber;
extern char regs_ever_live[102];
extern const char * reg_names[102];
extern enum machine_mode reg_raw_mode[102];
# 193 "/opt/local/src/gcc-3.3.3/gcc/regs.h"
extern rtx regs_may_share;
extern int caller_save_needed;
# 227 "/opt/local/src/gcc-3.3.3/gcc/regs.h"
extern void allocate_reg_info (size_t, int, int);
# 99 "/opt/local/src/gcc-3.3.3/gcc/reload.c" 2
# 1 "/opt/local/src/gcc-3.3.3/gcc/flags.h" 1
# 26 "/opt/local/src/gcc-3.3.3/gcc/flags.h"
extern const char *main_input_filename;
enum debug_info_type
{
NO_DEBUG,
DBX_DEBUG,
SDB_DEBUG,
DWARF_DEBUG,
DWARF2_DEBUG,
XCOFF_DEBUG,
VMS_DEBUG,
VMS_AND_DWARF2_DEBUG
};
extern enum debug_info_type write_symbols;
enum debug_info_level
{
DINFO_LEVEL_NONE,
DINFO_LEVEL_TERSE,
DINFO_LEVEL_NORMAL,
DINFO_LEVEL_VERBOSE
};
extern enum debug_info_level debug_info_level;
extern int use_gnu_debug_info_extensions;
extern int optimize;
extern int optimize_size;
extern int quiet_flag;
extern int time_report;
extern int mem_report;
extern int inhibit_warnings;
extern int warn_system_headers;
extern int extra_warnings;
extern void set_Wunused (int setting);
extern int warn_unused_function;
extern int warn_unused_label;
extern int warn_unused_parameter;
extern int warn_unused_variable;
extern int warn_unused_value;
extern int warn_notreached;
extern int warn_inline;
extern int warn_uninitialized;
extern int warn_unknown_pragmas;
extern int warn_shadow;
extern int warn_switch;
extern int warn_switch_default;
extern int warn_switch_enum;
extern int warn_return_type;
extern int warn_missing_noreturn;
extern int warn_cast_align;
extern int warn_larger_than;
extern long long larger_than_size;
extern int warn_aggregate_return;
extern int warn_packed;
extern int warn_padded;
extern int warn_disabled_optimization;
extern int warn_deprecated_decl;
extern int warn_strict_aliasing;
extern int profile_flag;
extern int profile_arc_flag;
extern int flag_test_coverage;
extern int flag_branch_probabilities;
extern int flag_reorder_blocks;
extern int flag_reorder_functions;
extern int flag_rename_registers;
extern int pedantic;
extern int in_system_header;
extern int flag_print_asm_name;
extern int flag_signed_char;
extern int flag_short_enums;
extern int flag_caller_saves;
extern int flag_pcc_struct_return;
extern int flag_force_mem;
extern int flag_force_addr;
extern int flag_defer_pop;
extern int flag_float_store;
extern int flag_strength_reduce;
extern int flag_unroll_loops;
extern int flag_unroll_all_loops;
extern int flag_move_all_movables;
extern int flag_prefetch_loop_arrays;
extern int flag_reduce_all_givs;
extern int flag_cse_follow_jumps;
extern int flag_cse_skip_blocks;
extern int flag_expensive_optimizations;
extern int flag_writable_strings;
extern int flag_no_function_cse;
extern int flag_omit_frame_pointer;
extern int flag_no_peephole;
extern int flag_volatile;
extern int flag_volatile_global;
extern int flag_volatile_static;
extern int flag_optimize_sibling_calls;
extern int flag_errno_math;
extern int flag_unsafe_math_optimizations;
extern int flag_finite_math_only;
extern int flag_trapping_math;
extern int flag_complex_divide_method;
extern int flag_rerun_loop_opt;
extern int flag_inline_functions;
extern int flag_keep_inline_functions;
extern int flag_no_inline;
extern int flag_really_no_inline;
extern int flag_syntax_only;
extern int flag_gen_aux_info;
extern int flag_shared_data;
extern int flag_schedule_insns;
extern int flag_schedule_insns_after_reload;
# 441 "/opt/local/src/gcc-3.3.3/gcc/flags.h"
extern int flag_schedule_interblock;
extern int flag_schedule_speculative;
extern int flag_schedule_speculative_load;
extern int flag_schedule_speculative_load_dangerous;
extern int flag_branch_on_count_reg;
extern int flag_single_precision_constant;
extern int flag_delayed_branch;
extern int flag_dump_unnumbered;
extern int flag_pedantic_errors;
extern int flag_pic;
extern int flag_exceptions;
extern int flag_unwind_tables;
extern int flag_asynchronous_unwind_tables;
extern int flag_no_common;
extern int flag_inhibit_size_directive;
extern int flag_function_sections;
extern int flag_data_sections;
# 515 "/opt/local/src/gcc-3.3.3/gcc/flags.h"
extern int flag_verbose_asm;
# 524 "/opt/local/src/gcc-3.3.3/gcc/flags.h"
extern int flag_debug_asm;
extern int flag_dump_rtl_in_asm;
extern int flag_gnu_linker;
extern int flag_pack_struct;
# 542 "/opt/local/src/gcc-3.3.3/gcc/flags.h"
extern int flag_argument_noalias;
extern int flag_strict_aliasing;
extern int flag_stack_check;
extern int flag_regmove;
extern int flag_instrument_function_entry_exit;
extern int flag_peephole2;
extern int flag_guess_branch_prob;
extern int flag_bounds_check;
extern int flag_merge_constants;
extern int flag_renumber_insns;
extern int frame_pointer_needed;
extern int flag_trapv;
extern int g_switch_value;
extern int g_switch_set;
extern int align_loops;
extern int align_loops_log;
extern int align_loops_max_skip;
extern int align_jumps;
extern int align_jumps_log;
extern int align_jumps_max_skip;
extern int align_labels;
extern int align_labels_log;
extern int align_labels_max_skip;
extern int align_functions;
extern int align_functions_log;
extern int force_align_functions_log;
extern int dump_for_graph;
enum graph_dump_types
{
no_graph = 0,
vcg
};
extern enum graph_dump_types graph_dump_format;
extern int flag_no_ident;
extern int flag_gcse_lm;
extern int flag_gcse_sm;
extern int flag_eliminate_dwarf2_dups;
extern int flag_detailed_statistics;
extern int flag_non_call_exceptions;
extern int flag_zero_initialized_in_bss;
extern int flag_signaling_nans;
extern const char *flag_random_seed;
# 101 "/opt/local/src/gcc-3.3.3/gcc/reload.c" 2
# 1 "/opt/local/src/gcc-3.3.3/gcc/real.h" 1
# 25 "/opt/local/src/gcc-3.3.3/gcc/real.h"
# 1 "/opt/local/src/gcc-3.3.3/gcc/machmode.h" 1
# 26 "/opt/local/src/gcc-3.3.3/gcc/real.h" 2
enum real_value_class {
rvc_zero,
rvc_normal,
rvc_inf,
rvc_nan
};
struct real_value
{
enum real_value_class class : 2;
unsigned int sign : 1;
signed int exp : (32 - 3);
unsigned long sig[((128 + (8 * 4)) / (8 * 4))];
};
# 66 "/opt/local/src/gcc-3.3.3/gcc/real.h"
extern char test_real_width
[sizeof(struct real_value) <= (((128 + (8 * 4)) + 32)/(8 * 8) + (((128 + (8 * 4)) + 32)%(8 * 8) ? 1 : 0))*sizeof(long long) ? 1 : -1];
# 104 "/opt/local/src/gcc-3.3.3/gcc/real.h"
struct real_format
{
void (*encode) (const struct real_format *, long *, const struct real_value *);
void (*decode) (const struct real_format *, struct real_value *, const long *);
int b;
int log2_b;
int p;
int emin;
int emax;
_Bool has_nans;
_Bool has_inf;
_Bool has_denorm;
_Bool has_signed_zero;
_Bool qnan_msb_set;
};
extern const struct real_format *real_format_for_mode[TFmode - QFmode + 1];
extern void real_arithmetic (struct real_value *, int, const struct real_value *, const struct real_value *);
extern _Bool real_compare (int, const struct real_value *, const struct real_value *);
extern _Bool real_isinf (const struct real_value *);
extern _Bool real_isnan (const struct real_value *);
extern _Bool real_isneg (const struct real_value *);
extern _Bool real_isnegzero (const struct real_value *);
extern _Bool real_identical (const struct real_value *, const struct real_value *);
extern void real_convert (struct real_value *, enum machine_mode, const struct real_value *);
extern _Bool exact_real_truncate (enum machine_mode, const struct real_value *);
extern void real_to_decimal (char *, const struct real_value *, size_t, size_t, int);
extern void real_to_hexadecimal (char *, const struct real_value *, size_t, size_t, int);
extern long long real_to_integer (const struct real_value *);
extern void real_to_integer2 (long long *, long long *, const struct real_value *);
extern void real_from_string (struct real_value *, const char *);
extern void real_from_integer (struct real_value *, enum machine_mode, unsigned long long, long long, int);
extern long real_to_target_fmt (long *, const struct real_value *, const struct real_format *);
extern long real_to_target (long *, const struct real_value *, enum machine_mode);
extern void real_from_target_fmt (struct real_value *, const long *, const struct real_format *);
extern void real_from_target (struct real_value *, const long *, enum machine_mode);
extern void real_inf (struct real_value *);
extern _Bool real_nan (struct real_value *, const char *, int, enum machine_mode);
extern void real_2expN (struct real_value *, int);
extern unsigned int real_hash (const struct real_value *);
extern const struct real_format ieee_single_format;
extern const struct real_format ieee_double_format;
extern const struct real_format ieee_extended_motorola_format;
extern const struct real_format ieee_extended_intel_96_format;
extern const struct real_format ieee_extended_intel_96_round_53_format;
extern const struct real_format ieee_extended_intel_128_format;
extern const struct real_format ibm_extended_format;
extern const struct real_format ieee_quad_format;
extern const struct real_format vax_f_format;
extern const struct real_format vax_d_format;
extern const struct real_format vax_g_format;
extern const struct real_format i370_single_format;
extern const struct real_format i370_double_format;
extern const struct real_format c4x_single_format;
extern const struct real_format c4x_extended_format;
extern const struct real_format real_internal_format;
# 278 "/opt/local/src/gcc-3.3.3/gcc/real.h"
extern struct real_value real_value_truncate (enum machine_mode, struct real_value);
extern struct real_value real_arithmetic2 (int, const struct real_value *, const struct real_value *);
# 293 "/opt/local/src/gcc-3.3.3/gcc/real.h"
extern int significand_size (enum machine_mode);
extern struct real_value real_from_string2 (const char *, enum machine_mode);
# 314 "/opt/local/src/gcc-3.3.3/gcc/real.h"
extern int real_exponent (const struct real_value *);
extern void real_ldexp (struct real_value *, const struct real_value *, int);
extern struct real_value dconst0;
extern struct real_value dconst1;
extern struct real_value dconst2;
extern struct real_value dconstm1;
struct real_value real_value_from_int_cst (union tree_node *, union tree_node *);
# 341 "/opt/local/src/gcc-3.3.3/gcc/real.h"
extern rtx const_double_from_real_value (struct real_value, enum machine_mode);
extern _Bool exact_real_inverse (enum machine_mode, struct real_value *);
extern tree build_real (tree, struct real_value);
# 102 "/opt/local/src/gcc-3.3.3/gcc/reload.c" 2
# 1 "/opt/local/src/gcc-3.3.3/gcc/output.h" 1
# 24 "/opt/local/src/gcc-3.3.3/gcc/output.h"
extern void compute_alignments (void);
extern void init_final (const char *);
extern void end_final (const char *);
extern void app_enable (void);
extern void app_disable (void);
extern int dbr_sequence_length (void);
extern void init_insn_lengths (void);
extern int get_attr_length (rtx);
extern void shorten_branches (rtx);
extern void final_start_function (rtx, FILE *, int);
extern void final_end_function (void);
extern void final (rtx, FILE *, int, int);
extern rtx final_scan_insn (rtx, FILE *, int, int, int);
extern rtx alter_subreg (rtx *);
extern void output_operand_lossage (const char *, ...) __attribute__ ((__format__ (__printf__, 1, 2))) __attribute__ ((__nonnull__ (1)));
extern void output_asm_insn (const char *, rtx *);
extern int insn_current_reference_address (rtx);
extern int label_to_alignment (rtx);
extern void output_asm_label (rtx);
extern void output_address (rtx);
extern void output_addr_const (FILE *, rtx);
extern void asm_fprintf (FILE *file, const char *p, ...);
extern void split_double (rtx, rtx *, rtx *);
extern int leaf_function_p (void);
extern int final_forward_branch_p (rtx);
extern int only_leaf_regs_used (void);
extern void leaf_renumber_regs_insn (rtx);
extern const char *get_insn_template (int, rtx);
extern int add_weak (tree, const char *, const char *);
extern void allocate_for_life_analysis (void);
extern int regno_uninitialized (unsigned int);
extern int regno_clobbered_at_setjmp (int);
extern void find_basic_blocks (rtx, int, FILE *);
extern _Bool cleanup_cfg (int);
extern _Bool delete_unreachable_blocks (void);
extern void check_function_return_warnings (void);
extern void text_section (void);
extern void data_section (void);
extern void force_data_section (void);
extern void readonly_data_section (void);
extern int in_text_section (void);
extern void ctors_section (void);
extern void dtors_section (void);
extern void bss_section (void);
extern void init_section (void);
extern void fini_section (void);
# 216 "/opt/local/src/gcc-3.3.3/gcc/output.h"
extern void named_section (tree, const char *, int);
extern void function_section (tree);
extern void mergeable_string_section (tree, unsigned long long, unsigned int);
extern void mergeable_constant_section (enum machine_mode, unsigned long long, unsigned int);
extern void declare_weak (tree);
extern void merge_weak (tree, tree);
extern void weak_finish (void);
# 245 "/opt/local/src/gcc-3.3.3/gcc/output.h"
extern int decode_reg_name (const char *);
extern void make_var_volatile (tree);
extern void assemble_constant_align (tree);
extern void assemble_alias (tree, tree);
extern void default_assemble_visibility (tree, int);
extern void assemble_asm (tree);
extern void assemble_start_function (tree, const char *);
extern void assemble_end_function (tree, const char *);
# 281 "/opt/local/src/gcc-3.3.3/gcc/output.h"
extern void assemble_variable (tree, int, int, int);
extern void assemble_external (tree);
extern void assemble_zeros (int);
extern void assemble_align (int);
extern void assemble_eh_align (int);
extern void assemble_string (const char *, int);
extern void assemble_external_libcall (rtx);
extern void assemble_label (const char *);
extern void assemble_eh_label (const char *);
extern void assemble_name (FILE *, const char *);
# 319 "/opt/local/src/gcc-3.3.3/gcc/output.h"
extern const char *integer_asm_op (int, int);
extern void assemble_integer_with_op (const char *, rtx);
extern _Bool default_assemble_integer (rtx, unsigned int, int);
extern _Bool assemble_integer (rtx, unsigned, unsigned, int);
# 342 "/opt/local/src/gcc-3.3.3/gcc/output.h"
extern void assemble_real (struct real_value, enum machine_mode, unsigned);
extern void defer_addressed_constants (void);
extern void output_deferred_addressed_constants (void);
extern int get_pool_size (void);
extern void output_constant_pool (const char *, tree);
# 373 "/opt/local/src/gcc-3.3.3/gcc/output.h"
extern tree initializer_constant_valid_p (tree, tree);
# 383 "/opt/local/src/gcc-3.3.3/gcc/output.h"
extern void output_constant (tree, long long, unsigned int);
# 392 "/opt/local/src/gcc-3.3.3/gcc/output.h"
extern rtx final_sequence;
# 404 "/opt/local/src/gcc-3.3.3/gcc/output.h"
extern FILE *asm_out_file;
extern const char *first_global_object_name;
extern const char *weak_global_object_name;
extern int current_function_is_leaf;
extern int current_function_nothrow;
extern int current_function_sp_is_unchanging;
extern int current_function_uses_only_leaf_regs;
extern FILE *rtl_dump_file;
extern struct rtx_def *current_insn_predicate;
extern struct rtx_def *current_output_insn;
extern rtx this_is_asm_operands;
extern _Bool decl_readonly_section (tree, int);
extern _Bool decl_readonly_section_1 (tree, int, int);
extern const char *user_label_prefix;
extern void default_function_pro_epilogue (FILE *, long long);
extern void default_exception_section (void);
extern void default_eh_frame_section (void);
extern void no_asm_to_stream (FILE *);
# 491 "/opt/local/src/gcc-3.3.3/gcc/output.h"
extern unsigned int get_named_section_flags (const char *);
extern _Bool set_named_section_flags (const char *, unsigned int);
extern void named_section_flags (const char *, unsigned int);
extern _Bool named_section_first_declaration (const char *);
union tree_node;
extern unsigned int default_section_type_flags (union tree_node *, const char *, int);
extern unsigned int default_section_type_flags_1 (union tree_node *, const char *, int, int);
extern void default_no_named_section (const char *, unsigned int);
extern void default_elf_asm_named_section (const char *, unsigned int);
extern void default_coff_asm_named_section (const char *, unsigned int);
extern void default_pe_asm_named_section (const char *, unsigned int);
extern void default_stabs_asm_out_destructor (struct rtx_def *, int);
extern void default_named_section_asm_out_destructor (struct rtx_def *, int);
extern void default_dtor_section_asm_out_destructor (struct rtx_def *, int);
extern void default_stabs_asm_out_constructor (struct rtx_def *, int);
extern void default_named_section_asm_out_constructor (struct rtx_def *, int);
extern void default_ctor_section_asm_out_constructor (struct rtx_def *, int);
extern void default_select_section (tree, int, unsigned long long);
extern void default_elf_select_section (tree, int, unsigned long long);
extern void default_elf_select_section_1 (tree, int, unsigned long long, int);
extern void default_unique_section (tree, int);
extern void default_unique_section_1 (tree, int, int);
extern void default_select_rtx_section (enum machine_mode, rtx, unsigned long long);
extern void default_elf_select_rtx_section (enum machine_mode, rtx, unsigned long long);
extern const char *default_strip_name_encoding (const char *);
extern _Bool default_binds_local_p (tree);
extern _Bool default_binds_local_p_1 (tree, int);
extern void default_globalize_label (FILE *, const char *);
extern void assemble_vtable_entry (struct rtx_def *, long long);
extern void assemble_vtable_inherit (struct rtx_def *, struct rtx_def *);
# 103 "/opt/local/src/gcc-3.3.3/gcc/reload.c" 2
# 1 "/opt/local/src/gcc-3.3.3/gcc/function.h" 1
# 22 "/opt/local/src/gcc-3.3.3/gcc/function.h"
struct var_refs_queue
{
rtx modified;
enum machine_mode promoted_mode;
int unsignedp;
struct var_refs_queue *next;
};
struct sequence_stack
{
rtx first;
rtx last;
tree sequence_rtl_expr;
struct sequence_stack *next;
};
extern struct sequence_stack *sequence_stack;
struct simple_obstack_stack
{
struct obstack *obstack;
struct simple_obstack_stack *next;
};
struct emit_status
{
int x_reg_rtx_no;
int x_first_label_num;
rtx x_first_insn;
rtx x_last_insn;
tree sequence_rtl_expr;
struct sequence_stack *sequence_stack;
int x_cur_insn_uid;
int x_last_linenum;
const char *x_last_filename;
int regno_pointer_align_length;
unsigned char *
regno_pointer_align;
tree * regno_decl;
rtx * x_regno_reg_rtx;
};
# 124 "/opt/local/src/gcc-3.3.3/gcc/function.h"
struct expr_status
{
int x_pending_stack_adjust;
# 145 "/opt/local/src/gcc-3.3.3/gcc/function.h"
int x_inhibit_defer_pop;
int x_stack_pointer_delta;
rtx x_saveregs_value;
rtx x_apply_args_value;
rtx x_forced_labels;
rtx x_pending_chain;
};
# 179 "/opt/local/src/gcc-3.3.3/gcc/function.h"
struct function
{
struct eh_status *eh;
struct stmt_status *stmt;
struct expr_status *expr;
struct emit_status *emit;
struct varasm_status *varasm;
const char *name;
tree decl;
struct function *outer;
int pops_args;
int args_size;
int pretend_args_size;
int outgoing_args_size;
rtx arg_offset_rtx;
struct sparc_args args_info;
rtx return_rtx;
rtx internal_arg_pointer;
const char *cannot_inline;
struct initial_value_struct *hard_reg_initial_vals;
int x_function_call_count;
tree x_nonlocal_labels;
rtx x_nonlocal_goto_handler_slots;
rtx x_nonlocal_goto_handler_labels;
rtx x_nonlocal_goto_stack_level;
rtx x_cleanup_label;
rtx x_return_label;
rtx computed_goto_common_label;
rtx computed_goto_common_reg;
rtx x_save_expr_regs;
rtx x_stack_slot_list;
tree x_rtl_expr_chain;
rtx x_tail_recursion_label;
rtx x_tail_recursion_reentry;
rtx x_arg_pointer_save_area;
rtx x_clobber_return_insn;
long long x_frame_offset;
tree x_context_display;
# 326 "/opt/local/src/gcc-3.3.3/gcc/function.h"
tree x_trampoline_list;
rtx x_parm_birth_insn;
rtx x_last_parm_insn;
unsigned int x_max_parm_reg;
rtx * x_parm_reg_stack_loc;
struct temp_slot *x_temp_slots;
int x_temp_slot_level;
int x_var_temp_slot_level;
int x_target_temp_slot_level;
struct var_refs_queue *fixup_var_refs_queue;
int inlinable;
int no_debugging_symbols;
rtvec original_arg_vector;
tree original_decl_initial;
rtx inl_last_parm_insn;
int inl_max_label_num;
int funcdef_no;
struct machine_function * machine;
int stack_alignment_needed;
int preferred_stack_boundary;
struct language_function * language;
rtx epilogue_delay_list;
unsigned int returns_struct : 1;
unsigned int returns_pcc_struct : 1;
unsigned int returns_pointer : 1;
unsigned int needs_context : 1;
unsigned int calls_setjmp : 1;
unsigned int calls_longjmp : 1;
unsigned int calls_alloca : 1;
unsigned int calls_eh_return : 1;
unsigned int has_nonlocal_label : 1;
unsigned int has_nonlocal_goto : 1;
unsigned int contains_functions : 1;
unsigned int has_computed_jump : 1;
unsigned int is_thunk : 1;
unsigned int all_throwers_are_sibcalls : 1;
unsigned int instrument_entry_exit : 1;
unsigned int arc_profile : 1;
unsigned int profile : 1;
unsigned int limit_stack : 1;
unsigned int stdarg : 1;
unsigned int x_whole_function_mode_p : 1;
# 481 "/opt/local/src/gcc-3.3.3/gcc/function.h"
unsigned int x_dont_save_pending_sizes_p : 1;
unsigned int uses_const_pool : 1;
unsigned int uses_pic_offset_table : 1;
unsigned int uses_eh_lsda : 1;
unsigned int arg_pointer_save_area_init : 1;
enum function_frequency {
FUNCTION_FREQUENCY_UNLIKELY_EXECUTED,
FUNCTION_FREQUENCY_NORMAL,
FUNCTION_FREQUENCY_HOT
} function_frequency;
int max_jumptable_ents;
};
extern struct function *cfun;
extern int virtuals_instantiated;
extern int trampolines_created;
# 581 "/opt/local/src/gcc-3.3.3/gcc/function.h"
extern tree inline_function_decl;
struct function *find_function_data (tree);
extern void identify_blocks (void);
extern void reorder_blocks (void);
extern void number_blocks (tree);
extern long long get_frame_size (void);
extern long long get_func_frame_size (struct function *);
extern struct machine_function * (*init_machine_status) (void);
extern void restore_emit_status (struct function *);
extern void free_after_parsing (struct function *);
extern void free_after_compilation (struct function *);
extern void init_varasm_status (struct function *);
extern rtx get_first_block_beg (void);
extern void diddle_return_value (void (*)(rtx, void*), void*);
extern void clobber_return_register (void);
extern void use_return_register (void);
extern rtx get_arg_pointer_save_area (struct function *);
extern void init_virtual_regs (struct emit_status *);
extern void init_function_once (void);
# 104 "/opt/local/src/gcc-3.3.3/gcc/reload.c" 2
# 1 "/opt/local/src/gcc-3.3.3/gcc/toplev.h" 1
# 29 "/opt/local/src/gcc-3.3.3/gcc/toplev.h"
extern int toplev_main (int, char **);
extern int read_integral_parameter (const char *, const char *, const int);
extern void strip_off_ending (char *, int);
extern void print_time (const char *, long);
extern const char *trim_filename (const char *);
extern void internal_error (const char *, ...)
__attribute__ ((__noreturn__));
extern void fatal_io_error (const char *, ...)
__attribute__ ((__noreturn__));
extern void _fatal_insn_not_found (struct rtx_def *, const char *, int, const char *)
__attribute__ ((__noreturn__));
extern void _fatal_insn (const char *, struct rtx_def *, const char *, int, const char *)
__attribute__ ((__noreturn__));
# 57 "/opt/local/src/gcc-3.3.3/gcc/toplev.h"
extern void warning (const char *, ...);
extern void error (const char *, ...);
extern void fatal_error (const char *, ...)
__attribute__ ((__noreturn__));
extern void pedwarn (const char *, ...);
extern void pedwarn_with_file_and_line (const char *, int, const char *, ...);
extern void warning_with_file_and_line (const char *, int, const char *, ...);
extern void error_with_file_and_line (const char *, int, const char *, ...);
extern void sorry (const char *, ...);
extern void rest_of_decl_compilation (union tree_node *, const char *, int, int);
extern void rest_of_type_compilation (union tree_node *, int);
extern void rest_of_compilation (union tree_node *);
extern void pedwarn_with_decl (union tree_node *, const char *, ...);
extern void warning_with_decl (union tree_node *, const char *, ...);
extern void error_with_decl (union tree_node *, const char *, ...);
extern void announce_function (union tree_node *);
extern void error_for_asm (struct rtx_def *, const char *, ...);
extern void warning_for_asm (struct rtx_def *, const char *, ...);
extern void warn_deprecated_use (union tree_node *);
extern void output_clean_symbol_name (FILE *, const char *);
extern void output_quoted_string (FILE *, const char *);
extern void output_file_directive (FILE *, const char *);
extern void do_abort (void) __attribute__ ((__noreturn__));
extern void botch (const char *)
__attribute__ ((__noreturn__));
extern void fnotice (FILE *, const char *, ...)
__attribute__ ((__format__ (__printf__, 2, 3))) __attribute__ ((__nonnull__ (2)));
extern int wrapup_global_declarations (union tree_node **, int);
extern void check_global_declarations (union tree_node **, int);
extern const char *progname;
extern const char *dump_base_name;
extern const char *aux_base_name;
extern int target_flags_explicit;
extern struct ht *ident_hash;
extern void set_fast_math_flags (int);
extern _Bool fast_math_flags_set_p (void);
# 133 "/opt/local/src/gcc-3.3.3/gcc/toplev.h"
extern int exact_log2_wide (unsigned long long);
extern int floor_log2_wide (unsigned long long);
# 105 "/opt/local/src/gcc-3.3.3/gcc/reload.c" 2
# 120 "/opt/local/src/gcc-3.3.3/gcc/reload.c"
int n_reloads;
struct reload rld[(2 * 30 * (2 + 1))];
int n_earlyclobbers;
rtx reload_earlyclobbers[30];
int reload_n_operands;
# 138 "/opt/local/src/gcc-3.3.3/gcc/reload.c"
static int replace_reloads;
struct replacement
{
rtx *where;
rtx *subreg_loc;
int what;
enum machine_mode mode;
};
static struct replacement replacements[30 * ((2 * 2) + 1)];
static int n_replacements;
struct decomposition
{
int reg_flag;
int safe;
rtx base;
long long start;
long long end;
};
# 175 "/opt/local/src/gcc-3.3.3/gcc/reload.c"
static rtx secondary_memlocs[(int) MAX_MACHINE_MODE];
static rtx secondary_memlocs_elim[(int) MAX_MACHINE_MODE][30];
static rtx this_insn;
static int this_insn_is_asm;
static int hard_regs_live_known;
static short *static_reload_reg_p;
static int subst_reg_equivs_changed;
static int output_reloadnum;
# 239 "/opt/local/src/gcc-3.3.3/gcc/reload.c"
static int push_secondary_reload (int, rtx, int, int, enum reg_class, enum machine_mode, enum reload_type, enum insn_code *);
static enum reg_class find_valid_class (enum machine_mode, int, unsigned int);
static int reload_inner_reg_of_subreg (rtx, enum machine_mode, int);
static int can_reload_into (rtx, int, enum machine_mode);
static void push_replacement (rtx *, int, enum machine_mode);
static void dup_replacements (rtx *, rtx *);
static void combine_reloads (void);
static int find_reusable_reload (rtx *, rtx, enum reg_class, enum reload_type, int, int);
static rtx find_dummy_reload (rtx, rtx, rtx *, rtx *, enum machine_mode, enum machine_mode, enum reg_class, int, int);
static int hard_reg_set_here_p (unsigned int, unsigned int, rtx);
static struct decomposition decompose (rtx);
static int immune_p (rtx, rtx, struct decomposition);
static int alternative_allows_memconst (const char *, int);
static rtx find_reloads_toplev (rtx, int, enum reload_type, int, int, rtx, int *);
static rtx make_memloc (rtx, int);
static int maybe_memory_address_p (enum machine_mode, rtx, rtx *);
static int find_reloads_address (enum machine_mode, rtx *, rtx, rtx *, int, enum reload_type, int, rtx);
static rtx subst_reg_equivs (rtx, rtx);
static rtx subst_indexed_address (rtx);
static void update_auto_inc_notes (rtx, int, int);
static int find_reloads_address_1 (enum machine_mode, rtx, int, rtx *, int, enum reload_type,int, rtx);
static void find_reloads_address_part (rtx, rtx *, enum reg_class, enum machine_mode, int, enum reload_type, int);
static rtx find_reloads_subreg_address (rtx, int, int, enum reload_type, int, rtx);
static void copy_replacements_1 (rtx *, rtx *, int);
static int find_inc_amount (rtx, rtx);
# 289 "/opt/local/src/gcc-3.3.3/gcc/reload.c"
static int
push_secondary_reload (in_p, x, opnum, optional, reload_class, reload_mode,
type, picode)
int in_p;
rtx x;
int opnum;
int optional;
enum reg_class reload_class;
enum machine_mode reload_mode;
enum reload_type type;
enum insn_code *picode;
{
enum reg_class class = NO_REGS;
enum machine_mode mode = reload_mode;
enum insn_code icode = CODE_FOR_nothing;
enum reg_class t_class = NO_REGS;
enum machine_mode t_mode = VOIDmode;
enum insn_code t_icode = CODE_FOR_nothing;
enum reload_type secondary_type;
int s_reload, t_reload = -1;
if (type == RELOAD_FOR_INPUT_ADDRESS
|| type == RELOAD_FOR_OUTPUT_ADDRESS
|| type == RELOAD_FOR_INPADDR_ADDRESS
|| type == RELOAD_FOR_OUTADDR_ADDRESS)
secondary_type = type;
else
secondary_type = in_p ? RELOAD_FOR_INPUT_ADDRESS : RELOAD_FOR_OUTPUT_ADDRESS;
*picode = CODE_FOR_nothing;
if (((enum rtx_code) (x)->code) == SUBREG
&& ((mode_size[(int) (((enum machine_mode) (x)->mode))])
> (mode_size[(int) (((enum machine_mode) ((((x)->fld[0]).rtx))->mode))])))
{
x = (((x)->fld[0]).rtx);
reload_mode = ((enum machine_mode) (x)->mode);
}
if (((enum rtx_code) (x)->code) == REG && (((x)->fld[0]).rtuint) >= 102
&& reg_equiv_mem[(((x)->fld[0]).rtuint)] != 0)
x = reg_equiv_mem[(((x)->fld[0]).rtuint)];
if (in_p)
class = ((((reload_class) == FP_REGS || (reload_class) == EXTRA_FP_REGS) && ((reload_mode) == HImode || (reload_mode) == QImode) && (((enum rtx_code) (x)->code) == MEM || ((((enum rtx_code) (x)->code) == REG || ((enum rtx_code) (x)->code) == SUBREG) && true_regnum (x) == -1))) ? GENERAL_REGS : ((reload_class) == EXTRA_FP_REGS && (reload_mode) == DFmode && ((enum rtx_code) (x)->code) == MEM && (! (target_flags & 0x10000)) && ! mem_min_alignment ((x), 8)) ? FP_REGS : ((((sparc_cmodel == CM_MEDANY) && symbolic_operand ((x), (reload_mode))) || ((sparc_cmodel == CM_EMBMEDANY) && text_segment_operand ((x), (reload_mode)))) && !flag_pic) ? GENERAL_REGS : NO_REGS);
if (! in_p)
class = ((((reload_class) == FP_REGS || (reload_class) == EXTRA_FP_REGS) && ((reload_mode) == HImode || (reload_mode) == QImode) && (((enum rtx_code) (x)->code) == MEM || ((((enum rtx_code) (x)->code) == REG || ((enum rtx_code) (x)->code) == SUBREG) && true_regnum (x) == -1))) ? GENERAL_REGS : ((reload_class) == EXTRA_FP_REGS && (reload_mode) == DFmode && ((enum rtx_code) (x)->code) == MEM && (! (target_flags & 0x10000)) && ! mem_min_alignment ((x), 8)) ? FP_REGS : ((((sparc_cmodel == CM_MEDANY) && symbolic_operand ((x), (reload_mode))) || ((sparc_cmodel == CM_EMBMEDANY) && text_segment_operand ((x), (reload_mode)))) && !flag_pic) ? GENERAL_REGS : NO_REGS);
if (class == NO_REGS)
return -1;
icode = (in_p ? reload_in_optab[(int) reload_mode]
: reload_out_optab[(int) reload_mode]);
if (icode != CODE_FOR_nothing
&& insn_data[(int) icode].operand[in_p].predicate
&& (! (insn_data[(int) icode].operand[in_p].predicate) (x, reload_mode)))
icode = CODE_FOR_nothing;
if (icode != CODE_FOR_nothing)
{
enum reg_class insn_class;
if (insn_data[(int) icode].operand[!in_p].constraint[0] == 0)
insn_class = ALL_REGS;
else
{
char insn_letter
= insn_data[(int) icode].operand[!in_p].constraint[in_p];
insn_class
= (insn_letter == 'r' ? GENERAL_REGS
: ((target_flags & 0x40) ? (((unsigned char) insn_letter) == 'f' ? FP_REGS : ((unsigned char) insn_letter) == 'e' ? EXTRA_FP_REGS : ((unsigned char) insn_letter) == 'c' ? FPCC_REGS : (((unsigned char) insn_letter) == 'd' && (target_flags & 0x1000000)) ? FP_REGS : (((unsigned char) insn_letter) == 'b' && (target_flags & 0x1000000)) ? EXTRA_FP_REGS : (((unsigned char) insn_letter) == 'h' && (target_flags & 0x2000000)) ? I64_REGS : NO_REGS) : (((unsigned char) insn_letter) == 'f' ? FP_REGS : ((unsigned char) insn_letter) == 'e' ? FP_REGS : ((unsigned char) insn_letter) == 'c' ? FPCC_REGS : NO_REGS)));
if (insn_class == NO_REGS)
fancy_abort ("/opt/local/src/gcc-3.3.3/gcc/reload.c", 391, __FUNCTION__);
if (in_p
&& insn_data[(int) icode].operand[!in_p].constraint[0] != '=')
fancy_abort ("/opt/local/src/gcc-3.3.3/gcc/reload.c", 394, __FUNCTION__);
}
if (insn_data[(int) icode].operand[2].constraint[0] != '='
|| insn_data[(int) icode].operand[2].constraint[1] != '&')
fancy_abort ("/opt/local/src/gcc-3.3.3/gcc/reload.c", 400, __FUNCTION__);
if (reg_class_subset_p (reload_class, insn_class))
mode = insn_data[(int) icode].operand[2].mode;
else
{
char t_letter = insn_data[(int) icode].operand[2].constraint[2];
class = insn_class;
t_mode = insn_data[(int) icode].operand[2].mode;
t_class = (t_letter == 'r' ? GENERAL_REGS
: ((target_flags & 0x40) ? (((unsigned char) t_letter) == 'f' ? FP_REGS : ((unsigned char) t_letter) == 'e' ? EXTRA_FP_REGS : ((unsigned char) t_letter) == 'c' ? FPCC_REGS : (((unsigned char) t_letter) == 'd' && (target_flags & 0x1000000)) ? FP_REGS : (((unsigned char) t_letter) == 'b' && (target_flags & 0x1000000)) ? EXTRA_FP_REGS : (((unsigned char) t_letter) == 'h' && (target_flags & 0x2000000)) ? I64_REGS : NO_REGS) : (((unsigned char) t_letter) == 'f' ? FP_REGS : ((unsigned char) t_letter) == 'e' ? FP_REGS : ((unsigned char) t_letter) == 'c' ? FPCC_REGS : NO_REGS)));
t_icode = icode;
icode = CODE_FOR_nothing;
}
}
# 430 "/opt/local/src/gcc-3.3.3/gcc/reload.c"
if (in_p && class == reload_class && icode == CODE_FOR_nothing
&& t_icode == CODE_FOR_nothing)
fancy_abort ("/opt/local/src/gcc-3.3.3/gcc/reload.c", 432, __FUNCTION__);
if (t_class != NO_REGS)
{
for (t_reload = 0; t_reload < n_reloads; t_reload++)
if (rld[t_reload].secondary_p
&& (reg_class_subset_p (t_class, rld[t_reload].class)
|| reg_class_subset_p (rld[t_reload].class, t_class))
&& ((in_p && rld[t_reload].inmode == t_mode)
|| (! in_p && rld[t_reload].outmode == t_mode))
&& ((in_p && (rld[t_reload].secondary_in_icode
== CODE_FOR_nothing))
|| (! in_p &&(rld[t_reload].secondary_out_icode
== CODE_FOR_nothing)))
&& (reg_class_size[(int) t_class] == 1 || 0)
&& ((secondary_type) == RELOAD_OTHER || (rld[t_reload].when_needed) == RELOAD_OTHER || ((secondary_type) == (rld[t_reload].when_needed) && (opnum) == (rld[t_reload].opnum)) || ((secondary_type) == RELOAD_FOR_INPUT && (rld[t_reload].when_needed) == RELOAD_FOR_INPUT) || ((secondary_type) == RELOAD_FOR_OPERAND_ADDRESS && (rld[t_reload].when_needed) == RELOAD_FOR_OPERAND_ADDRESS) || ((secondary_type) == RELOAD_FOR_OTHER_ADDRESS && (rld[t_reload].when_needed) == RELOAD_FOR_OTHER_ADDRESS)))
{
if (in_p)
rld[t_reload].inmode = t_mode;
if (! in_p)
rld[t_reload].outmode = t_mode;
if (reg_class_subset_p (t_class, rld[t_reload].class))
rld[t_reload].class = t_class;
rld[t_reload].opnum = ((rld[t_reload].opnum) < (opnum) ? (rld[t_reload].opnum) : (opnum));
rld[t_reload].optional &= optional;
rld[t_reload].secondary_p = 1;
if (((secondary_type) != (rld[t_reload].when_needed) || ! ((opnum) == (rld[t_reload].opnum) || (secondary_type) == RELOAD_FOR_INPUT || (secondary_type) == RELOAD_FOR_OPERAND_ADDRESS || (secondary_type) == RELOAD_FOR_OTHER_ADDRESS)))
rld[t_reload].when_needed = RELOAD_OTHER;
}
if (t_reload == n_reloads)
{
rld[t_reload].in = rld[t_reload].out = 0;
rld[t_reload].class = t_class;
rld[t_reload].inmode = in_p ? t_mode : VOIDmode;
rld[t_reload].outmode = ! in_p ? t_mode : VOIDmode;
rld[t_reload].reg_rtx = 0;
rld[t_reload].optional = optional;
rld[t_reload].inc = 0;
rld[t_reload].nocombine = 1;
rld[t_reload].in_reg = 0;
rld[t_reload].out_reg = 0;
rld[t_reload].opnum = opnum;
rld[t_reload].when_needed = secondary_type;
rld[t_reload].secondary_in_reload = -1;
rld[t_reload].secondary_out_reload = -1;
rld[t_reload].secondary_in_icode = CODE_FOR_nothing;
rld[t_reload].secondary_out_icode = CODE_FOR_nothing;
rld[t_reload].secondary_p = 1;
n_reloads++;
}
}
for (s_reload = 0; s_reload < n_reloads; s_reload++)
if (rld[s_reload].secondary_p
&& (reg_class_subset_p (class, rld[s_reload].class)
|| reg_class_subset_p (rld[s_reload].class, class))
&& ((in_p && rld[s_reload].inmode == mode)
|| (! in_p && rld[s_reload].outmode == mode))
&& ((in_p && rld[s_reload].secondary_in_reload == t_reload)
|| (! in_p && rld[s_reload].secondary_out_reload == t_reload))
&& ((in_p && rld[s_reload].secondary_in_icode == t_icode)
|| (! in_p && rld[s_reload].secondary_out_icode == t_icode))
&& (reg_class_size[(int) class] == 1 || 0)
&& ((secondary_type) == RELOAD_OTHER || (rld[s_reload].when_needed) == RELOAD_OTHER || ((secondary_type) == (rld[s_reload].when_needed) && (opnum) == (rld[s_reload].opnum)) || ((secondary_type) == RELOAD_FOR_INPUT && (rld[s_reload].when_needed) == RELOAD_FOR_INPUT) || ((secondary_type) == RELOAD_FOR_OPERAND_ADDRESS && (rld[s_reload].when_needed) == RELOAD_FOR_OPERAND_ADDRESS) || ((secondary_type) == RELOAD_FOR_OTHER_ADDRESS && (rld[s_reload].when_needed) == RELOAD_FOR_OTHER_ADDRESS)))
{
if (in_p)
rld[s_reload].inmode = mode;
if (! in_p)
rld[s_reload].outmode = mode;
if (reg_class_subset_p (class, rld[s_reload].class))
rld[s_reload].class = class;
rld[s_reload].opnum = ((rld[s_reload].opnum) < (opnum) ? (rld[s_reload].opnum) : (opnum));
rld[s_reload].optional &= optional;
rld[s_reload].secondary_p = 1;
if (((secondary_type) != (rld[s_reload].when_needed) || ! ((opnum) == (rld[s_reload].opnum) || (secondary_type) == RELOAD_FOR_INPUT || (secondary_type) == RELOAD_FOR_OPERAND_ADDRESS || (secondary_type) == RELOAD_FOR_OTHER_ADDRESS)))
rld[s_reload].when_needed = RELOAD_OTHER;
}
if (s_reload == n_reloads)
{
if (in_p && icode == CODE_FOR_nothing
&& (((class) == FP_REGS || (class) == EXTRA_FP_REGS) != ((reload_class) == FP_REGS || (reload_class) == EXTRA_FP_REGS)))
{
get_secondary_mem (x, reload_mode, opnum, type);
s_reload = n_reloads;
}
rld[s_reload].in = rld[s_reload].out = 0;
rld[s_reload].class = class;
rld[s_reload].inmode = in_p ? mode : VOIDmode;
rld[s_reload].outmode = ! in_p ? mode : VOIDmode;
rld[s_reload].reg_rtx = 0;
rld[s_reload].optional = optional;
rld[s_reload].inc = 0;
rld[s_reload].nocombine = 1;
rld[s_reload].in_reg = 0;
rld[s_reload].out_reg = 0;
rld[s_reload].opnum = opnum;
rld[s_reload].when_needed = secondary_type;
rld[s_reload].secondary_in_reload = in_p ? t_reload : -1;
rld[s_reload].secondary_out_reload = ! in_p ? t_reload : -1;
rld[s_reload].secondary_in_icode = in_p ? t_icode : CODE_FOR_nothing;
rld[s_reload].secondary_out_icode
= ! in_p ? t_icode : CODE_FOR_nothing;
rld[s_reload].secondary_p = 1;
n_reloads++;
if (! in_p && icode == CODE_FOR_nothing
&& (((reload_class) == FP_REGS || (reload_class) == EXTRA_FP_REGS) != ((class) == FP_REGS || (class) == EXTRA_FP_REGS)))
get_secondary_mem (x, mode, opnum, type);
}
*picode = icode;
return s_reload;
}
# 588 "/opt/local/src/gcc-3.3.3/gcc/reload.c"
rtx
get_secondary_mem (x, mode, opnum, type)
rtx x __attribute__ ((__unused__));
enum machine_mode mode;
int opnum;
enum reload_type type;
{
rtx loc;
int mem_valid;
mode = ((! (! (target_flags & 0x10000))) ? ((mode_bitsize[(int) (mode)]) < 32 ? mode_for_size (32, (mode_class[(int) (mode)]), 0) : mode) : ((mode_bitsize[(int) (mode)]) < (8 * ((! (! (target_flags & 0x10000))) ? 8 : 4)) ? mode_for_size ((8 * ((! (! (target_flags & 0x10000))) ? 8 : 4)), (mode_class[(int) (mode)]), 0) : mode));
if (secondary_memlocs_elim[(int) mode][opnum] != 0)
return secondary_memlocs_elim[(int) mode][opnum];
if (secondary_memlocs[(int) mode] == 0)
{
secondary_memlocs[(int) mode] = (get_frame_size () == 0 ? assign_stack_local (mode, (mode_size[(int) (mode)]), 0) : gen_rtx_MEM (mode, plus_constant_wide (((global_rtl[GR_FRAME_POINTER])), (long long) (((! (! (target_flags & 0x10000))) ? -16 : (-((! (! (target_flags & 0x10000))) ? (((128 / 8)+15) & ~15) : (((128 / 8)+7) & ~7))))))));
}
loc = eliminate_regs (secondary_memlocs[(int) mode], VOIDmode, (rtx) 0);
mem_valid = strict_memory_address_p (mode, (((loc)->fld[0]).rtx));
if (! mem_valid && loc == secondary_memlocs[(int) mode])
loc = copy_rtx (loc);
# 644 "/opt/local/src/gcc-3.3.3/gcc/reload.c"
if (! mem_valid)
{
type = (type == RELOAD_FOR_INPUT ? RELOAD_FOR_INPUT_ADDRESS
: type == RELOAD_FOR_OUTPUT ? RELOAD_FOR_OUTPUT_ADDRESS
: RELOAD_OTHER);
find_reloads_address (mode, &loc, (((loc)->fld[0]).rtx), &(((loc)->fld[0]).rtx),
opnum, type, 0, 0);
}
secondary_memlocs_elim[(int) mode][opnum] = loc;
return loc;
}
void
clear_secondary_mem ()
{
memset ((char *) secondary_memlocs, 0, sizeof secondary_memlocs);
}
static enum reg_class
find_valid_class (m1, n, dest_regno)
enum machine_mode m1 __attribute__ ((__unused__));
int n;
unsigned int dest_regno;
{
int best_cost = -1;
int class;
int regno;
enum reg_class best_class = NO_REGS;
enum reg_class dest_class = sparc_regno_reg_class[(dest_regno)];
unsigned int best_size = 0;
int cost;
for (class = 1; class < (int) LIM_REG_CLASSES; class++)
{
int bad = 0;
for (regno = 0; regno < 102 && ! bad; regno++)
if ((!!((reg_class_contents[class])[(regno) / ((unsigned) (8 * 8))] & (((HARD_REG_ELT_TYPE) (1)) << ((regno) % ((unsigned) (8 * 8))))))
&& (!!((reg_class_contents[class])[(regno + n) / ((unsigned) (8 * 8))] & (((HARD_REG_ELT_TYPE) (1)) << ((regno + n) % ((unsigned) (8 * 8))))))
&& ! ((hard_regno_mode_classes[regno + n] & sparc_mode_class[m1]) != 0))
bad = 1;
if (bad)
continue;
cost = (((((class) == FP_REGS || (class) == EXTRA_FP_REGS) && ((dest_class) == GENERAL_REGS || (dest_class) == I64_REGS)) || (((class) == GENERAL_REGS || (class) == I64_REGS) && ((dest_class) == FP_REGS || (dest_class) == EXTRA_FP_REGS)) || (class) == FPCC_REGS || (dest_class) == FPCC_REGS) ? ((sparc_cpu == PROCESSOR_ULTRASPARC || sparc_cpu == PROCESSOR_ULTRASPARC3) ? 12 : 6) : 2);
if ((reg_class_size[class] > best_size
&& (best_cost < 0 || best_cost >= cost))
|| best_cost > cost)
{
best_class = class;
best_size = reg_class_size[class];
best_cost = (((((class) == FP_REGS || (class) == EXTRA_FP_REGS) && ((dest_class) == GENERAL_REGS || (dest_class) == I64_REGS)) || (((class) == GENERAL_REGS || (class) == I64_REGS) && ((dest_class) == FP_REGS || (dest_class) == EXTRA_FP_REGS)) || (class) == FPCC_REGS || (dest_class) == FPCC_REGS) ? ((sparc_cpu == PROCESSOR_ULTRASPARC || sparc_cpu == PROCESSOR_ULTRASPARC3) ? 12 : 6) : 2);
}
}
if (best_size == 0)
fancy_abort ("/opt/local/src/gcc-3.3.3/gcc/reload.c", 709, __FUNCTION__);
return best_class;
}
# 722 "/opt/local/src/gcc-3.3.3/gcc/reload.c"
static int
find_reusable_reload (p_in, out, class, type, opnum, dont_share)
rtx *p_in, out;
enum reg_class class;
enum reload_type type;
int opnum, dont_share;
{
rtx in = *p_in;
int i;
if (earlyclobber_operand_p (out))
return n_reloads;
# 746 "/opt/local/src/gcc-3.3.3/gcc/reload.c"
for (i = 0; i < n_reloads; i++)
if ((reg_class_subset_p (class, rld[i].class)
|| reg_class_subset_p (rld[i].class, class))
&& (rld[i].reg_rtx == 0
|| (!!((reg_class_contents[(int) class])[(true_regnum (rld[i].reg_rtx)) / ((unsigned) (8 * 8))] & (((HARD_REG_ELT_TYPE) (1)) << ((true_regnum (rld[i].reg_rtx)) % ((unsigned) (8 * 8)))))))
&& ((in != 0 && (rld[i].in == in || (rld[i].in != 0 && (((enum rtx_code) (rld[i].in)->code) == REG ? ((enum rtx_code) (in)->code) == REG && (((rld[i].in)->fld[0]).rtuint) == (((in)->fld[0]).rtuint) : rtx_equal_p (rld[i].in, in) && ! side_effects_p (rld[i].in)))) && ! dont_share
&& (out == 0 || rld[i].out == 0 || (rld[i].out == out || (rld[i].out != 0 && (((enum rtx_code) (rld[i].out)->code) == REG ? ((enum rtx_code) (out)->code) == REG && (((rld[i].out)->fld[0]).rtuint) == (((out)->fld[0]).rtuint) : rtx_equal_p (rld[i].out, out) && ! side_effects_p (rld[i].out))))))
|| (out != 0 && (rld[i].out == out || (rld[i].out != 0 && (((enum rtx_code) (rld[i].out)->code) == REG ? ((enum rtx_code) (out)->code) == REG && (((rld[i].out)->fld[0]).rtuint) == (((out)->fld[0]).rtuint) : rtx_equal_p (rld[i].out, out) && ! side_effects_p (rld[i].out))))
&& (in == 0 || rld[i].in == 0 || (rld[i].in == in || (rld[i].in != 0 && (((enum rtx_code) (rld[i].in)->code) == REG ? ((enum rtx_code) (in)->code) == REG && (((rld[i].in)->fld[0]).rtuint) == (((in)->fld[0]).rtuint) : rtx_equal_p (rld[i].in, in) && ! side_effects_p (rld[i].in)))))))
&& (rld[i].out == 0 || ! earlyclobber_operand_p (rld[i].out))
&& (reg_class_size[(int) class] == 1 || 0)
&& ((type) == RELOAD_OTHER || (rld[i].when_needed) == RELOAD_OTHER || ((type) == (rld[i].when_needed) && (opnum) == (rld[i].opnum)) || ((type) == RELOAD_FOR_INPUT && (rld[i].when_needed) == RELOAD_FOR_INPUT) || ((type) == RELOAD_FOR_OPERAND_ADDRESS && (rld[i].when_needed) == RELOAD_FOR_OPERAND_ADDRESS) || ((type) == RELOAD_FOR_OTHER_ADDRESS && (rld[i].when_needed) == RELOAD_FOR_OTHER_ADDRESS)))
return i;
for (i = 0; i < n_reloads; i++)
if ((reg_class_subset_p (class, rld[i].class)
|| reg_class_subset_p (rld[i].class, class))
&& (rld[i].reg_rtx == 0
|| (!!((reg_class_contents[(int) class])[(true_regnum (rld[i].reg_rtx)) / ((unsigned) (8 * 8))] & (((HARD_REG_ELT_TYPE) (1)) << ((true_regnum (rld[i].reg_rtx)) % ((unsigned) (8 * 8)))))))
&& out == 0 && rld[i].out == 0 && rld[i].in != 0
&& ((((enum rtx_code) (in)->code) == REG
&& (rtx_class[(int) (((enum rtx_code) (rld[i].in)->code))]) == 'a'
&& ((((rld[i].in)->fld[0]).rtx) == in || ((((rld[i].in)->fld[0]).rtx) != 0 && (((enum rtx_code) ((((rld[i].in)->fld[0]).rtx))->code) == REG ? ((enum rtx_code) (in)->code) == REG && ((((((rld[i].in)->fld[0]).rtx))->fld[0]).rtuint) == (((in)->fld[0]).rtuint) : rtx_equal_p ((((rld[i].in)->fld[0]).rtx), in) && ! side_effects_p ((((rld[i].in)->fld[0]).rtx))))))
|| (((enum rtx_code) (rld[i].in)->code) == REG
&& (rtx_class[(int) (((enum rtx_code) (in)->code))]) == 'a'
&& ((((in)->fld[0]).rtx) == rld[i].in || ((((in)->fld[0]).rtx) != 0 && (((enum rtx_code) ((((in)->fld[0]).rtx))->code) == REG ? ((enum rtx_code) (rld[i].in)->code) == REG && ((((((in)->fld[0]).rtx))->fld[0]).rtuint) == (((rld[i].in)->fld[0]).rtuint) : rtx_equal_p ((((in)->fld[0]).rtx), rld[i].in) && ! side_effects_p ((((in)->fld[0]).rtx)))))))
&& (rld[i].out == 0 || ! earlyclobber_operand_p (rld[i].out))
&& (reg_class_size[(int) class] == 1 || 0)
&& ((type) == RELOAD_OTHER || (rld[i].when_needed) == RELOAD_OTHER || ((type) == (rld[i].when_needed) && (opnum) == (rld[i].opnum)) || ((type) == RELOAD_FOR_INPUT && (rld[i].when_needed) == RELOAD_FOR_INPUT) || ((type) == RELOAD_FOR_OPERAND_ADDRESS && (rld[i].when_needed) == RELOAD_FOR_OPERAND_ADDRESS) || ((type) == RELOAD_FOR_OTHER_ADDRESS && (rld[i].when_needed) == RELOAD_FOR_OTHER_ADDRESS)))
{
if (((enum rtx_code) (in)->code) == REG)
*p_in = rld[i].in;
return i;
}
return n_reloads;
}
static int
reload_inner_reg_of_subreg (x, mode, output)
rtx x;
enum machine_mode mode;
int output;
{
rtx inner;
if (((enum rtx_code) (x)->code) != SUBREG)
return 0;
inner = (((x)->fld[0]).rtx);
if ((((enum rtx_code) (inner)->code) == LABEL_REF || ((enum rtx_code) (inner)->code) == SYMBOL_REF || ((enum rtx_code) (inner)->code) == CONST_INT || ((enum rtx_code) (inner)->code) == CONST_DOUBLE || ((enum rtx_code) (inner)->code) == CONST || ((enum rtx_code) (inner)->code) == HIGH || ((enum rtx_code) (inner)->code) == CONST_VECTOR || ((enum rtx_code) (inner)->code) == CONSTANT_P_RTX) || ((enum rtx_code) (inner)->code) == PLUS)
return 1;
if (((enum rtx_code) (inner)->code) != REG
|| (((inner)->fld[0]).rtuint) >= 102)
return 0;
if (!subreg_offset_representable_p
(((((((x)->fld[0]).rtx))->fld[0]).rtuint),
((enum machine_mode) ((((x)->fld[0]).rtx))->mode),
(((x)->fld[1]).rtuint),
((enum machine_mode) (x)->mode)))
return 1;
if (! ((hard_regno_mode_classes[subreg_regno (x)] & sparc_mode_class[mode]) != 0))
return 1;
return ((mode_size[(int) (mode)]) <= ((! (! (target_flags & 0x10000))) ? 8 : 4)
&& output
&& (mode_size[(int) (((enum machine_mode) (inner)->mode))]) > ((! (! (target_flags & 0x10000))) ? 8 : 4)
&& (((mode_size[(int) (((enum machine_mode) (inner)->mode))]) / ((! (! (target_flags & 0x10000))) ? 8 : 4))
!= (int) ((! (! (target_flags & 0x10000))) ? (((((inner)->fld[0]).rtuint)) < 32 || ((((inner)->fld[0]).rtuint)) == 101 ? ((mode_size[(int) (((enum machine_mode) (inner)->mode))]) + ((! (! (target_flags & 0x10000))) ? 8 : 4) - 1) / ((! (! (target_flags & 0x10000))) ? 8 : 4) : ((mode_size[(int) (((enum machine_mode) (inner)->mode))]) + 3) / 4) : (((mode_size[(int) (((enum machine_mode) (inner)->mode))]) + ((! (! (target_flags & 0x10000))) ? 8 : 4) - 1) / ((! (! (target_flags & 0x10000))) ? 8 : 4)))));
}
# 858 "/opt/local/src/gcc-3.3.3/gcc/reload.c"
static int
can_reload_into (in, regno, mode)
rtx in;
int regno;
enum machine_mode mode;
{
rtx dst, test_insn;
int r = 0;
struct recog_data save_recog_data;
if (((enum rtx_code) (in)->code) == REG)
return 1;
if (((enum rtx_code) (in)->code) == MEM)
return 1;
dst = gen_rtx_REG (mode, regno);
test_insn = make_insn_raw (gen_rtx_fmt_ee (SET, (VOIDmode), (dst), (in)));
save_recog_data = recog_data;
if (((((test_insn)->fld[6]).rtint) >= 0 ? (((test_insn)->fld[6]).rtint) : recog_memoized_1 (test_insn)) >= 0)
{
extract_insn (test_insn);
r = constrain_operands (1);
}
recog_data = save_recog_data;
return r;
}
# 930 "/opt/local/src/gcc-3.3.3/gcc/reload.c"
int
push_reload (in, out, inloc, outloc, class,
inmode, outmode, strict_low, optional, opnum, type)
rtx in, out;
rtx *inloc, *outloc;
enum reg_class class;
enum machine_mode inmode, outmode;
int strict_low;
int optional;
int opnum;
enum reload_type type;
{
int i;
int dont_share = 0;
int dont_remove_subreg = 0;
rtx *in_subreg_loc = 0, *out_subreg_loc = 0;
int secondary_in_reload = -1, secondary_out_reload = -1;
enum insn_code secondary_in_icode = CODE_FOR_nothing;
enum insn_code secondary_out_icode = CODE_FOR_nothing;
if (inmode == VOIDmode && in != 0)
inmode = ((enum machine_mode) (in)->mode);
if (outmode == VOIDmode && out != 0)
outmode = ((enum machine_mode) (out)->mode);
if (in != 0 && ((enum rtx_code) (in)->code) == REG)
{
int regno = (((in)->fld[0]).rtuint);
if (regno >= 102 && reg_renumber[regno] < 0
&& reg_equiv_constant[regno] != 0)
in = reg_equiv_constant[regno];
}
if (out != 0 && ((enum rtx_code) (out)->code) == REG)
{
int regno = (((out)->fld[0]).rtuint);
if (regno >= 102 && reg_renumber[regno] < 0
&& reg_equiv_constant[regno] != 0)
out = reg_equiv_constant[regno];
}
if (in != 0 && out != 0 && ((enum rtx_code) (in)->code) == MEM && rtx_equal_p (in, out))
switch (((enum rtx_code) ((((in)->fld[0]).rtx))->code))
{
case POST_INC: case POST_DEC: case POST_MODIFY:
in = replace_equiv_address_nv (in, ((((((in)->fld[0]).rtx))->fld[0]).rtx));
break;
case PRE_INC: case PRE_DEC: case PRE_MODIFY:
out = replace_equiv_address_nv (out, ((((((out)->fld[0]).rtx))->fld[0]).rtx));
break;
default:
break;
}
# 1030 "/opt/local/src/gcc-3.3.3/gcc/reload.c"
if (in != 0 && ((enum rtx_code) (in)->code) == SUBREG
&& (subreg_lowpart_p (in) || strict_low)
&& ((((enum rtx_code) ((((in)->fld[0]).rtx))->code) == LABEL_REF || ((enum rtx_code) ((((in)->fld[0]).rtx))->code) == SYMBOL_REF || ((enum rtx_code) ((((in)->fld[0]).rtx))->code) == CONST_INT || ((enum rtx_code) ((((in)->fld[0]).rtx))->code) == CONST_DOUBLE || ((enum rtx_code) ((((in)->fld[0]).rtx))->code) == CONST || ((enum rtx_code) ((((in)->fld[0]).rtx))->code) == HIGH || ((enum rtx_code) ((((in)->fld[0]).rtx))->code) == CONST_VECTOR || ((enum rtx_code) ((((in)->fld[0]).rtx))->code) == CONSTANT_P_RTX)
|| ((enum rtx_code) ((((in)->fld[0]).rtx))->code) == PLUS
|| strict_low
|| (((((enum rtx_code) ((((in)->fld[0]).rtx))->code) == REG
&& ((((((in)->fld[0]).rtx))->fld[0]).rtuint) >= 102)
|| ((enum rtx_code) ((((in)->fld[0]).rtx))->code) == MEM)
&& (((mode_size[(int) (inmode)])
> (mode_size[(int) (((enum machine_mode) ((((in)->fld[0]).rtx))->mode))]))
|| ((mode_size[(int) (inmode)]) <= ((! (! (target_flags & 0x10000))) ? 8 : 4)
&& ((mode_size[(int) (((enum machine_mode) ((((in)->fld[0]).rtx))->mode))])
<= ((! (! (target_flags & 0x10000))) ? 8 : 4))
&& ((mode_size[(int) (inmode)])
> (mode_size[(int) (((enum machine_mode) ((((in)->fld[0]).rtx))->mode))]))
&& ((mode_class[(int) (((enum machine_mode) ((((in)->fld[0]).rtx))->mode))]) == MODE_INT || (mode_class[(int) (((enum machine_mode) ((((in)->fld[0]).rtx))->mode))]) == MODE_PARTIAL_INT || (mode_class[(int) (((enum machine_mode) ((((in)->fld[0]).rtx))->mode))]) == MODE_COMPLEX_INT || (mode_class[(int) (((enum machine_mode) ((((in)->fld[0]).rtx))->mode))]) == MODE_VECTOR_INT)
&& ZERO_EXTEND != NIL)
|| (((mode_size[(int) (inmode)])
< (mode_size[(int) (((enum machine_mode) ((((in)->fld[0]).rtx))->mode))]))
&& (((mode_size[(int) (inmode)]) - 1) / ((! (! (target_flags & 0x10000))) ? 8 : 4) ==
(((mode_size[(int) (((enum machine_mode) ((((in)->fld[0]).rtx))->mode))]) - 1)
/ ((! (! (target_flags & 0x10000))) ? 8 : 4))))
))
|| (((enum rtx_code) ((((in)->fld[0]).rtx))->code) == REG
&& ((((((in)->fld[0]).rtx))->fld[0]).rtuint) < 102
&& (out == 0 || subreg_lowpart_p (in))
&& (((mode_size[(int) (inmode)]) <= ((! (! (target_flags & 0x10000))) ? 8 : 4)
&& ((mode_size[(int) (((enum machine_mode) ((((in)->fld[0]).rtx))->mode))])
> ((! (! (target_flags & 0x10000))) ? 8 : 4))
&& (((mode_size[(int) (((enum machine_mode) ((((in)->fld[0]).rtx))->mode))])
/ ((! (! (target_flags & 0x10000))) ? 8 : 4))
!= (int) ((! (! (target_flags & 0x10000))) ? ((((((((in)->fld[0]).rtx))->fld[0]).rtuint)) < 32 || (((((((in)->fld[0]).rtx))->fld[0]).rtuint)) == 101 ? ((mode_size[(int) (((enum machine_mode) ((((in)->fld[0]).rtx))->mode))]) + ((! (! (target_flags & 0x10000))) ? 8 : 4) - 1) / ((! (! (target_flags & 0x10000))) ? 8 : 4) : ((mode_size[(int) (((enum machine_mode) ((((in)->fld[0]).rtx))->mode))]) + 3) / 4) : (((mode_size[(int) (((enum machine_mode) ((((in)->fld[0]).rtx))->mode))]) + ((! (! (target_flags & 0x10000))) ? 8 : 4) - 1) / ((! (! (target_flags & 0x10000))) ? 8 : 4)))))
|| ! ((hard_regno_mode_classes[subreg_regno (in)] & sparc_mode_class[inmode]) != 0)))
|| (((((class) == FP_REGS || (class) == EXTRA_FP_REGS) && ((inmode) == HImode || (inmode) == QImode) && (((enum rtx_code) (in)->code) == MEM || ((((enum rtx_code) (in)->code) == REG || ((enum rtx_code) (in)->code) == SUBREG) && true_regnum (in) == -1))) ? GENERAL_REGS : ((class) == EXTRA_FP_REGS && (inmode) == DFmode && ((enum rtx_code) (in)->code) == MEM && (! (target_flags & 0x10000)) && ! mem_min_alignment ((in), 8)) ? FP_REGS : ((((sparc_cmodel == CM_MEDANY) && symbolic_operand ((in), (inmode))) || ((sparc_cmodel == CM_EMBMEDANY) && text_segment_operand ((in), (inmode)))) && !flag_pic) ? GENERAL_REGS : NO_REGS) != NO_REGS
&& (((((class) == FP_REGS || (class) == EXTRA_FP_REGS) && ((((enum machine_mode) ((((in)->fld[0]).rtx))->mode)) == HImode || (((enum machine_mode) ((((in)->fld[0]).rtx))->mode)) == QImode) && (((enum rtx_code) ((((in)->fld[0]).rtx))->code) == MEM || ((((enum rtx_code) ((((in)->fld[0]).rtx))->code) == REG || ((enum rtx_code) ((((in)->fld[0]).rtx))->code) == SUBREG) && true_regnum ((((in)->fld[0]).rtx)) == -1))) ? GENERAL_REGS : ((class) == EXTRA_FP_REGS && (((enum machine_mode) ((((in)->fld[0]).rtx))->mode)) == DFmode && ((enum rtx_code) ((((in)->fld[0]).rtx))->code) == MEM && (! (target_flags & 0x10000)) && ! mem_min_alignment (((((in)->fld[0]).rtx)), 8)) ? FP_REGS : ((((sparc_cmodel == CM_MEDANY) && symbolic_operand (((((in)->fld[0]).rtx)), (((enum machine_mode) ((((in)->fld[0]).rtx))->mode)))) || ((sparc_cmodel == CM_EMBMEDANY) && text_segment_operand (((((in)->fld[0]).rtx)), (((enum machine_mode) ((((in)->fld[0]).rtx))->mode))))) && !flag_pic) ? GENERAL_REGS
: NO_REGS)
== NO_REGS))
))
{
in_subreg_loc = inloc;
inloc = &(((in)->fld[0]).rtx);
in = *inloc;
inmode = ((enum machine_mode) (in)->mode);
}
# 1111 "/opt/local/src/gcc-3.3.3/gcc/reload.c"
if (in != 0 && reload_inner_reg_of_subreg (in, inmode, 0))
{
enum reg_class in_class = class;
if (((enum rtx_code) ((((in)->fld[0]).rtx))->code) == REG)
in_class
= find_valid_class (inmode,
subreg_regno_offset (((((((in)->fld[0]).rtx))->fld[0]).rtuint),
((enum machine_mode) ((((in)->fld[0]).rtx))->mode),
(((in)->fld[1]).rtuint),
((enum machine_mode) (in)->mode)),
((((((in)->fld[0]).rtx))->fld[0]).rtuint));
push_reload ((((in)->fld[0]).rtx), (rtx) 0, &(((in)->fld[0]).rtx), (rtx *) 0,
in_class, VOIDmode, VOIDmode, 0, 0, opnum, type);
dont_remove_subreg = 1;
}
if (out != 0 && ((enum rtx_code) (out)->code) == SUBREG
&& (subreg_lowpart_p (out) || strict_low)
&& ((((enum rtx_code) ((((out)->fld[0]).rtx))->code) == LABEL_REF || ((enum rtx_code) ((((out)->fld[0]).rtx))->code) == SYMBOL_REF || ((enum rtx_code) ((((out)->fld[0]).rtx))->code) == CONST_INT || ((enum rtx_code) ((((out)->fld[0]).rtx))->code) == CONST_DOUBLE || ((enum rtx_code) ((((out)->fld[0]).rtx))->code) == CONST || ((enum rtx_code) ((((out)->fld[0]).rtx))->code) == HIGH || ((enum rtx_code) ((((out)->fld[0]).rtx))->code) == CONST_VECTOR || ((enum rtx_code) ((((out)->fld[0]).rtx))->code) == CONSTANT_P_RTX)
|| strict_low
|| (((((enum rtx_code) ((((out)->fld[0]).rtx))->code) == REG
&& ((((((out)->fld[0]).rtx))->fld[0]).rtuint) >= 102)
|| ((enum rtx_code) ((((out)->fld[0]).rtx))->code) == MEM)
&& (((mode_size[(int) (outmode)])
> (mode_size[(int) (((enum machine_mode) ((((out)->fld[0]).rtx))->mode))]))
|| (((mode_size[(int) (outmode)])
< (mode_size[(int) (((enum machine_mode) ((((out)->fld[0]).rtx))->mode))]))
&& (((mode_size[(int) (outmode)]) - 1) / ((! (! (target_flags & 0x10000))) ? 8 : 4) ==
(((mode_size[(int) (((enum machine_mode) ((((out)->fld[0]).rtx))->mode))]) - 1)
/ ((! (! (target_flags & 0x10000))) ? 8 : 4))))
))
|| (((enum rtx_code) ((((out)->fld[0]).rtx))->code) == REG
&& ((((((out)->fld[0]).rtx))->fld[0]).rtuint) < 102
&& (((mode_size[(int) (outmode)]) <= ((! (! (target_flags & 0x10000))) ? 8 : 4)
&& ((mode_size[(int) (((enum machine_mode) ((((out)->fld[0]).rtx))->mode))])
> ((! (! (target_flags & 0x10000))) ? 8 : 4))
&& (((mode_size[(int) (((enum machine_mode) ((((out)->fld[0]).rtx))->mode))])
/ ((! (! (target_flags & 0x10000))) ? 8 : 4))
!= (int) ((! (! (target_flags & 0x10000))) ? ((((((((out)->fld[0]).rtx))->fld[0]).rtuint)) < 32 || (((((((out)->fld[0]).rtx))->fld[0]).rtuint)) == 101 ? ((mode_size[(int) (((enum machine_mode) ((((out)->fld[0]).rtx))->mode))]) + ((! (! (target_flags & 0x10000))) ? 8 : 4) - 1) / ((! (! (target_flags & 0x10000))) ? 8 : 4) : ((mode_size[(int) (((enum machine_mode) ((((out)->fld[0]).rtx))->mode))]) + 3) / 4) : (((mode_size[(int) (((enum machine_mode) ((((out)->fld[0]).rtx))->mode))]) + ((! (! (target_flags & 0x10000))) ? 8 : 4) - 1) / ((! (! (target_flags & 0x10000))) ? 8 : 4)))))
|| ! ((hard_regno_mode_classes[subreg_regno (out)] & sparc_mode_class[outmode]) != 0)))
|| (((((class) == FP_REGS || (class) == EXTRA_FP_REGS) && ((outmode) == HImode || (outmode) == QImode) && (((enum rtx_code) (out)->code) == MEM || ((((enum rtx_code) (out)->code) == REG || ((enum rtx_code) (out)->code) == SUBREG) && true_regnum (out) == -1))) ? GENERAL_REGS : ((class) == EXTRA_FP_REGS && (outmode) == DFmode && ((enum rtx_code) (out)->code) == MEM && (! (target_flags & 0x10000)) && ! mem_min_alignment ((out), 8)) ? FP_REGS : ((((sparc_cmodel == CM_MEDANY) && symbolic_operand ((out), (outmode))) || ((sparc_cmodel == CM_EMBMEDANY) && text_segment_operand ((out), (outmode)))) && !flag_pic) ? GENERAL_REGS : NO_REGS) != NO_REGS
&& (((((class) == FP_REGS || (class) == EXTRA_FP_REGS) && ((((enum machine_mode) ((((out)->fld[0]).rtx))->mode)) == HImode || (((enum machine_mode) ((((out)->fld[0]).rtx))->mode)) == QImode) && (((enum rtx_code) ((((out)->fld[0]).rtx))->code) == MEM || ((((enum rtx_code) ((((out)->fld[0]).rtx))->code) == REG || ((enum rtx_code) ((((out)->fld[0]).rtx))->code) == SUBREG) && true_regnum ((((out)->fld[0]).rtx)) == -1))) ? GENERAL_REGS : ((class) == EXTRA_FP_REGS && (((enum machine_mode) ((((out)->fld[0]).rtx))->mode)) == DFmode && ((enum rtx_code) ((((out)->fld[0]).rtx))->code) == MEM && (! (target_flags & 0x10000)) && ! mem_min_alignment (((((out)->fld[0]).rtx)), 8)) ? FP_REGS : ((((sparc_cmodel == CM_MEDANY) && symbolic_operand (((((out)->fld[0]).rtx)), (((enum machine_mode) ((((out)->fld[0]).rtx))->mode)))) || ((sparc_cmodel == CM_EMBMEDANY) && text_segment_operand (((((out)->fld[0]).rtx)), (((enum machine_mode) ((((out)->fld[0]).rtx))->mode))))) && !flag_pic) ?
GENERAL_REGS : NO_REGS)
== NO_REGS))
# 1184 "/opt/local/src/gcc-3.3.3/gcc/reload.c"
))
{
out_subreg_loc = outloc;
outloc = &(((out)->fld[0]).rtx);
out = *outloc;
outmode = ((enum machine_mode) (out)->mode);
}
# 1204 "/opt/local/src/gcc-3.3.3/gcc/reload.c"
if (out != 0 && reload_inner_reg_of_subreg (out, outmode, 1))
{
dont_remove_subreg = 1;
push_reload ((((out)->fld[0]).rtx), (((out)->fld[0]).rtx), &(((out)->fld[0]).rtx),
&(((out)->fld[0]).rtx),
find_valid_class (outmode,
subreg_regno_offset (((((((out)->fld[0]).rtx))->fld[0]).rtuint),
((enum machine_mode) ((((out)->fld[0]).rtx))->mode),
(((out)->fld[1]).rtuint),
((enum machine_mode) (out)->mode)),
((((((out)->fld[0]).rtx))->fld[0]).rtuint)),
VOIDmode, VOIDmode, 0, 0,
opnum, RELOAD_OTHER);
}
if (in != 0 && out != 0 && ((enum rtx_code) (out)->code) == MEM
&& (((enum rtx_code) (in)->code) == REG || ((enum rtx_code) (in)->code) == MEM)
&& reg_overlap_mentioned_for_reload_p (in, (((out)->fld[0]).rtx)))
dont_share = 1;
if (in != 0 && ((enum rtx_code) (in)->code) == SUBREG && ((enum rtx_code) ((((in)->fld[0]).rtx))->code) == REG
&& ((((((in)->fld[0]).rtx))->fld[0]).rtuint) < 102
&& ! dont_remove_subreg)
in = gen_rtx_REG (((enum machine_mode) (in)->mode), subreg_regno (in));
if (out != 0 && ((enum rtx_code) (out)->code) == SUBREG
&& ((enum rtx_code) ((((out)->fld[0]).rtx))->code) == REG
&& ((((((out)->fld[0]).rtx))->fld[0]).rtuint) < 102
&& ! dont_remove_subreg)
out = gen_rtx_REG (((enum machine_mode) (out)->mode), subreg_regno (out));
if (in != 0)
class = ((((enum rtx_code) (in)->code) == LABEL_REF || ((enum rtx_code) (in)->code) == SYMBOL_REF || ((enum rtx_code) (in)->code) == CONST_INT || ((enum rtx_code) (in)->code) == CONST_DOUBLE || ((enum rtx_code) (in)->code) == CONST || ((enum rtx_code) (in)->code) == HIGH || ((enum rtx_code) (in)->code) == CONST_VECTOR || ((enum rtx_code) (in)->code) == CONSTANT_P_RTX) ? ((((class) == FP_REGS || (class) == EXTRA_FP_REGS) || (class) == GENERAL_OR_FP_REGS || (class) == GENERAL_OR_EXTRA_FP_REGS || ((mode_class[(int) (((enum machine_mode) (in)->mode))]) == MODE_FLOAT && ! (target_flags & 1)) || (((enum machine_mode) (in)->mode) == TFmode && ! fp_zero_operand (in, TFmode))) ? NO_REGS : (!((class) == FP_REGS || (class) == EXTRA_FP_REGS) && (mode_class[(int) (((enum machine_mode) (in)->mode))]) == MODE_INT) ? GENERAL_REGS : (class)) : (class));
# 1274 "/opt/local/src/gcc-3.3.3/gcc/reload.c"
if (this_insn_is_asm)
{
enum machine_mode mode;
if ((mode_size[(int) (inmode)]) > (mode_size[(int) (outmode)]))
mode = inmode;
else
mode = outmode;
if (mode == VOIDmode)
{
error_for_asm (this_insn, "cannot reload integer constant operand in `asm'");
mode = word_mode;
if (in != 0)
inmode = word_mode;
if (out != 0)
outmode = word_mode;
}
for (i = 0; i < 102; i++)
if (((hard_regno_mode_classes[i] & sparc_mode_class[mode]) != 0)
&& (!!((reg_class_contents[(int) class])[(i) / ((unsigned) (8 * 8))] & (((HARD_REG_ELT_TYPE) (1)) << ((i) % ((unsigned) (8 * 8)))))))
{
int nregs = ((! (! (target_flags & 0x10000))) ? ((i) < 32 || (i) == 101 ? ((mode_size[(int) (mode)]) + ((! (! (target_flags & 0x10000))) ? 8 : 4) - 1) / ((! (! (target_flags & 0x10000))) ? 8 : 4) : ((mode_size[(int) (mode)]) + 3) / 4) : (((mode_size[(int) (mode)]) + ((! (! (target_flags & 0x10000))) ? 8 : 4) - 1) / ((! (! (target_flags & 0x10000))) ? 8 : 4)));
int j;
for (j = 1; j < nregs; j++)
if (! (!!((reg_class_contents[(int) class])[(i + j) / ((unsigned) (8 * 8))] & (((HARD_REG_ELT_TYPE) (1)) << ((i + j) % ((unsigned) (8 * 8)))))))
break;
if (j == nregs)
break;
}
if (i == 102)
{
error_for_asm (this_insn, "impossible register constraint in `asm'");
class = ALL_REGS;
}
}
if (class == NO_REGS
&& (optional == 0 || type != RELOAD_FOR_OUTPUT))
fancy_abort ("/opt/local/src/gcc-3.3.3/gcc/reload.c", 1315, __FUNCTION__);
i = find_reusable_reload (&in, out, class, type, opnum, dont_share);
if (i == n_reloads)
{
if (in != 0)
secondary_in_reload
= push_secondary_reload (1, in, opnum, optional, class, inmode, type,
&secondary_in_icode);
if (out != 0 && ((enum rtx_code) (out)->code) != SCRATCH)
secondary_out_reload
= push_secondary_reload (0, out, opnum, optional, class, outmode,
type, &secondary_out_icode);
if (in != 0 && (((enum rtx_code) (in)->code) == REG || ((enum rtx_code) (in)->code) == SUBREG)
&& reg_or_subregno (in) < 102
&& (((sparc_regno_reg_class[(reg_or_subregno (in))]) == FP_REGS || (sparc_regno_reg_class[(reg_or_subregno (in))]) == EXTRA_FP_REGS) != ((class) == FP_REGS || (class) == EXTRA_FP_REGS)))
get_secondary_mem (in, inmode, opnum, type);
i = n_reloads;
rld[i].in = in;
rld[i].out = out;
rld[i].class = class;
rld[i].inmode = inmode;
rld[i].outmode = outmode;
rld[i].reg_rtx = 0;
rld[i].optional = optional;
rld[i].inc = 0;
rld[i].nocombine = 0;
rld[i].in_reg = inloc ? *inloc : 0;
rld[i].out_reg = outloc ? *outloc : 0;
rld[i].opnum = opnum;
rld[i].when_needed = type;
rld[i].secondary_in_reload = secondary_in_reload;
rld[i].secondary_out_reload = secondary_out_reload;
rld[i].secondary_in_icode = secondary_in_icode;
rld[i].secondary_out_icode = secondary_out_icode;
rld[i].secondary_p = 0;
n_reloads++;
if (out != 0 && (((enum rtx_code) (out)->code) == REG || ((enum rtx_code) (out)->code) == SUBREG)
&& reg_or_subregno (out) < 102
&& (((class) == FP_REGS || (class) == EXTRA_FP_REGS) != ((sparc_regno_reg_class[(reg_or_subregno (out))]) == FP_REGS || (sparc_regno_reg_class[(reg_or_subregno (out))]) == EXTRA_FP_REGS)))
get_secondary_mem (out, outmode, opnum, type);
}
else
{
if (inmode != VOIDmode
&& (mode_size[(int) (inmode)]) > (mode_size[(int) (rld[i].inmode)]))
rld[i].inmode = inmode;
if (outmode != VOIDmode
&& (mode_size[(int) (outmode)]) > (mode_size[(int) (rld[i].outmode)]))
rld[i].outmode = outmode;
if (in != 0)
{
rtx in_reg = inloc ? *inloc : 0;
# 1414 "/opt/local/src/gcc-3.3.3/gcc/reload.c"
if (rld[i].in != in && rtx_equal_p (in, rld[i].in)
&& ! (rld[i].optional && optional))
{
if (opnum > rld[i].opnum)
{
remove_address_replacements (in);
in = rld[i].in;
in_reg = rld[i].in_reg;
}
else
remove_address_replacements (rld[i].in);
}
rld[i].in = in;
rld[i].in_reg = in_reg;
}
if (out != 0)
{
rld[i].out = out;
rld[i].out_reg = outloc ? *outloc : 0;
}
if (reg_class_subset_p (class, rld[i].class))
rld[i].class = class;
rld[i].optional &= optional;
if (((type) != (rld[i].when_needed) || ! ((opnum) == (rld[i].opnum) || (type) == RELOAD_FOR_INPUT || (type) == RELOAD_FOR_OPERAND_ADDRESS || (type) == RELOAD_FOR_OTHER_ADDRESS)))
rld[i].when_needed = RELOAD_OTHER;
rld[i].opnum = ((rld[i].opnum) < (opnum) ? (rld[i].opnum) : (opnum));
}
if (in != 0 && in != *inloc)
rld[i].nocombine = 1;
# 1478 "/opt/local/src/gcc-3.3.3/gcc/reload.c"
if (replace_reloads)
{
if (inloc != 0)
{
struct replacement *r = &replacements[n_replacements++];
r->what = i;
r->subreg_loc = in_subreg_loc;
r->where = inloc;
r->mode = inmode;
}
if (outloc != 0 && outloc != inloc)
{
struct replacement *r = &replacements[n_replacements++];
r->what = i;
r->where = outloc;
r->subreg_loc = out_subreg_loc;
r->mode = outmode;
}
}
# 1506 "/opt/local/src/gcc-3.3.3/gcc/reload.c"
if (in != 0 && out != 0 && in != out && rld[i].reg_rtx == 0)
{
rld[i].reg_rtx = find_dummy_reload (in, out, inloc, outloc,
inmode, outmode,
rld[i].class, i,
earlyclobber_operand_p (out));
if (rld[i].reg_rtx == out
&& (((enum rtx_code) (in)->code) == REG || (((enum rtx_code) (in)->code) == LABEL_REF || ((enum rtx_code) (in)->code) == SYMBOL_REF || ((enum rtx_code) (in)->code) == CONST_INT || ((enum rtx_code) (in)->code) == CONST_DOUBLE || ((enum rtx_code) (in)->code) == CONST || ((enum rtx_code) (in)->code) == HIGH || ((enum rtx_code) (in)->code) == CONST_VECTOR || ((enum rtx_code) (in)->code) == CONSTANT_P_RTX))
&& 0 != find_equiv_reg (in, this_insn, 0, (((out)->fld[0]).rtuint),
static_reload_reg_p, i, inmode))
rld[i].in = out;
}
# 1536 "/opt/local/src/gcc-3.3.3/gcc/reload.c"
if (rld[i].reg_rtx == 0 && in != 0)
{
rtx note;
int regno;
enum machine_mode rel_mode = inmode;
if (out && (mode_size[(int) (outmode)]) > (mode_size[(int) (inmode)]))
rel_mode = outmode;
for (note = (((this_insn)->fld[8]).rtx); note; note = (((note)->fld[1]).rtx))
if (((enum reg_note) ((enum machine_mode) (note)->mode)) == REG_DEAD
&& ((enum rtx_code) ((((note)->fld[0]).rtx))->code) == REG
&& (regno = ((((((note)->fld[0]).rtx))->fld[0]).rtuint)) < 102
&& reg_mentioned_p ((((note)->fld[0]).rtx), in)
&& ! refers_to_regno_for_reload_p (regno,
(regno
+ ((! (! (target_flags & 0x10000))) ? ((regno) < 32 || (regno) == 101 ? ((mode_size[(int) (rel_mode)]) + ((! (! (target_flags & 0x10000))) ? 8 : 4) - 1) / ((! (! (target_flags & 0x10000))) ? 8 : 4) : ((mode_size[(int) (rel_mode)]) + 3) / 4) : (((mode_size[(int) (rel_mode)]) + ((! (! (target_flags & 0x10000))) ? 8 : 4) - 1) / ((! (! (target_flags & 0x10000))) ? 8 : 4)))),
(((this_insn)->fld[5]).rtx), inloc)
&& (out == 0 || in == out
|| ! hard_reg_set_here_p (regno,
(regno
+ ((! (! (target_flags & 0x10000))) ? ((regno) < 32 || (regno) == 101 ? ((mode_size[(int) (rel_mode)]) + ((! (! (target_flags & 0x10000))) ? 8 : 4) - 1) / ((! (! (target_flags & 0x10000))) ? 8 : 4) : ((mode_size[(int) (rel_mode)]) + 3) / 4) : (((mode_size[(int) (rel_mode)]) + ((! (! (target_flags & 0x10000))) ? 8 : 4) - 1) / ((! (! (target_flags & 0x10000))) ? 8 : 4)))),
(((this_insn)->fld[5]).rtx)))
&& (in != out
|| (((enum rtx_code) (in)->code) == SUBREG
&& ((((mode_size[(int) (((enum machine_mode) (in)->mode))]) + (((! (! (target_flags & 0x10000))) ? 8 : 4) - 1))
/ ((! (! (target_flags & 0x10000))) ? 8 : 4))
== (((mode_size[(int) (((enum machine_mode) ((((in)->fld[0]).rtx))->mode))])
+ (((! (! (target_flags & 0x10000))) ? 8 : 4) - 1)) / ((! (! (target_flags & 0x10000))) ? 8 : 4)))))
&& ((mode_size[(int) (rel_mode)])
<= (mode_size[(int) (((enum machine_mode) ((((note)->fld[0]).rtx))->mode))]))
&& ((hard_regno_mode_classes[regno] & sparc_mode_class[inmode]) != 0)
&& ((hard_regno_mode_classes[regno] & sparc_mode_class[outmode]) != 0))
{
unsigned int offs;
unsigned int nregs = ((((! (! (target_flags & 0x10000))) ? ((regno) < 32 || (regno) == 101 ? ((mode_size[(int) (inmode)]) + ((! (! (target_flags & 0x10000))) ? 8 : 4) - 1) / ((! (! (target_flags & 0x10000))) ? 8 : 4) : ((mode_size[(int) (inmode)]) + 3) / 4) : (((mode_size[(int) (inmode)]) + ((! (! (target_flags & 0x10000))) ? 8 : 4) - 1) / ((! (! (target_flags & 0x10000))) ? 8 : 4)))) > (((! (! (target_flags & 0x10000))) ? ((regno) < 32 || (regno) == 101 ? ((mode_size[(int) (outmode)]) + ((! (! (target_flags & 0x10000))) ? 8 : 4) - 1) / ((! (! (target_flags & 0x10000))) ? 8 : 4) : ((mode_size[(int) (outmode)]) + 3) / 4) : (((mode_size[(int) (outmode)]) + ((! (! (target_flags & 0x10000))) ? 8 : 4) - 1) / ((! (! (target_flags & 0x10000))) ? 8 : 4)))) ? (((! (! (target_flags & 0x10000))) ? ((regno) < 32 || (regno) == 101 ? ((mode_size[(int) (inmode)]) + ((! (! (target_flags & 0x10000))) ? 8 : 4) - 1) / ((! (! (target_flags & 0x10000))) ? 8 : 4) : ((mode_size[(int) (i
nmode)]) + 3) / 4) : (((mode_size[(int) (inmode)]) + ((! (! (target_flags & 0x10000))) ? 8 : 4) - 1) / ((! (! (target_flags & 0x10000))) ? 8 : 4)))) : (((! (! (target_flags & 0x10000))) ? ((regno) < 32 || (regno) == 101 ? ((mode_size[(int) (outmode)]) + ((! (! (target_flags & 0x10000))) ? 8 : 4) - 1) / ((! (! (target_flags & 0x10000))) ? 8 : 4) : ((mode_size[(int) (outmode)]) + 3) / 4) : (((mode_size[(int) (outmode)]) + ((! (! (target_flags & 0x10000))) ? 8 : 4) - 1) / ((! (! (target_flags & 0x10000))) ? 8 : 4)))));
for (offs = 0; offs < nregs; offs++)
if (fixed_regs[regno + offs]
|| ! (!!((reg_class_contents[(int) class])[(regno + offs) / ((unsigned) (8 * 8))] & (((HARD_REG_ELT_TYPE) (1)) << ((regno + offs) % ((unsigned) (8 * 8)))))))
break;
if (offs == nregs
&& (! (refers_to_regno_for_reload_p
(regno, (regno + ((! (! (target_flags & 0x10000))) ? ((regno) < 32 || (regno) == 101 ? ((mode_size[(int) (inmode)]) + ((! (! (target_flags & 0x10000))) ? 8 : 4) - 1) / ((! (! (target_flags & 0x10000))) ? 8 : 4) : ((mode_size[(int) (inmode)]) + 3) / 4) : (((mode_size[(int) (inmode)]) + ((! (! (target_flags & 0x10000))) ? 8 : 4) - 1) / ((! (! (target_flags & 0x10000))) ? 8 : 4)))),
in, (rtx *)0))
|| can_reload_into (in, regno, inmode)))
{
rld[i].reg_rtx = gen_rtx_REG (rel_mode, regno);
break;
}
}
}
if (out)
output_reloadnum = i;
return i;
}
static void
push_replacement (loc, reloadnum, mode)
rtx *loc;
int reloadnum;
enum machine_mode mode;
{
if (replace_reloads)
{
struct replacement *r = &replacements[n_replacements++];
r->what = reloadnum;
r->where = loc;
r->subreg_loc = 0;
r->mode = mode;
}
}
static void
dup_replacements (dup_loc, orig_loc)
rtx *dup_loc;
rtx *orig_loc;
{
int i, n = n_replacements;
for (i = 0; i < n; i++)
{
struct replacement *r = &replacements[i];
if (r->where == orig_loc)
push_replacement (dup_loc, r->what, r->mode);
}
}
void
transfer_replacements (to, from)
int to, from;
{
int i;
for (i = 0; i < n_replacements; i++)
if (replacements[i].what == from)
replacements[i].what = to;
}
int
remove_address_replacements (in_rtx)
rtx in_rtx;
{
int i, j;
char reload_flags[(2 * 30 * (2 + 1))];
int something_changed = 0;
memset (reload_flags, 0, sizeof reload_flags);
for (i = 0, j = 0; i < n_replacements; i++)
{
if (loc_mentioned_in_p (replacements[i].where, in_rtx))
reload_flags[replacements[i].what] |= 1;
else
{
replacements[j++] = replacements[i];
reload_flags[replacements[i].what] |= 2;
}
}
n_replacements = j;
for (i = n_reloads - 1; i >= 0; i--)
{
if (reload_flags[i] == 1)
{
deallocate_reload_reg (i);
remove_address_replacements (rld[i].in);
rld[i].in = 0;
something_changed = 1;
}
}
return something_changed;
}
# 1713 "/opt/local/src/gcc-3.3.3/gcc/reload.c"
static void
combine_reloads ()
{
int i;
int output_reload = -1;
int secondary_out = -1;
rtx note;
for (i = 0; i < n_reloads; i++)
if (rld[i].out != 0)
{
if (output_reload >= 0)
return;
output_reload = i;
}
if (output_reload < 0 || rld[output_reload].optional)
return;
if (rld[output_reload].in != 0)
return;
if (earlyclobber_operand_p (rld[output_reload].out))
return;
for (i = 0; i < n_reloads; i++)
if ((rld[i].when_needed == RELOAD_FOR_OUTPUT_ADDRESS
|| rld[i].when_needed == RELOAD_FOR_OUTADDR_ADDRESS)
&& rld[i].opnum == rld[output_reload].opnum)
return;
for (i = 0; i < n_reloads; i++)
if (rld[i].in && ! rld[i].optional && ! rld[i].nocombine
&& rld[i].when_needed != RELOAD_FOR_OUTPUT_ADDRESS
&& rld[i].when_needed != RELOAD_FOR_OUTADDR_ADDRESS
&& rld[i].when_needed != RELOAD_OTHER
&& ((((rld[i].class) == FP_REGS || (rld[i].class) == EXTRA_FP_REGS) ? ((mode_size[(int) (rld[i].inmode)]) + 3) / 4 : ((mode_size[(int) (rld[i].inmode)]) + ((! (! (target_flags & 0x10000))) ? 8 : 4) - 1) / ((! (! (target_flags & 0x10000))) ? 8 : 4))
== (((rld[output_reload].class) == FP_REGS || (rld[output_reload].class) == EXTRA_FP_REGS) ? ((mode_size[(int) (rld[output_reload].outmode)]) + 3) / 4 : ((mode_size[(int) (rld[output_reload].outmode)]) + ((! (! (target_flags & 0x10000))) ? 8 : 4) - 1) / ((! (! (target_flags & 0x10000))) ? 8 : 4)))
&& rld[i].inc == 0
&& rld[i].reg_rtx == 0
&& (secondary_memlocs_elim[(int) rld[output_reload].outmode][rld[i].opnum] == 0
|| secondary_memlocs_elim[(int) rld[output_reload].outmode][rld[output_reload].opnum] == 0
|| rtx_equal_p (secondary_memlocs_elim[(int) rld[output_reload].outmode][rld[i].opnum],
secondary_memlocs_elim[(int) rld[output_reload].outmode][rld[output_reload].opnum]))
&& (0
? (rld[i].class == rld[output_reload].class)
: (reg_class_subset_p (rld[i].class,
rld[output_reload].class)
|| reg_class_subset_p (rld[output_reload].class,
rld[i].class)))
&& ((rld[i].in == rld[output_reload].out || (rld[i].in != 0 && (((enum rtx_code) (rld[i].in)->code) == REG ? ((enum rtx_code) (rld[output_reload].out)->code) == REG && (((rld[i].in)->fld[0]).rtuint) == (((rld[output_reload].out)->fld[0]).rtuint) : rtx_equal_p (rld[i].in, rld[output_reload].out) && ! side_effects_p (rld[i].in))))
|| (! reg_overlap_mentioned_for_reload_p (rld[output_reload].out,
rld[i].in)
&& ! (((enum rtx_code) (rld[i].in)->code) == REG
&& reg_overlap_mentioned_for_reload_p (rld[i].in,
rld[output_reload].out))))
&& ! reload_inner_reg_of_subreg (rld[i].in, rld[i].inmode,
rld[i].when_needed != RELOAD_FOR_INPUT)
&& (reg_class_size[(int) rld[i].class]
|| 0)
&& (rld[i].when_needed == RELOAD_FOR_INPUT
|| rld[i].when_needed == RELOAD_FOR_OUTPUT))
{
int j;
rld[i].out = rld[output_reload].out;
rld[i].out_reg = rld[output_reload].out_reg;
rld[i].outmode = rld[output_reload].outmode;
rld[output_reload].out = 0;
rld[i].when_needed = RELOAD_OTHER;
if (rld[output_reload].secondary_out_reload != -1)
{
rld[i].secondary_out_reload
= rld[output_reload].secondary_out_reload;
rld[i].secondary_out_icode
= rld[output_reload].secondary_out_icode;
}
if (secondary_memlocs_elim[(int) rld[output_reload].outmode][rld[output_reload].opnum] != 0)
secondary_memlocs_elim[(int) rld[output_reload].outmode][rld[i].opnum]
= secondary_memlocs_elim[(int) rld[output_reload].outmode][rld[output_reload].opnum];
if (reg_class_subset_p (rld[output_reload].class,
rld[i].class))
rld[i].class = rld[output_reload].class;
for (j = 0; j < n_replacements; j++)
if (replacements[j].what == output_reload)
replacements[j].what = i;
return;
}
if ((((this_insn)->fld[6]).rtint) == -1)
return;
for (i = 1; i < insn_data[(((this_insn)->fld[6]).rtint)].n_operands; i++)
if (insn_data[(((this_insn)->fld[6]).rtint)].operand[i].constraint[0] == '='
|| insn_data[(((this_insn)->fld[6]).rtint)].operand[i].constraint[0] == '+')
return;
for (note = (((this_insn)->fld[8]).rtx); note; note = (((note)->fld[1]).rtx))
if (((enum reg_note) ((enum machine_mode) (note)->mode)) == REG_DEAD
&& ((enum rtx_code) ((((note)->fld[0]).rtx))->code) == REG
&& ! reg_overlap_mentioned_for_reload_p ((((note)->fld[0]).rtx),
rld[output_reload].out)
&& ((((((note)->fld[0]).rtx))->fld[0]).rtuint) < 102
&& ((hard_regno_mode_classes[((((((note)->fld[0]).rtx))->fld[0]).rtuint)] & sparc_mode_class[rld[output_reload].outmode]) != 0)
&& (!!((reg_class_contents[(int) rld[output_reload].class])[(((((((note)->fld[0]).rtx))->fld[0]).rtuint)) / ((unsigned) (8 * 8))] & (((HARD_REG_ELT_TYPE) (1)) << ((((((((note)->fld[0]).rtx))->fld[0]).rtuint)) % ((unsigned) (8 * 8))))))
&& (((! (! (target_flags & 0x10000))) ? ((((((((note)->fld[0]).rtx))->fld[0]).rtuint)) < 32 || (((((((note)->fld[0]).rtx))->fld[0]).rtuint)) == 101 ? ((mode_size[(int) (rld[output_reload].outmode)]) + ((! (! (target_flags & 0x10000))) ? 8 : 4) - 1) / ((! (! (target_flags & 0x10000))) ? 8 : 4) : ((mode_size[(int) (rld[output_reload].outmode)]) + 3) / 4) : (((mode_size[(int) (rld[output_reload].outmode)]) + ((! (! (target_flags & 0x10000))) ? 8 : 4) - 1) / ((! (! (target_flags & 0x10000))) ? 8 : 4)))
<= ((! (! (target_flags & 0x10000))) ? ((((((((note)->fld[0]).rtx))->fld[0]).rtuint)) < 32 || (((((((note)->fld[0]).rtx))->fld[0]).rtuint)) == 101 ? ((mode_size[(int) (((enum machine_mode) ((((note)->fld[0]).rtx))->mode))]) + ((! (! (target_flags & 0x10000))) ? 8 : 4) - 1) / ((! (! (target_flags & 0x10000))) ? 8 : 4) : ((mode_size[(int) (((enum machine_mode) ((((note)->fld[0]).rtx))->mode))]) + 3) / 4) : (((mode_size[(int) (((enum machine_mode) ((((note)->fld[0]).rtx))->mode))]) + ((! (! (target_flags & 0x10000))) ? 8 : 4) - 1) / ((! (! (target_flags & 0x10000))) ? 8 : 4))))
&& ((secondary_out = rld[output_reload].secondary_out_reload) == -1
|| (! ((!!((reg_class_contents[(int) rld[secondary_out].class])[(((((((note)->fld[0]).rtx))->fld[0]).rtuint)) / ((unsigned) (8 * 8))] & (((HARD_REG_ELT_TYPE) (1)) << ((((((((note)->fld[0]).rtx))->fld[0]).rtuint)) % ((unsigned) (8 * 8)))))))
&& ((secondary_out = rld[secondary_out].secondary_out_reload) == -1
|| ! ((!!((reg_class_contents[(int) rld[secondary_out].class])[(((((((note)->fld[0]).rtx))->fld[0]).rtuint)) / ((unsigned) (8 * 8))] & (((HARD_REG_ELT_TYPE) (1)) << ((((((((note)->fld[0]).rtx))->fld[0]).rtuint)) % ((unsigned) (8 * 8))))))))))
&& ! fixed_regs[((((((note)->fld[0]).rtx))->fld[0]).rtuint)])
{
rld[output_reload].reg_rtx
= gen_rtx_REG (rld[output_reload].outmode,
((((((note)->fld[0]).rtx))->fld[0]).rtuint));
return;
}
}
# 1910 "/opt/local/src/gcc-3.3.3/gcc/reload.c"
static rtx
find_dummy_reload (real_in, real_out, inloc, outloc,
inmode, outmode, class, for_real, earlyclobber)
rtx real_in, real_out;
rtx *inloc, *outloc;
enum machine_mode inmode, outmode;
enum reg_class class;
int for_real;
int earlyclobber;
{
rtx in = real_in;
rtx out = real_out;
int in_offset = 0;
int out_offset = 0;
rtx value = 0;
if ((mode_size[(int) (outmode)]) != (mode_size[(int) (inmode)])
&& ((mode_size[(int) (outmode)]) > ((! (! (target_flags & 0x10000))) ? 8 : 4)
|| (mode_size[(int) (inmode)]) > ((! (! (target_flags & 0x10000))) ? 8 : 4)))
return 0;
while (((enum rtx_code) (out)->code) == SUBREG)
{
if (((enum rtx_code) ((((out)->fld[0]).rtx))->code) == REG
&& ((((((out)->fld[0]).rtx))->fld[0]).rtuint) < 102)
out_offset += subreg_regno_offset (((((((out)->fld[0]).rtx))->fld[0]).rtuint),
((enum machine_mode) ((((out)->fld[0]).rtx))->mode),
(((out)->fld[1]).rtuint),
((enum machine_mode) (out)->mode));
out = (((out)->fld[0]).rtx);
}
while (((enum rtx_code) (in)->code) == SUBREG)
{
if (((enum rtx_code) ((((in)->fld[0]).rtx))->code) == REG
&& ((((((in)->fld[0]).rtx))->fld[0]).rtuint) < 102)
in_offset += subreg_regno_offset (((((((in)->fld[0]).rtx))->fld[0]).rtuint),
((enum machine_mode) ((((in)->fld[0]).rtx))->mode),
(((in)->fld[1]).rtuint),
((enum machine_mode) (in)->mode));
in = (((in)->fld[0]).rtx);
}
class = ((((enum rtx_code) (in)->code) == LABEL_REF || ((enum rtx_code) (in)->code) == SYMBOL_REF || ((enum rtx_code) (in)->code) == CONST_INT || ((enum rtx_code) (in)->code) == CONST_DOUBLE || ((enum rtx_code) (in)->code) == CONST || ((enum rtx_code) (in)->code) == HIGH || ((enum rtx_code) (in)->code) == CONST_VECTOR || ((enum rtx_code) (in)->code) == CONSTANT_P_RTX) ? ((((class) == FP_REGS || (class) == EXTRA_FP_REGS) || (class) == GENERAL_OR_FP_REGS || (class) == GENERAL_OR_EXTRA_FP_REGS || ((mode_class[(int) (((enum machine_mode) (in)->mode))]) == MODE_FLOAT && ! (target_flags & 1)) || (((enum machine_mode) (in)->mode) == TFmode && ! fp_zero_operand (in, TFmode))) ? NO_REGS : (!((class) == FP_REGS || (class) == EXTRA_FP_REGS) && (mode_class[(int) (((enum machine_mode) (in)->mode))]) == MODE_INT) ? GENERAL_REGS : (class)) : (class));
if (((enum rtx_code) (out)->code) == REG
&& (((out)->fld[0]).rtuint) < 102)
{
unsigned int regno = (((out)->fld[0]).rtuint) + out_offset;
unsigned int nwords = ((! (! (target_flags & 0x10000))) ? ((regno) < 32 || (regno) == 101 ? ((mode_size[(int) (outmode)]) + ((! (! (target_flags & 0x10000))) ? 8 : 4) - 1) / ((! (! (target_flags & 0x10000))) ? 8 : 4) : ((mode_size[(int) (outmode)]) + 3) / 4) : (((mode_size[(int) (outmode)]) + ((! (! (target_flags & 0x10000))) ? 8 : 4) - 1) / ((! (! (target_flags & 0x10000))) ? 8 : 4)));
rtx saved_rtx;
# 1979 "/opt/local/src/gcc-3.3.3/gcc/reload.c"
saved_rtx = *inloc;
*inloc = (const_int_rtx[64]);
if (regno < 102
&& ((hard_regno_mode_classes[regno] & sparc_mode_class[outmode]) != 0)
&& ! refers_to_regno_for_reload_p (regno, regno + nwords,
(((this_insn)->fld[5]).rtx), outloc))
{
unsigned int i;
for (i = 0; i < nwords; i++)
if (! (!!((reg_class_contents[(int) class])[(regno + i) / ((unsigned) (8 * 8))] & (((HARD_REG_ELT_TYPE) (1)) << ((regno + i) % ((unsigned) (8 * 8)))))))
break;
if (i == nwords)
{
if (((enum rtx_code) (real_out)->code) == REG)
value = real_out;
else
value = gen_rtx_REG (outmode, regno);
}
}
*inloc = saved_rtx;
}
if (hard_regs_live_known
&& ((enum rtx_code) (in)->code) == REG
&& (((in)->fld[0]).rtuint) < 102
&& (value == 0
|| find_reg_note (this_insn, REG_UNUSED, real_out))
&& find_reg_note (this_insn, REG_DEAD, real_in)
&& !fixed_regs[(((in)->fld[0]).rtuint)]
&& ((hard_regno_mode_classes[(((in)->fld[0]).rtuint)] & sparc_mode_class[(((enum machine_mode) (out)->mode) != VOIDmode ? ((enum machine_mode) (out)->mode) : outmode)]) != 0))
{
unsigned int regno = (((in)->fld[0]).rtuint) + in_offset;
unsigned int nwords = ((! (! (target_flags & 0x10000))) ? ((regno) < 32 || (regno) == 101 ? ((mode_size[(int) (inmode)]) + ((! (! (target_flags & 0x10000))) ? 8 : 4) - 1) / ((! (! (target_flags & 0x10000))) ? 8 : 4) : ((mode_size[(int) (inmode)]) + 3) / 4) : (((mode_size[(int) (inmode)]) + ((! (! (target_flags & 0x10000))) ? 8 : 4) - 1) / ((! (! (target_flags & 0x10000))) ? 8 : 4)));
if (! refers_to_regno_for_reload_p (regno, regno + nwords, out, (rtx*) 0)
&& ! hard_reg_set_here_p (regno, regno + nwords,
(((this_insn)->fld[5]).rtx))
&& (! earlyclobber
|| ! refers_to_regno_for_reload_p (regno, regno + nwords,
(((this_insn)->fld[5]).rtx), inloc)))
{
unsigned int i;
for (i = 0; i < nwords; i++)
if (! (!!((reg_class_contents[(int) class])[(regno + i) / ((unsigned) (8 * 8))] & (((HARD_REG_ELT_TYPE) (1)) << ((regno + i) % ((unsigned) (8 * 8)))))))
break;
if (i == nwords)
{
if (for_real >= 0 && value == real_out)
rld[for_real].out = 0;
if (((enum rtx_code) (real_in)->code) == REG)
value = real_in;
else
value = gen_rtx_REG (inmode, regno);
}
}
}
return value;
}
int
earlyclobber_operand_p (x)
rtx x;
{
int i;
for (i = 0; i < n_earlyclobbers; i++)
if (reload_earlyclobbers[i] == x)
return 1;
return 0;
}
static int
hard_reg_set_here_p (beg_regno, end_regno, x)
unsigned int beg_regno, end_regno;
rtx x;
{
if (((enum rtx_code) (x)->code) == SET || ((enum rtx_code) (x)->code) == CLOBBER)
{
rtx op0 = (((x)->fld[0]).rtx);
while (((enum rtx_code) (op0)->code) == SUBREG)
op0 = (((op0)->fld[0]).rtx);
if (((enum rtx_code) (op0)->code) == REG)
{
unsigned int r = (((op0)->fld[0]).rtuint);
if (r < end_regno
&& r + ((! (! (target_flags & 0x10000))) ? ((r) < 32 || (r) == 101 ? ((mode_size[(int) (((enum machine_mode) (op0)->mode))]) + ((! (! (target_flags & 0x10000))) ? 8 : 4) - 1) / ((! (! (target_flags & 0x10000))) ? 8 : 4) : ((mode_size[(int) (((enum machine_mode) (op0)->mode))]) + 3) / 4) : (((mode_size[(int) (((enum machine_mode) (op0)->mode))]) + ((! (! (target_flags & 0x10000))) ? 8 : 4) - 1) / ((! (! (target_flags & 0x10000))) ? 8 : 4))) > beg_regno)
return 1;
}
}
else if (((enum rtx_code) (x)->code) == PARALLEL)
{
int i = (((((x)->fld[0]).rtvec))->num_elem) - 1;
for (; i >= 0; i--)
if (hard_reg_set_here_p (beg_regno, end_regno, (((((x)->fld[0]).rtvec))->elem[i])))
return 1;
}
return 0;
}
int
strict_memory_address_p (mode, addr)
enum machine_mode mode __attribute__ ((__unused__));
rtx addr;
{
--
Summary: Fail to bootstrap gcc-3.3.3 on an old Sparcstation 10
Product: gcc
Version: 3.3
Status: UNCONFIRMED
Severity: critical
Priority: P2
Component: bootstrap
AssignedTo: unassigned at gcc dot gnu dot org
ReportedBy: hk at simulina dot se
CC: gcc-bugs at gcc dot gnu dot org
GCC build triplet: sparc-sun-solaris2.9
GCC host triplet: sparc-sun-solaris2.9
GCC target triplet: sparc-sun-solaris2.9
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=14162
^ permalink raw reply [flat|nested] 2+ messages in thread
* [Bug bootstrap/14162] Fail to bootstrap gcc-3.3.3 on an old Sparcstation 10
2004-02-16 16:30 [Bug bootstrap/14162] New: Fail to bootstrap gcc-3.3.3 on an old Sparcstation 10 gcc-bugzilla at gcc dot gnu dot org
@ 2004-02-16 16:36 ` pinskia at gcc dot gnu dot org
0 siblings, 0 replies; 2+ messages in thread
From: pinskia at gcc dot gnu dot org @ 2004-02-16 16:36 UTC (permalink / raw)
To: gcc-bugs
------- Additional Comments From pinskia at gcc dot gnu dot org 2004-02-16 16:36 -------
Not a bug in GCC, this looks like a hardware problem.
--
What |Removed |Added
----------------------------------------------------------------------------
Status|UNCONFIRMED |RESOLVED
Resolution| |INVALID
Version|3.3 |3.3.3
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=14162
^ permalink raw reply [flat|nested] 2+ messages in thread
end of thread, other threads:[~2004-02-16 16:36 UTC | newest]
Thread overview: 2+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2004-02-16 16:30 [Bug bootstrap/14162] New: Fail to bootstrap gcc-3.3.3 on an old Sparcstation 10 gcc-bugzilla at gcc dot gnu dot org
2004-02-16 16:36 ` [Bug bootstrap/14162] " pinskia at gcc dot gnu dot org
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).