c/2011: ICE when compiling current cvs gcc

David Welch david.welch@st-edmund-hall.oxford.ac.uk
Sun Apr 1 00:00:00 GMT 2001


>Number:         2011
>Category:       c
>Synopsis:       ICE when compiling current cvs gcc
>Confidential:   no
>Severity:       critical
>Priority:       medium
>Responsible:    unassigned
>State:          open
>Class:          ice-on-legal-code
>Submitter-Id:   net
>Arrival-Date:   Sat Feb 17 10:36:00 PST 2001
>Closed-Date:
>Last-Modified:
>Originator:     David Welch
>Release:        2.97 20010216 (experimental)
>Organization:
>Environment:
System: Linux whitehall1-5.seh.ox.ac.uk 2.4.2-pre4-loop4-fix1 #1 Fri Feb 16 22:48:25 GMT 2001 i486 unknown
Architecture: i486

	
host: i486-pc-linux-gnu
build: i486-pc-linux-gnu
target: i386-unknown-mingw32
configured with: ../gcc/configure --prefix=/usr/mingw32-cvs-000216 --program-prefix=mingw32-pc- --target=mingw32-pc --enable-languages=c
>Description:
       ./xgcc -B./ -B/usr/mingw32-cvs-000216/mingw32-pc/bin/ -isystem 
/usr/mingw32-cvs-000216/mingw32-pc/include -O2 
-I../../gcc/gcc/../winsup/include -I../../gcc/gcc/../winsup/cygwin/include 
-I../../gcc/gcc/../winsup/w32api/include -DCROSS_COMPILE -DIN_GCC    -W 
-Wall -Wwrite-strings -Wstrict-prototypes -Wmissing-prototypes
-isystem ./include   -g1  -DIN_LIBGCC2 -D__GCC_FLOAT_NOT_NEEDED 
-Dinhibit_libc -I. -I. -I../../gcc/gcc -I../../gcc/gcc/. 
-I../../gcc/gcc/config -I../../gcc/gcc/../include  -DL_divdi3 -c 
../../gcc/gcc/libgcc2.c -o libgcc/./_divdi3.o
 
>How-To-Repeat:
# 36 "../../gcc/gcc/libgcc2.c" # 1 "tconfig.h" 1


# 1 "../../gcc/gcc/gansidecl.h" 1
# 28 "../../gcc/gcc/gansidecl.h"
# 1 "../../gcc/include/ansidecl.h" 1
# 29 "../../gcc/gcc/gansidecl.h" 2
# 4 "tconfig.h" 2


# 1 "../../gcc/gcc/config/i386/xm-i386.h" 1
# 43 "../../gcc/gcc/config/i386/xm-i386.h"
# 1 "tm.h" 1


# 1 "../../gcc/gcc/gansidecl.h" 1
# 4 "tm.h" 2


# 1 "../../gcc/gcc/config/i386/mingw32.h" 1
# 27 "../../gcc/gcc/config/i386/mingw32.h"
# 1 "../../gcc/gcc/config/i386/cygwin.h" 1
# 31 "../../gcc/gcc/config/i386/cygwin.h"
# 1 "../../gcc/gcc/config/i386/gas.h" 1
# 24 "../../gcc/gcc/config/i386/gas.h"
# 1 "../../gcc/gcc/config/i386/i386.h" 1
# 53 "../../gcc/gcc/config/i386/i386.h"
struct processor_costs {
  int add;
  int lea;
  int shift_var;
  int shift_const;
  int mult_init;
  int mult_bit;
  int divide;
  int large_insn;
  int move_ratio;

  int movzbl_load;
  int int_load[3];


  int int_store[3];

  int fp_move;
  int fp_load[3];

  int fp_store[3];

  int mmx_move;
  int mmx_load[2];

  int mmx_store[2];

  int sse_move;
  int sse_load[3];

  int sse_store[3];

  int mmxsse_to_integer;

};

extern struct processor_costs *ix86_cost;



extern int target_flags;
# 189 "../../gcc/gcc/config/i386/i386.h"
extern const int x86_use_leave, x86_push_memory, x86_zero_extend_with_and;
extern const int x86_use_bit_test, x86_cmove, x86_deep_branch;
extern const int x86_unroll_strlen, x86_use_q_reg, x86_use_any_reg;
extern const int x86_double_with_add, x86_partial_reg_stall, x86_movx;
extern const int x86_use_loop, x86_use_fiop, x86_use_mov0;
extern const int x86_use_cltd, x86_read_modify_write;
extern const int x86_read_modify, x86_split_long_moves;
extern const int x86_promote_QImode, x86_single_stringop;
extern const int x86_himode_math, x86_qimode_math, x86_promote_qi_regs;
extern const int x86_promote_hi_regs, x86_integer_DFmode_moves;
extern const int x86_add_esp_4, x86_add_esp_8, x86_sub_esp_4, x86_sub_esp_8;
extern const int x86_partial_reg_dependency, x86_memory_mismatch_stall;
# 340 "../../gcc/gcc/config/i386/i386.h"
enum processor_type
{
  PROCESSOR_I386,
  PROCESSOR_I486,
  PROCESSOR_PENTIUM,
  PROCESSOR_PENTIUMPRO,
  PROCESSOR_K6,
  PROCESSOR_ATHLON,
  PROCESSOR_max
};

extern enum processor_type ix86_cpu;

extern int ix86_arch;
# 941 "../../gcc/gcc/config/i386/i386.h"
enum reg_class
{
  NO_REGS,
  AREG, DREG, CREG, BREG, SIREG, DIREG,
  AD_REGS,
  Q_REGS,
  NON_Q_REGS,
  INDEX_REGS,
  GENERAL_REGS,
  FP_TOP_REG, FP_SECOND_REG,
  FLOAT_REGS,
  SSE_REGS,
  MMX_REGS,
  FP_TOP_SSE_REGS,
  FP_SECOND_SSE_REGS,
  FLOAT_SSE_REGS,
  FLOAT_INT_REGS,
  INT_SSE_REGS,
  FLOAT_INT_SSE_REGS,
  ALL_REGS, LIM_REG_CLASSES
};
# 1334 "../../gcc/gcc/config/i386/i386.h"
typedef struct ix86_args {
  int words;
  int nregs;
  int regno;
  int sse_words;
  int sse_nregs;
  int sse_regno;
} CUMULATIVE_ARGS;
# 1780 "../../gcc/gcc/config/i386/i386.h"
enum ix86_builtins
{
  IX86_BUILTIN_ADDPS,
  IX86_BUILTIN_ADDSS,
  IX86_BUILTIN_DIVPS,
  IX86_BUILTIN_DIVSS,
  IX86_BUILTIN_MULPS,
  IX86_BUILTIN_MULSS,
  IX86_BUILTIN_SUBPS,
  IX86_BUILTIN_SUBSS,

  IX86_BUILTIN_CMPEQPS,
  IX86_BUILTIN_CMPLTPS,
  IX86_BUILTIN_CMPLEPS,
  IX86_BUILTIN_CMPGTPS,
  IX86_BUILTIN_CMPGEPS,
  IX86_BUILTIN_CMPNEQPS,
  IX86_BUILTIN_CMPNLTPS,
  IX86_BUILTIN_CMPNLEPS,
  IX86_BUILTIN_CMPNGTPS,
  IX86_BUILTIN_CMPNGEPS,
  IX86_BUILTIN_CMPORDPS,
  IX86_BUILTIN_CMPUNORDPS,
  IX86_BUILTIN_CMPNEPS,
  IX86_BUILTIN_CMPEQSS,
  IX86_BUILTIN_CMPLTSS,
  IX86_BUILTIN_CMPLESS,
  IX86_BUILTIN_CMPGTSS,
  IX86_BUILTIN_CMPGESS,
  IX86_BUILTIN_CMPNEQSS,
  IX86_BUILTIN_CMPNLTSS,
  IX86_BUILTIN_CMPNLESS,
  IX86_BUILTIN_CMPNGTSS,
  IX86_BUILTIN_CMPNGESS,
  IX86_BUILTIN_CMPORDSS,
  IX86_BUILTIN_CMPUNORDSS,
  IX86_BUILTIN_CMPNESS,

  IX86_BUILTIN_COMIEQSS,
  IX86_BUILTIN_COMILTSS,
  IX86_BUILTIN_COMILESS,
  IX86_BUILTIN_COMIGTSS,
  IX86_BUILTIN_COMIGESS,
  IX86_BUILTIN_COMINEQSS,
  IX86_BUILTIN_UCOMIEQSS,
  IX86_BUILTIN_UCOMILTSS,
  IX86_BUILTIN_UCOMILESS,
  IX86_BUILTIN_UCOMIGTSS,
  IX86_BUILTIN_UCOMIGESS,
  IX86_BUILTIN_UCOMINEQSS,

  IX86_BUILTIN_CVTPI2PS,
  IX86_BUILTIN_CVTPS2PI,
  IX86_BUILTIN_CVTSI2SS,
  IX86_BUILTIN_CVTSS2SI,
  IX86_BUILTIN_CVTTPS2PI,
  IX86_BUILTIN_CVTTSS2SI,
  IX86_BUILTIN_M_FROM_INT,
  IX86_BUILTIN_M_TO_INT,

  IX86_BUILTIN_MAXPS,
  IX86_BUILTIN_MAXSS,
  IX86_BUILTIN_MINPS,
  IX86_BUILTIN_MINSS,

  IX86_BUILTIN_LOADAPS,
  IX86_BUILTIN_LOADUPS,
  IX86_BUILTIN_STOREAPS,
  IX86_BUILTIN_STOREUPS,
  IX86_BUILTIN_LOADSS,
  IX86_BUILTIN_STORESS,
  IX86_BUILTIN_MOVSS,

  IX86_BUILTIN_MOVHLPS,
  IX86_BUILTIN_MOVLHPS,
  IX86_BUILTIN_LOADHPS,
  IX86_BUILTIN_LOADLPS,
  IX86_BUILTIN_STOREHPS,
  IX86_BUILTIN_STORELPS,

  IX86_BUILTIN_MASKMOVQ,
  IX86_BUILTIN_MOVMSKPS,
  IX86_BUILTIN_PMOVMSKB,

  IX86_BUILTIN_MOVNTPS,
  IX86_BUILTIN_MOVNTQ,

  IX86_BUILTIN_PACKSSWB,
  IX86_BUILTIN_PACKSSDW,
  IX86_BUILTIN_PACKUSWB,

  IX86_BUILTIN_PADDB,
  IX86_BUILTIN_PADDW,
  IX86_BUILTIN_PADDD,
  IX86_BUILTIN_PADDSB,
  IX86_BUILTIN_PADDSW,
  IX86_BUILTIN_PADDUSB,
  IX86_BUILTIN_PADDUSW,
  IX86_BUILTIN_PSUBB,
  IX86_BUILTIN_PSUBW,
  IX86_BUILTIN_PSUBD,
  IX86_BUILTIN_PSUBSB,
  IX86_BUILTIN_PSUBSW,
  IX86_BUILTIN_PSUBUSB,
  IX86_BUILTIN_PSUBUSW,

  IX86_BUILTIN_PAND,
  IX86_BUILTIN_PANDN,
  IX86_BUILTIN_POR,
  IX86_BUILTIN_PXOR,

  IX86_BUILTIN_PAVGB,
  IX86_BUILTIN_PAVGW,

  IX86_BUILTIN_PCMPEQB,
  IX86_BUILTIN_PCMPEQW,
  IX86_BUILTIN_PCMPEQD,
  IX86_BUILTIN_PCMPGTB,
  IX86_BUILTIN_PCMPGTW,
  IX86_BUILTIN_PCMPGTD,

  IX86_BUILTIN_PEXTRW,
  IX86_BUILTIN_PINSRW,

  IX86_BUILTIN_PMADDWD,

  IX86_BUILTIN_PMAXSW,
  IX86_BUILTIN_PMAXUB,
  IX86_BUILTIN_PMINSW,
  IX86_BUILTIN_PMINUB,

  IX86_BUILTIN_PMULHUW,
  IX86_BUILTIN_PMULHW,
  IX86_BUILTIN_PMULLW,

  IX86_BUILTIN_PSADBW,
  IX86_BUILTIN_PSHUFW,

  IX86_BUILTIN_PSLLW,
  IX86_BUILTIN_PSLLD,
  IX86_BUILTIN_PSLLQ,
  IX86_BUILTIN_PSRAW,
  IX86_BUILTIN_PSRAD,
  IX86_BUILTIN_PSRLW,
  IX86_BUILTIN_PSRLD,
  IX86_BUILTIN_PSRLQ,
  IX86_BUILTIN_PSLLWI,
  IX86_BUILTIN_PSLLDI,
  IX86_BUILTIN_PSLLQI,
  IX86_BUILTIN_PSRAWI,
  IX86_BUILTIN_PSRADI,
  IX86_BUILTIN_PSRLWI,
  IX86_BUILTIN_PSRLDI,
  IX86_BUILTIN_PSRLQI,

  IX86_BUILTIN_PUNPCKHBW,
  IX86_BUILTIN_PUNPCKHWD,
  IX86_BUILTIN_PUNPCKHDQ,
  IX86_BUILTIN_PUNPCKLBW,
  IX86_BUILTIN_PUNPCKLWD,
  IX86_BUILTIN_PUNPCKLDQ,

  IX86_BUILTIN_SHUFPS,

  IX86_BUILTIN_RCPPS,
  IX86_BUILTIN_RCPSS,
  IX86_BUILTIN_RSQRTPS,
  IX86_BUILTIN_RSQRTSS,
  IX86_BUILTIN_SQRTPS,
  IX86_BUILTIN_SQRTSS,

  IX86_BUILTIN_UNPCKHPS,
  IX86_BUILTIN_UNPCKLPS,

  IX86_BUILTIN_ANDPS,
  IX86_BUILTIN_ANDNPS,
  IX86_BUILTIN_ORPS,
  IX86_BUILTIN_XORPS,

  IX86_BUILTIN_EMMS,
  IX86_BUILTIN_LDMXCSR,
  IX86_BUILTIN_STMXCSR,
  IX86_BUILTIN_SFENCE,
  IX86_BUILTIN_PREFETCH,


  IX86_BUILTIN_SETPS1,
  IX86_BUILTIN_SETPS,
  IX86_BUILTIN_CLRPS,
  IX86_BUILTIN_SETRPS,
  IX86_BUILTIN_LOADPS1,
  IX86_BUILTIN_LOADRPS,
  IX86_BUILTIN_STOREPS1,
  IX86_BUILTIN_STORERPS,

  IX86_BUILTIN_MMX_ZERO,

  IX86_BUILTIN_MAX
};
# 2607 "../../gcc/gcc/config/i386/i386.h"
extern int const dbx_register_map[37];
extern int const svr4_dbx_register_map[37];
# 2883 "../../gcc/gcc/config/i386/i386.h"
extern const char *ix86_cpu_string;
extern const char *ix86_arch_string;
extern const char *ix86_regparm_string;
extern const char *ix86_align_loops_string;
extern const char *ix86_align_jumps_string;
extern const char *ix86_align_funcs_string;
extern const char *ix86_preferred_stack_boundary_string;
extern const char *ix86_branch_cost_string;
extern int ix86_regparm;
extern int ix86_align_loops;
extern int ix86_align_jumps;
extern int ix86_align_funcs;
extern int ix86_preferred_stack_boundary;
extern int ix86_branch_cost;
extern const char * const hi_reg_name[];
extern const char * const qi_reg_name[];
extern const char * const qi_high_reg_name[];
extern enum reg_class const regclass_map[];
extern struct rtx_def *ix86_compare_op0;
extern struct rtx_def *ix86_compare_op1;
# 25 "../../gcc/gcc/config/i386/gas.h" 2
# 47 "../../gcc/gcc/config/i386/gas.h"
# 1 "../../gcc/gcc/config/i386/bsd.h" 1
# 24 "../../gcc/gcc/config/i386/bsd.h"
# 1 "../../gcc/gcc/config/i386/unix.h" 1
# 25 "../../gcc/gcc/config/i386/bsd.h" 2
# 48 "../../gcc/gcc/config/i386/gas.h" 2
# 32 "../../gcc/gcc/config/i386/cygwin.h" 2
# 1 "../../gcc/gcc/config/dbxcoff.h" 1
# 33 "../../gcc/gcc/config/i386/cygwin.h" 2
# 175 "../../gcc/gcc/config/i386/cygwin.h"
union tree_node;





extern int i386_pe_valid_decl_attribute_p (union tree_node *, union tree_node *, union tree_node *, union tree_node *);
# 190 "../../gcc/gcc/config/i386/cygwin.h"
extern int i386_pe_valid_type_attribute_p (union tree_node *, union tree_node *, union tree_node *, union tree_node *);

extern union tree_node *i386_pe_merge_decl_attributes (union tree_node *, union tree_node *);


extern union tree_node * i386_pe_merge_decl_attributes (union tree_node *, union tree_node *);
# 324 "../../gcc/gcc/config/i386/cygwin.h"
extern void i386_pe_encode_section_info (union tree_node *);
# 416 "../../gcc/gcc/config/i386/cygwin.h"
extern void i386_pe_unique_section (union tree_node *, int);
# 547 "../../gcc/gcc/config/i386/cygwin.h"
extern void i386_pe_record_external_function (char *);

extern void i386_pe_record_exported_symbol (char *, int);
# 28 "../../gcc/gcc/config/i386/mingw32.h" 2
# 7 "tm.h" 2


# 1 "../../gcc/gcc/config/i386/crtdll.h" 1
# 10 "tm.h" 2


# 1 "../../gcc/gcc/defaults.h" 1
# 13 "tm.h" 2


# 1 "insn-codes.h" 1





enum insn_code {
  CODE_FOR_cmpqi_ext_3_insn = 11,
  CODE_FOR_x86_fnstsw_1 = 25,
  CODE_FOR_x86_sahf_1 = 26,
  CODE_FOR_popsi1 = 36,
  CODE_FOR_swapxf = 79,
  CODE_FOR_swaptf = 80,
  CODE_FOR_zero_extendhisi2_and = 81,
  CODE_FOR_zero_extendsidi2 = 89,
  CODE_FOR_extendsidi2 = 90,
  CODE_FOR_extendhisi2 = 91,
  CODE_FOR_extendqihi2 = 92,
  CODE_FOR_extendqisi2 = 93,
  CODE_FOR_truncdfsf2_3 = 108,
  CODE_FOR_truncdfsf2_sse_only = 109,
  CODE_FOR_fix_truncsfsi_sse = 120,
  CODE_FOR_fix_truncdfsi_sse = 121,
  CODE_FOR_x86_fnstcw_1 = 123,
  CODE_FOR_x86_fldcw_1 = 124,
  CODE_FOR_floathisf2 = 125,
  CODE_FOR_floatdisf2 = 128,
  CODE_FOR_floathidf2 = 129,
  CODE_FOR_floatdidf2 = 132,
  CODE_FOR_floathixf2 = 133,
  CODE_FOR_floathitf2 = 134,
  CODE_FOR_floatsixf2 = 135,
  CODE_FOR_floatsitf2 = 136,
  CODE_FOR_floatdixf2 = 137,
  CODE_FOR_floatditf2 = 138,
  CODE_FOR_adddi3 = 139,
  CODE_FOR_addqi3_cc = 142,
  CODE_FOR_addqi_ext_1 = 164,
  CODE_FOR_subdi3 = 166,
  CODE_FOR_subsi3_carry = 167,
  CODE_FOR_mulqi3 = 179,
  CODE_FOR_umulqihi3 = 180,
  CODE_FOR_mulqihi3 = 181,
  CODE_FOR_umulsidi3 = 182,
  CODE_FOR_mulsidi3 = 183,
  CODE_FOR_umulsi3_highpart = 184,
  CODE_FOR_smulsi3_highpart = 185,
  CODE_FOR_divqi3 = 186,
  CODE_FOR_udivqi3 = 187,
  CODE_FOR_divmodhi4 = 191,
  CODE_FOR_udivmodsi4 = 192,
  CODE_FOR_testsi_1 = 195,
  CODE_FOR_andqi_ext_0 = 210,
  CODE_FOR_ashldi3_1 = 275,
  CODE_FOR_x86_shld_1 = 277,
  CODE_FOR_ashrdi3_1 = 286,
  CODE_FOR_x86_shrd_1 = 288,
  CODE_FOR_ashrsi3_31 = 289,
  CODE_FOR_lshrdi3_1 = 302,
  CODE_FOR_setcc_2 = 329,
  CODE_FOR_jump = 342,
  CODE_FOR_indirect_jump = 343,
  CODE_FOR_tablejump = 344,
  CODE_FOR_doloop_end_internal = 346,
  CODE_FOR_blockage = 351,
  CODE_FOR_return_internal = 352,
  CODE_FOR_return_pop_internal = 353,
  CODE_FOR_return_indirect_internal = 354,
  CODE_FOR_nop = 355,
  CODE_FOR_prologue_set_got = 356,
  CODE_FOR_prologue_get_pc = 357,
  CODE_FOR_leave = 358,
  CODE_FOR_ffssi_1 = 359,
  CODE_FOR_sqrtsf2_1 = 390,
  CODE_FOR_sqrtsf2_1_sse_only = 391,
  CODE_FOR_sqrtsf2_i387 = 392,
  CODE_FOR_sqrtdf2_1 = 393,
  CODE_FOR_sqrtdf2_1_sse_only = 394,
  CODE_FOR_sqrtdf2_i387 = 395,
  CODE_FOR_sqrtxf2 = 397,
  CODE_FOR_sqrttf2 = 398,
  CODE_FOR_sindf2 = 403,
  CODE_FOR_sinsf2 = 404,
  CODE_FOR_sinxf2 = 406,
  CODE_FOR_sintf2 = 407,
  CODE_FOR_cosdf2 = 408,
  CODE_FOR_cossf2 = 409,
  CODE_FOR_cosxf2 = 411,
  CODE_FOR_costf2 = 412,
  CODE_FOR_cld = 413,
  CODE_FOR_strmovsi_1 = 414,
  CODE_FOR_strmovhi_1 = 415,
  CODE_FOR_strmovqi_1 = 416,
  CODE_FOR_rep_movsi = 417,
  CODE_FOR_rep_movqi = 418,
  CODE_FOR_strsetsi_1 = 419,
  CODE_FOR_strsethi_1 = 420,
  CODE_FOR_strsetqi_1 = 421,
  CODE_FOR_rep_stossi = 422,
  CODE_FOR_rep_stosqi = 423,
  CODE_FOR_cmpstrsi_nz_1 = 424,
  CODE_FOR_cmpstrsi_1 = 425,
  CODE_FOR_strlensi_1 = 426,
  CODE_FOR_x86_movsicc_0_m1 = 427,
  CODE_FOR_pro_epilogue_adjust_stack = 434,
  CODE_FOR_allocate_stack_worker = 435,
  CODE_FOR_trap = 440,
  CODE_FOR_movv4sf_internal = 442,
  CODE_FOR_movv4si_internal = 443,
  CODE_FOR_movv8qi_internal = 444,
  CODE_FOR_movv4hi_internal = 445,
  CODE_FOR_movv2si_internal = 446,
  CODE_FOR_movti_internal = 453,
  CODE_FOR_sse_movaps = 454,
  CODE_FOR_sse_movups = 455,
  CODE_FOR_sse_movmskps = 456,
  CODE_FOR_mmx_pmovmskb = 457,
  CODE_FOR_mmx_maskmovq = 458,
  CODE_FOR_sse_movntv4sf = 459,
  CODE_FOR_sse_movntdi = 460,
  CODE_FOR_sse_movhlps = 461,
  CODE_FOR_sse_movlhps = 462,
  CODE_FOR_sse_movhps = 463,
  CODE_FOR_sse_movlps = 464,
  CODE_FOR_sse_loadss = 465,
  CODE_FOR_sse_movss = 466,
  CODE_FOR_sse_storess = 467,
  CODE_FOR_sse_shufps = 468,
  CODE_FOR_addv4sf3 = 469,
  CODE_FOR_vmaddv4sf3 = 470,
  CODE_FOR_subv4sf3 = 471,
  CODE_FOR_vmsubv4sf3 = 472,
  CODE_FOR_mulv4sf3 = 473,
  CODE_FOR_vmmulv4sf3 = 474,
  CODE_FOR_divv4sf3 = 475,
  CODE_FOR_vmdivv4sf3 = 476,
  CODE_FOR_rcpv4sf2 = 477,
  CODE_FOR_vmrcpv4sf2 = 478,
  CODE_FOR_rsqrtv4sf2 = 479,
  CODE_FOR_vmrsqrtv4sf2 = 480,
  CODE_FOR_sqrtv4sf2 = 481,
  CODE_FOR_vmsqrtv4sf2 = 482,
  CODE_FOR_sse_andti3 = 483,
  CODE_FOR_sse_nandti3 = 484,
  CODE_FOR_sse_iorti3 = 485,
  CODE_FOR_sse_xorti3 = 486,
  CODE_FOR_sse_clrti = 487,
  CODE_FOR_maskcmpv4sf3 = 488,
  CODE_FOR_maskncmpv4sf3 = 489,
  CODE_FOR_vmmaskcmpv4sf3 = 490,
  CODE_FOR_vmmaskncmpv4sf3 = 491,
  CODE_FOR_sse_comi = 492,
  CODE_FOR_sse_ucomi = 493,
  CODE_FOR_sse_unpckhps = 494,
  CODE_FOR_sse_unpcklps = 495,
  CODE_FOR_smaxv4sf3 = 496,
  CODE_FOR_vmsmaxv4sf3 = 497,
  CODE_FOR_sminv4sf3 = 498,
  CODE_FOR_vmsminv4sf3 = 499,
  CODE_FOR_cvtpi2ps = 500,
  CODE_FOR_cvtps2pi = 501,
  CODE_FOR_cvttps2pi = 502,
  CODE_FOR_cvtsi2ss = 503,
  CODE_FOR_cvtss2si = 504,
  CODE_FOR_cvttss2si = 505,
  CODE_FOR_addv8qi3 = 506,
  CODE_FOR_addv4hi3 = 507,
  CODE_FOR_addv2si3 = 508,
  CODE_FOR_ssaddv8qi3 = 509,
  CODE_FOR_ssaddv4hi3 = 510,
  CODE_FOR_usaddv8qi3 = 511,
  CODE_FOR_usaddv4hi3 = 512,
  CODE_FOR_subv8qi3 = 513,
  CODE_FOR_subv4hi3 = 514,
  CODE_FOR_subv2si3 = 515,
  CODE_FOR_sssubv8qi3 = 516,
  CODE_FOR_sssubv4hi3 = 517,
  CODE_FOR_ussubv8qi3 = 518,
  CODE_FOR_ussubv4hi3 = 519,
  CODE_FOR_mulv4hi3 = 520,
  CODE_FOR_smulv4hi3_highpart = 521,
  CODE_FOR_umulv4hi3_highpart = 522,
  CODE_FOR_mmx_pmaddwd = 523,
  CODE_FOR_mmx_iordi3 = 524,
  CODE_FOR_mmx_xordi3 = 525,
  CODE_FOR_mmx_clrdi = 526,
  CODE_FOR_mmx_anddi3 = 527,
  CODE_FOR_mmx_nanddi3 = 528,
  CODE_FOR_mmx_uavgv8qi3 = 529,
  CODE_FOR_mmx_uavgv4hi3 = 530,
  CODE_FOR_mmx_psadbw = 531,
  CODE_FOR_mmx_pinsrw = 532,
  CODE_FOR_mmx_pextrw = 533,
  CODE_FOR_mmx_pshufw = 534,
  CODE_FOR_eqv8qi3 = 535,
  CODE_FOR_eqv4hi3 = 536,
  CODE_FOR_eqv2si3 = 537,
  CODE_FOR_gtv8qi3 = 538,
  CODE_FOR_gtv4hi3 = 539,
  CODE_FOR_gtv2si3 = 540,
  CODE_FOR_umaxv8qi3 = 541,
  CODE_FOR_smaxv4hi3 = 542,
  CODE_FOR_uminv8qi3 = 543,
  CODE_FOR_sminv4hi3 = 544,
  CODE_FOR_ashrv4hi3 = 545,
  CODE_FOR_ashrv2si3 = 546,
  CODE_FOR_lshrv4hi3 = 547,
  CODE_FOR_lshrv2si3 = 548,
  CODE_FOR_mmx_lshrdi3 = 549,
  CODE_FOR_ashlv4hi3 = 550,
  CODE_FOR_ashlv2si3 = 551,
  CODE_FOR_mmx_ashldi3 = 552,
  CODE_FOR_mmx_packsswb = 553,
  CODE_FOR_mmx_packssdw = 554,
  CODE_FOR_mmx_packuswb = 555,
  CODE_FOR_mmx_punpckhbw = 556,
  CODE_FOR_mmx_punpckhwd = 557,
  CODE_FOR_mmx_punpckhdq = 558,
  CODE_FOR_mmx_punpcklbw = 559,
  CODE_FOR_mmx_punpcklwd = 560,
  CODE_FOR_mmx_punpckldq = 561,
  CODE_FOR_emms = 562,
  CODE_FOR_ldmxcsr = 563,
  CODE_FOR_stmxcsr = 564,
  CODE_FOR_prefetch = 566,
  CODE_FOR_cmpdi = 567,
  CODE_FOR_cmpsi = 568,
  CODE_FOR_cmphi = 569,
  CODE_FOR_cmpqi = 570,
  CODE_FOR_cmpsi_1 = 571,
  CODE_FOR_cmpqi_ext_3 = 572,
  CODE_FOR_cmpxf = 573,
  CODE_FOR_cmptf = 574,
  CODE_FOR_cmpdf = 575,
  CODE_FOR_cmpsf = 576,
  CODE_FOR_movsi = 578,
  CODE_FOR_movhi = 579,
  CODE_FOR_movstricthi = 580,
  CODE_FOR_movqi = 581,
  CODE_FOR_reload_outqi = 582,
  CODE_FOR_movstrictqi = 583,
  CODE_FOR_movdi = 584,
  CODE_FOR_movsf = 587,
  CODE_FOR_movdf = 591,
  CODE_FOR_movxf = 596,
  CODE_FOR_movtf = 597,
  CODE_FOR_zero_extendhisi2 = 603,
  CODE_FOR_zero_extendqihi2 = 605,
  CODE_FOR_zero_extendqisi2 = 609,
  CODE_FOR_extendsfdf2 = 623,
  CODE_FOR_extendsfxf2 = 624,
  CODE_FOR_extendsftf2 = 625,
  CODE_FOR_extenddfxf2 = 626,
  CODE_FOR_extenddftf2 = 627,
  CODE_FOR_truncdfsf2 = 628,
  CODE_FOR_truncxfsf2 = 632,
  CODE_FOR_trunctfsf2 = 635,
  CODE_FOR_truncxfdf2 = 638,
  CODE_FOR_trunctfdf2 = 641,
  CODE_FOR_fix_truncxfdi2 = 644,
  CODE_FOR_fix_trunctfdi2 = 645,
  CODE_FOR_fix_truncdfdi2 = 646,
  CODE_FOR_fix_truncsfdi2 = 647,
  CODE_FOR_fix_truncxfsi2 = 649,
  CODE_FOR_fix_trunctfsi2 = 650,
  CODE_FOR_fix_truncdfsi2 = 651,
  CODE_FOR_fix_truncsfsi2 = 652,
  CODE_FOR_fix_truncxfhi2 = 654,
  CODE_FOR_fix_trunctfhi2 = 655,
  CODE_FOR_fix_truncdfhi2 = 656,
  CODE_FOR_fix_truncsfhi2 = 657,
  CODE_FOR_floatsisf2 = 660,
  CODE_FOR_floatsidf2 = 661,
  CODE_FOR_addsi3 = 664,
  CODE_FOR_addhi3 = 669,
  CODE_FOR_addqi3 = 670,
  CODE_FOR_addxf3 = 671,
  CODE_FOR_addtf3 = 672,
  CODE_FOR_adddf3 = 673,
  CODE_FOR_addsf3 = 674,
  CODE_FOR_subsi3 = 676,
  CODE_FOR_subhi3 = 677,
  CODE_FOR_subqi3 = 678,
  CODE_FOR_subxf3 = 679,
  CODE_FOR_subtf3 = 680,
  CODE_FOR_subdf3 = 681,
  CODE_FOR_subsf3 = 682,
  CODE_FOR_mulsi3 = 683,
  CODE_FOR_mulhi3 = 684,
  CODE_FOR_mulxf3 = 685,
  CODE_FOR_multf3 = 686,
  CODE_FOR_muldf3 = 687,
  CODE_FOR_mulsf3 = 688,
  CODE_FOR_divxf3 = 689,
  CODE_FOR_divtf3 = 690,
  CODE_FOR_divdf3 = 691,
  CODE_FOR_divsf3 = 692,
  CODE_FOR_divmodsi4 = 693,
  CODE_FOR_udivmodhi4 = 696,
  CODE_FOR_testsi_ccno_1 = 697,
  CODE_FOR_testqi_ccz_1 = 698,
  CODE_FOR_testqi_ext_ccno_0 = 699,
  CODE_FOR_andsi3 = 701,
  CODE_FOR_andhi3 = 705,
  CODE_FOR_andqi3 = 706,
  CODE_FOR_iorsi3 = 707,
  CODE_FOR_iorhi3 = 708,
  CODE_FOR_iorqi3 = 709,
  CODE_FOR_xorsi3 = 710,
  CODE_FOR_xorhi3 = 711,
  CODE_FOR_xorqi3 = 712,
  CODE_FOR_xorqi_cc_ext_1 = 713,
  CODE_FOR_negdi2 = 714,
  CODE_FOR_negsi2 = 716,
  CODE_FOR_neghi2 = 717,
  CODE_FOR_negqi2 = 718,
  CODE_FOR_negsf2 = 719,
  CODE_FOR_negdf2 = 723,
  CODE_FOR_negxf2 = 726,
  CODE_FOR_negtf2 = 727,
  CODE_FOR_abssf2 = 732,
  CODE_FOR_absdf2 = 736,
  CODE_FOR_absxf2 = 739,
  CODE_FOR_abstf2 = 740,
  CODE_FOR_one_cmplsi2 = 745,
  CODE_FOR_one_cmplhi2 = 747,
  CODE_FOR_one_cmplqi2 = 749,
  CODE_FOR_ashldi3 = 751,
  CODE_FOR_x86_shift_adj_1 = 754,
  CODE_FOR_x86_shift_adj_2 = 755,
  CODE_FOR_ashlsi3 = 756,
  CODE_FOR_ashlhi3 = 758,
  CODE_FOR_ashlqi3 = 759,
  CODE_FOR_ashrdi3 = 760,
  CODE_FOR_x86_shift_adj_3 = 763,
  CODE_FOR_ashrsi3 = 764,
  CODE_FOR_ashrhi3 = 765,
  CODE_FOR_ashrqi3 = 766,
  CODE_FOR_lshrdi3 = 767,
  CODE_FOR_lshrsi3 = 770,
  CODE_FOR_lshrhi3 = 771,
  CODE_FOR_lshrqi3 = 772,
  CODE_FOR_rotlsi3 = 773,
  CODE_FOR_rotlhi3 = 774,
  CODE_FOR_rotlqi3 = 775,
  CODE_FOR_rotrsi3 = 776,
  CODE_FOR_rotrhi3 = 777,
  CODE_FOR_rotrqi3 = 778,
  CODE_FOR_extv = 779,
  CODE_FOR_extzv = 780,
  CODE_FOR_insv = 781,
  CODE_FOR_seq = 782,
  CODE_FOR_sne = 783,
  CODE_FOR_sgt = 784,
  CODE_FOR_sgtu = 785,
  CODE_FOR_slt = 786,
  CODE_FOR_sltu = 787,
  CODE_FOR_sge = 788,
  CODE_FOR_sgeu = 789,
  CODE_FOR_sle = 790,
  CODE_FOR_sleu = 791,
  CODE_FOR_sunordered = 792,
  CODE_FOR_sordered = 793,
  CODE_FOR_suneq = 794,
  CODE_FOR_sunge = 795,
  CODE_FOR_sungt = 796,
  CODE_FOR_sunle = 797,
  CODE_FOR_sunlt = 798,
  CODE_FOR_sltgt = 799,
  CODE_FOR_beq = 800,
  CODE_FOR_bne = 801,
  CODE_FOR_bgt = 802,
  CODE_FOR_bgtu = 803,
  CODE_FOR_blt = 804,
  CODE_FOR_bltu = 805,
  CODE_FOR_bge = 806,
  CODE_FOR_bgeu = 807,
  CODE_FOR_ble = 808,
  CODE_FOR_bleu = 809,
  CODE_FOR_bunordered = 810,
  CODE_FOR_bordered = 811,
  CODE_FOR_buneq = 812,
  CODE_FOR_bunge = 813,
  CODE_FOR_bungt = 814,
  CODE_FOR_bunle = 815,
  CODE_FOR_bunlt = 816,
  CODE_FOR_bltgt = 817,
  CODE_FOR_casesi = 820,
  CODE_FOR_doloop_end = 821,
  CODE_FOR_call_pop = 824,
  CODE_FOR_call = 825,
  CODE_FOR_call_value_pop = 826,
  CODE_FOR_call_value = 827,
  CODE_FOR_untyped_call = 828,
  CODE_FOR_return = 829,
  CODE_FOR_prologue = 830,
  CODE_FOR_epilogue = 831,
  CODE_FOR_sibcall_epilogue = 832,
  CODE_FOR_ffssi2 = 833,
  CODE_FOR_sqrtsf2 = 836,
  CODE_FOR_sqrtdf2 = 837,
  CODE_FOR_movstrsi = 838,
  CODE_FOR_strmovsi = 839,
  CODE_FOR_strmovhi = 840,
  CODE_FOR_strmovqi = 841,
  CODE_FOR_clrstrsi = 842,
  CODE_FOR_strsetsi = 843,
  CODE_FOR_strsethi = 844,
  CODE_FOR_strsetqi = 845,
  CODE_FOR_cmpstrsi = 846,
  CODE_FOR_cmpintqi = 847,
  CODE_FOR_strlensi = 848,
  CODE_FOR_movsicc = 849,
  CODE_FOR_movhicc = 850,
  CODE_FOR_movsfcc = 851,
  CODE_FOR_movdfcc = 852,
  CODE_FOR_movxfcc = 854,
  CODE_FOR_movtfcc = 855,
  CODE_FOR_allocate_stack = 856,
  CODE_FOR_exception_receiver = 857,
  CODE_FOR_builtin_setjmp_receiver = 858,
  CODE_FOR_conditional_trap = 906,
  CODE_FOR_movti = 907,
  CODE_FOR_movv4sf = 908,
  CODE_FOR_movv4si = 909,
  CODE_FOR_movv2si = 910,
  CODE_FOR_movv4hi = 911,
  CODE_FOR_movv8qi = 912,
  CODE_FOR_sfence = 919,
  CODE_FOR_nothing = 920 };




struct rtx_def;
# 1 "../../gcc/gcc/machmode.h" 1
# 29 "../../gcc/gcc/machmode.h"
enum machine_mode {
# 1 "../../gcc/gcc/machmode.def" 1
# 67 "../../gcc/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,




V2QImode,
V2HImode,
V2SImode,
V2DImode,

V4QImode,
V4HImode,
V4SImode,
V4DImode,

V8QImode,
V8HImode,
V8SImode,
V8DImode,

V16QImode,

V2SFmode,
V2DFmode,

V4SFmode,
V4DFmode,

V8SFmode,
V8DFmode,



BLKmode,
# 148 "../../gcc/gcc/machmode.def"
CCmode,


CCGCmode, CCGOCmode, CCNOmode, CCZmode, CCFPmode, CCFPUmode,
# 31 "../../gcc/gcc/machmode.h" 2
MAX_MACHINE_MODE };
# 41 "../../gcc/gcc/machmode.h"
extern const char * const mode_name[];


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[];
# 80 "../../gcc/gcc/machmode.h"
extern const unsigned int mode_size[];




extern const unsigned int mode_unit_size[];
# 96 "../../gcc/gcc/machmode.h"
extern const unsigned int mode_bitsize[];
# 117 "../../gcc/gcc/machmode.h"
extern const unsigned char mode_wider_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[];





extern enum machine_mode byte_mode;
extern enum machine_mode word_mode;
extern enum machine_mode ptr_mode;
# 436 "insn-codes.h" 2

extern int const_int_1_operand (struct rtx_def *, enum machine_mode);
extern int symbolic_operand (struct rtx_def *, enum machine_mode);
extern int aligned_operand (struct rtx_def *, enum machine_mode);
extern int pic_symbolic_operand (struct rtx_def *, enum machine_mode);
extern int call_insn_operand (struct rtx_def *, enum machine_mode);
extern int constant_call_address_operand (struct rtx_def *, enum machine_mode);
extern int const0_operand (struct rtx_def *, enum machine_mode);
extern int const1_operand (struct rtx_def *, enum machine_mode);
extern int const248_operand (struct rtx_def *, enum machine_mode);
extern int incdec_operand (struct rtx_def *, enum machine_mode);
extern int mmx_reg_operand (struct rtx_def *, enum machine_mode);
extern int reg_no_sp_operand (struct rtx_def *, enum machine_mode);
extern int general_no_elim_operand (struct rtx_def *, enum machine_mode);
extern int nonmemory_no_elim_operand (struct rtx_def *, enum machine_mode);
extern int q_regs_operand (struct rtx_def *, enum machine_mode);
extern int non_q_regs_operand (struct rtx_def *, enum machine_mode);
extern int fcmov_comparison_operator (struct rtx_def *, enum machine_mode);
extern int sse_comparison_operator (struct rtx_def *, enum machine_mode);
extern int ix86_comparison_operator (struct rtx_def *, enum machine_mode);
extern int cmp_fp_expander_operand (struct rtx_def *, enum machine_mode);
extern int ext_register_operand (struct rtx_def *, enum machine_mode);
extern int binary_fp_operator (struct rtx_def *, enum machine_mode);
extern int mult_operator (struct rtx_def *, enum machine_mode);
extern int div_operator (struct rtx_def *, enum machine_mode);
extern int arith_or_logical_operator (struct rtx_def *, enum machine_mode);
extern int promotable_binary_operator (struct rtx_def *, enum machine_mode);
extern int memory_displacement_operand (struct rtx_def *, enum machine_mode);
extern int cmpsi_operand (struct rtx_def *, enum machine_mode);
extern int long_memory_operand (struct rtx_def *, enum machine_mode);
# 16 "tm.h" 2
# 44 "../../gcc/gcc/config/i386/xm-i386.h" 2
# 7 "tconfig.h" 2


# 1 "../../gcc/gcc/config/i386/xm-mingw32.h" 1
# 10 "tconfig.h" 2


# 1 "../../gcc/gcc/defaults.h" 1
# 13 "tconfig.h" 2
# 37 "../../gcc/gcc/libgcc2.c" 2
# 1 "../../gcc/gcc/tsystem.h" 1
# 37 "../../gcc/gcc/tsystem.h"
# 1 "/usr/local/cvs/gcc/gcc-obj/gcc/include/stddef.h" 1 3
# 147 "/usr/local/cvs/gcc/gcc-obj/gcc/include/stddef.h" 3
typedef int ptrdiff_t;
# 199 "/usr/local/cvs/gcc/gcc-obj/gcc/include/stddef.h" 3
typedef unsigned int size_t;
# 287 "/usr/local/cvs/gcc/gcc-obj/gcc/include/stddef.h" 3
typedef short unsigned int wchar_t;
# 38 "../../gcc/gcc/tsystem.h" 2




extern void *malloc (size_t);



extern void free (void *);



extern int atexit (void (*)(void));
# 38 "../../gcc/gcc/libgcc2.c" 2

# 1 "../../gcc/gcc/machmode.h" 1
# 40 "../../gcc/gcc/libgcc2.c" 2






# 1 "../../gcc/gcc/libgcc2.h" 1
# 25 "../../gcc/gcc/libgcc2.h"
typedef void (*__terminate_func_ptr)(void) __attribute__ ((__noreturn__));

extern int __gcc_bcmp (const unsigned char *, const unsigned char *, size_t);
extern void *__builtin_saveregs (void);
extern void __dummy (void);
extern void __clear_cache (char *, char *);
extern void __pure_virtual (void) __attribute__ ((__noreturn__));
extern void __terminate (void) __attribute__ ((__noreturn__));
extern __terminate_func_ptr __terminate_set_func (__terminate_func_ptr);
extern void __default_terminate (void) __attribute__ ((__noreturn__));
extern void *__throw_type_match (void *, void *, void *);
extern void __empty (void);
extern void *__get_eh_context (void);
extern void **__get_eh_info (void);
extern void ***__get_dynamic_handler_chain (void);
extern int __eh_rtime_match (void *);
extern void __unwinding_cleanup (void);
extern void __rethrow (void *);
extern void __throw (void);
extern void __sjthrow (void) __attribute__ ((__noreturn__));
extern void __sjpopnthrow (void) __attribute__ ((__noreturn__));
extern void __eprintf (const char *, const char *, unsigned int, const char *)
  __attribute__ ((__noreturn__));
extern void *__eh_alloc (size_t);
extern void __eh_free (void *);

struct bb;
extern void __bb_exit_func (void);
extern void __bb_init_func (struct bb *);
extern void __bb_fork_func (void);
extern void __bb_trace_func (void);
extern void __bb_trace_ret (void);
extern void __bb_init_trace_func (struct bb *, unsigned long);

struct exception_descriptor;
extern short int __get_eh_table_language (struct exception_descriptor *);
extern short int __get_eh_table_version (struct exception_descriptor *);
# 88 "../../gcc/gcc/libgcc2.h"
typedef int QItype __attribute__ ((mode (QI)));
typedef unsigned int UQItype __attribute__ ((mode (QI)));
typedef int HItype __attribute__ ((mode (HI)));
typedef unsigned int UHItype __attribute__ ((mode (HI)));


typedef int SItype __attribute__ ((mode (SI)));
typedef unsigned int USItype __attribute__ ((mode (SI)));


typedef int DItype __attribute__ ((mode (DI)));
typedef unsigned int UDItype __attribute__ ((mode (DI)));
# 110 "../../gcc/gcc/libgcc2.h"
typedef float SFtype __attribute__ ((mode (SF)));
typedef float DFtype __attribute__ ((mode (DF)));


typedef float XFtype __attribute__ ((mode (XF)));
# 143 "../../gcc/gcc/libgcc2.h"
typedef int word_type __attribute__ ((mode (__word__)));
# 235 "../../gcc/gcc/libgcc2.h"
extern DItype __muldi3 (DItype, DItype);
extern DItype __divdi3 (DItype, DItype);
extern UDItype __udivdi3 (UDItype, UDItype);
extern UDItype __umoddi3 (UDItype, UDItype);
extern DItype __moddi3 (DItype, DItype);
# 252 "../../gcc/gcc/libgcc2.h"
extern DItype __lshrdi3 (DItype, word_type);
extern DItype __ashldi3 (DItype, word_type);
extern DItype __ashrdi3 (DItype, word_type);
extern DItype __ffsdi2 (DItype);







extern word_type __cmpdi2 (DItype, DItype);
extern word_type __ucmpdi2 (DItype, DItype);

extern SItype __absvsi2 (SItype);
extern DItype __absvdi2 (DItype);
extern SItype __addvsi3 (SItype, SItype);
extern DItype __addvdi3 (DItype, DItype);
extern SItype __subvsi3 (SItype, SItype);
extern DItype __subvdi3 (DItype, DItype);
extern SItype __mulvsi3 (SItype, SItype);
extern DItype __mulvdi3 (DItype, DItype);
extern SItype __negvsi2 (SItype);
extern DItype __negvdi2 (DItype);


extern DItype __fixdfdi (DFtype);
extern DItype __fixsfdi (SFtype);
extern DFtype __floatdidf (DItype);
extern SFtype __floatdisf (DItype);
extern USItype __fixunsdfsi (DFtype);
extern USItype __fixunssfsi (SFtype);
extern DItype __fixunsdfdi (DFtype);
extern DItype __fixunssfdi (SFtype);


extern DItype __fixxfdi (XFtype);
extern DItype __fixunsxfdi (XFtype);
extern XFtype __floatdixf (DItype);
extern USItype __fixunsxfsi (XFtype);
# 307 "../../gcc/gcc/libgcc2.h"
  struct DWstruct {SItype low, high;};






typedef union
{
  struct DWstruct s;
  DItype ll;
} DWunion;

# 1 "../../gcc/gcc/longlong.h" 1
# 321 "../../gcc/gcc/libgcc2.h" 2
# 47 "../../gcc/gcc/libgcc2.c" 2



static __inline__

DItype
__negdi2 (DItype u)
{
  DWunion w;
  DWunion uu;

  uu.ll = u;

  w.s.low = -uu.s.low;
  w.s.high = -uu.s.high - ((USItype) w.s.low > 0);

  return w.ll;
}
# 504 "../../gcc/gcc/libgcc2.c"
static __inline__

UDItype
__udivmoddi4 (UDItype n, UDItype d, UDItype *rp)
{
  DWunion ww;
  DWunion nn, dd;
  DWunion rr;
  USItype d0, d1, n0, n1, n2;
  USItype q0, q1;
  USItype b, bm;

  nn.ll = n;
  dd.ll = d;

  d0 = dd.s.low;
  d1 = dd.s.high;
  n0 = nn.s.low;
  n1 = nn.s.high;


  if (d1 == 0)
    {
      if (d0 > n1)
        {


          __asm__ ("divl %4" : "=a" ((USItype) (q0)), "=d" ((USItype) (n0)) : "0" ((USItype) (n0)), "1" ((USItype) (n1)), "rm" ((USItype) (d0)));
          q1 = 0;


        }
      else
        {


          if (d0 == 0)
            d0 = 1 / d0;

          __asm__ ("divl %4" : "=a" ((USItype) (q1)), "=d" ((USItype) (n1)) : "0" ((USItype) (n1)), "1" ((USItype) (0)), "rm" ((USItype) (d0)));
          __asm__ ("divl %4" : "=a" ((USItype) (q0)), "=d" ((USItype) (n0)) : "0" ((USItype) (n0)), "1" ((USItype) (n1)), "rm" ((USItype) (d0)));


        }

      if (rp != 0)
        {
          rr.s.low = n0;
          rr.s.high = 0;
          *rp = rr.ll;
        }
    }
# 633 "../../gcc/gcc/libgcc2.c"
  else
    {
      if (d1 > n1)
        {


          q0 = 0;
          q1 = 0;


          if (rp != 0)
            {
              rr.s.low = n0;
              rr.s.high = n1;
              *rp = rr.ll;
            }
        }
      else
        {


          do { USItype __cbtmp; __asm__ ("bsrl %1,%0" : "=r" (__cbtmp) : "rm" ((USItype) (d1))); (bm) = __cbtmp ^ 31; } while (0);
          if (bm == 0)
            {
# 665 "../../gcc/gcc/libgcc2.c"
              if (n1 > d1 || n0 >= d0)
                {
                  q0 = 1;
                  __asm__ ("subl %5,%1\n\tsbbl %3,%0" : "=r" ((USItype) (n1)), "=&r" ((USItype) (n0)) : "0" ((USItype) (n1)), "g" ((USItype) (d1)), "1" ((USItype) (n0)), "g" ((USItype) (d0)));
                }
              else
                q0 = 0;

              q1 = 0;

              if (rp != 0)
                {
                  rr.s.low = n0;
                  rr.s.high = n1;
                  *rp = rr.ll;
                }
            }
          else
            {
              USItype m1, m0;


              b = (4 * 8) - bm;

              d1 = (d1 << bm) | (d0 >> b);
              d0 = d0 << bm;
              n2 = n1 >> b;
              n1 = (n1 << bm) | (n0 >> b);
              n0 = n0 << bm;

              __asm__ ("divl %4" : "=a" ((USItype) (q0)), "=d" ((USItype) (n1)) : "0" ((USItype) (n1)), "1" ((USItype) (n2)), "rm" ((USItype) (d1)));
              __asm__ ("mull %3" : "=a" ((USItype) (m0)), "=d" ((USItype) (m1)) : "%0" ((USItype) (q0)), "rm" ((USItype) (d0)));

              if (m1 > n1 || (m1 == n1 && m0 > n0))
                {
                  q0--;
                  __asm__ ("subl %5,%1\n\tsbbl %3,%0" : "=r" ((USItype) (m1)), "=&r" ((USItype) (m0)) : "0" ((USItype) (m1)), "g" ((USItype) (d1)), "1" ((USItype) (m0)), "g" ((USItype) (d0)));
                }

              q1 = 0;


              if (rp != 0)
                {
                  __asm__ ("subl %5,%1\n\tsbbl %3,%0" : "=r" ((USItype) (n1)), "=&r" ((USItype) (n0)) : "0" ((USItype) (n1)), "g" ((USItype) (m1)), "1" ((USItype) (n0)), "g" ((USItype) (m0)));
                  rr.s.low = (n1 << b) | (n0 >> bm);
                  rr.s.high = n1 >> bm;
                  *rp = rr.ll;
                }
            }
        }
    }

  ww.s.low = q0;
  ww.s.high = q1;
  return ww.ll;
}



DItype
__divdi3 (DItype u, DItype v)
{
  word_type c = 0;
  DWunion uu, vv;
  DItype w;

  uu.ll = u;
  vv.ll = v;

  if (uu.s.high < 0)
    c = ~c,
    uu.ll = __negdi2 (uu.ll);
  if (vv.s.high < 0)
    c = ~c,
    vv.ll = __negdi2 (vv.ll);

  w = __udivmoddi4 (uu.ll, vv.ll, (UDItype *) 0);
  if (c)
    w = __negdi2 (w);

  return w;
}
        
>Fix:
        Unknown
>Release-Note:
>Audit-Trail:
>Unformatted:



More information about the Gcc-prs mailing list