From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 28914 invoked by alias); 19 Aug 2002 20:56:01 -0000 Mailing-List: contact gcc-prs-help@gcc.gnu.org; run by ezmlm Precedence: bulk List-Archive: List-Post: List-Help: Sender: gcc-prs-owner@gcc.gnu.org Received: (qmail 28895 invoked by uid 71); 19 Aug 2002 20:56:01 -0000 Resent-Date: 19 Aug 2002 20:56:01 -0000 Resent-Message-ID: <20020819205601.28894.qmail@sources.redhat.com> Resent-From: gcc-gnats@gcc.gnu.org (GNATS Filer) Resent-To: nobody@gcc.gnu.org Resent-Cc: gcc-prs@gcc.gnu.org, gcc-bugs@gcc.gnu.org Resent-Reply-To: gcc-gnats@gcc.gnu.org, Johan Bengtsson Received: (qmail 23412 invoked from network); 19 Aug 2002 20:46:43 -0000 Received: from unknown (HELO meryl.it.uu.se) (130.238.12.42) by sources.redhat.com with SMTP; 19 Aug 2002 20:46:43 -0000 Received: from Dumbo.it.uu.se (dumbo.it.uu.se [130.238.8.114]) by meryl.it.uu.se (8.8.5/8.8.5) with ESMTP id WAA08971; Mon, 19 Aug 2002 22:46:42 +0200 (MET DST) Received: from Dumbo.it.uu.se (Dumbo [127.0.0.1]) by Dumbo.it.uu.se (8.12.3/8.12.3/Dumbo) with ESMTP id g7JKkeNL032126 (version=TLSv1/SSLv3 cipher=EDH-RSA-DES-CBC3-SHA bits=168 verify=FAIL); Mon, 19 Aug 2002 22:46:41 +0200 Received: (from johanb@localhost) by Dumbo.it.uu.se (8.12.3/8.12.3/Debian -4) id g7JKkdne032122; Mon, 19 Aug 2002 22:46:39 +0200 Message-Id: <15713.22831.58788.925020@veda.it.uu.se> Date: Mon, 19 Aug 2002 14:06:00 -0000 From: Johan Bengtsson To: gcc-gnats@gcc.gnu.org X-Send-Pr-Version: 3.113 Subject: bootstrap/7637: MIPS cross compiler: ICE during bootstrap X-SW-Source: 2002-08/txt/msg00385.txt.bz2 List-Id: >Number: 7637 >Category: bootstrap >Synopsis: MIPS cross compiler: ICE during bootstrap >Confidential: no >Severity: serious >Priority: medium >Responsible: unassigned >State: open >Class: ice-on-legal-code >Submitter-Id: net >Arrival-Date: Mon Aug 19 13:56:01 PDT 2002 >Closed-Date: >Last-Modified: >Originator: Johan Bengtsson >Release: 3.2 >Organization: >Environment: Linux Toker 2.4.19-xfs #3 Wed Aug 14 16:30:54 CEST 2002 i686 unknown unknown GNU/Linux Architecture: i686 host: i686-pc-linux-gnu build: i686-pc-linux-gnu target: mips-idt-ecoff configured with: ../configure --with-gcc-version-trigger=/home/toker/johanb/jobb/DSYS-DV-HT02/devel/src/gcc-3.2/gcc/version.c --host=i686-pc-linux-gnu --target=mips-idt-ecoff --with-gnu-as --with-gnu-ld --enable-languages=c --prefix=/home/toker/johanb/jobb/DSYS-DV-HT02/devel --program-prefix=mips-idt-ecoff- --disable-shared --disable-threads --norecursion >Description: The cross compiler being built reports an ICE when compiling target-specific libgcc2 if [ -f stmp-dirs ]; then true; else touch stmp-dirs; fi /home/toker/johanb/jobb/DSYS-DV-HT02/devel/src/gcc-3.2/objs/gcc/xgcc -B/home/toker/johanb/jobb/DSYS-DV-HT02/devel/src/gcc-3.2/objs/gcc/ -B/home/toker/johanb/jobb/DSYS-DV-HT02/devel/mips-idt-ecoff/bin/ -B/home/toker/johanb/jobb/DSYS-DV-HT02/devel/mips-idt-ecoff/lib/ -isystem /home/toker/johanb/jobb/DSYS-DV-HT02/devel/mips-idt-ecoff/include -O2 -DIN_GCC -DCROSS_COMPILE -W -Wall -Wwrite-strings -Wstrict-prototypes -Wmissing-prototypes -isystem ./include -G 0 -g -DIN_LIBGCC2 -D__GCC_FLOAT_NOT_NEEDED -Dinhibit_libc -I. -I. -I../../gcc -I../../gcc/. -I../../gcc/config -I../../gcc/../include -DL_divdi3 -c ../../gcc/libgcc2.c -fexceptions -fnon-call-exceptions -o libgcc/./_divdi3.o ../../gcc/libgcc2.c:64: Internal compiler error in assemble_integer, at varasm.c:2012 Please submit a full bug report, with preprocessed source if appropriate. See for instructions. make[2]: *** [libgcc/./_divdi3.o] Error 1 make[2]: Leaving directory `/home/toker/johanb/jobb/DSYS-DV-HT02/devel/src/gcc-3.2/objs/gcc' make[1]: *** [stmp-multilib] Error 2 make[1]: Leaving directory `/home/toker/johanb/jobb/DSYS-DV-HT02/devel/src/gcc-3.2/objs/gcc' make: *** [all-gcc] Error 2 >How-To-Repeat: # 1 "../../gcc/libgcc2.c" # 1 "" # 1 "" # 1 "../../gcc/libgcc2.c" # 36 "../../gcc/libgcc2.c" # 1 "tconfig.h" 1 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 "../../include/ansidecl.h" 1 # 15 "tconfig.h" 2 # 1 "../../gcc/config/gofast.h" 1 # 16 "tconfig.h" 2 # 1 "../../gcc/config/mips/ecoff.h" 1 # 25 "../../gcc/config/mips/ecoff.h" # 1 "../../gcc/config/mips/mips.h" 1 # 29 "../../gcc/config/mips/mips.h" extern char *asm_file_name; extern char call_used_regs[]; extern int may_call_alloca; extern char **save_argv; extern int target_flags; enum cmp_type { CMP_SI, CMP_DI, CMP_SF, CMP_DF, CMP_MAX }; enum delay_type { DELAY_NONE, DELAY_LOAD, DELAY_HILO, DELAY_FCMP }; enum processor_type { PROCESSOR_DEFAULT, PROCESSOR_R3000, PROCESSOR_R3900, PROCESSOR_R6000, PROCESSOR_R4000, PROCESSOR_R4100, PROCESSOR_R4300, PROCESSOR_R4600, PROCESSOR_R4650, PROCESSOR_R5000, PROCESSOR_R8000, PROCESSOR_R4KC, PROCESSOR_R5KC, PROCESSOR_R20KC }; # 104 "../../gcc/config/mips/mips.h" enum mips_abicalls_type { MIPS_ABICALLS_NO, MIPS_ABICALLS_YES }; enum block_move_type { BLOCK_MOVE_NORMAL, BLOCK_MOVE_NOT_LAST, BLOCK_MOVE_LAST }; extern char mips_reg_names[][8]; extern char mips_print_operand_punct[256]; extern const char *current_function_file; extern int num_source_filenames; extern int inside_function; extern int ignore_line_number; extern int file_in_function_warning; extern int sdb_label_count; extern int sdb_begin_function_line; extern int mips_section_threshold; extern int g_switch_value; extern int g_switch_set; extern int sym_lineno; extern int set_noreorder; extern int set_nomacro; extern int set_noat; extern int set_volatile; extern int mips_branch_likely; extern int mips_dbx_regno[]; extern struct rtx_def *branch_cmp[2]; extern enum cmp_type branch_type; extern enum processor_type mips_arch; extern enum processor_type mips_tune; extern enum mips_abicalls_type mips_abicalls; extern int mips_isa; extern int mips16; extern int mips16_hard_float; extern int mips_entry; extern const char *mips_cpu_string; extern const char *mips_arch_string; extern const char *mips_tune_string; extern const char *mips_isa_string; extern const char *mips_abi_string; extern const char *mips_entry_string; extern const char *mips_no_mips16_string; extern const char *mips_explicit_type_size_string; extern const char *mips_cache_flush_func; extern int mips_split_addresses; extern int dslots_load_total; extern int dslots_load_filled; extern int dslots_jump_total; extern int dslots_jump_filled; extern int dslots_number_nops; extern int num_refs[3]; extern struct rtx_def *mips_load_reg; extern struct rtx_def *mips_load_reg2; extern struct rtx_def *mips_load_reg3; extern struct rtx_def *mips_load_reg4; extern struct rtx_def *embedded_pic_fnaddr_rtx; extern int mips_string_length; extern struct rtx_def *mips16_gp_pseudo_rtx; extern void rdata_section (void); extern void sdata_section (void); extern void sbss_section (void); # 853 "../../gcc/config/mips/mips.h" extern int mips_abi; # 1915 "../../gcc/config/mips/mips.h" extern char mips_hard_regno_mode_ok[][76]; # 2039 "../../gcc/config/mips/mips.h" enum reg_class { NO_REGS, M16_NA_REGS, M16_REGS, T_REG, M16_T_REGS, GR_REGS, FP_REGS, HI_REG, LO_REG, HILO_REG, MD_REGS, HI_AND_GR_REGS, LO_AND_GR_REGS, HILO_AND_GR_REGS, HI_AND_FP_REGS, ST_REGS, ALL_REGS, LIM_REG_CLASSES }; # 2128 "../../gcc/config/mips/mips.h" extern const enum reg_class mips_regno_to_class[]; # 2198 "../../gcc/config/mips/mips.h" extern enum reg_class mips_char_to_class[256]; # 2439 "../../gcc/config/mips/mips.h" struct mips_frame_info { long total_size; long var_size; long args_size; long extra_size; int gp_reg_size; int fp_reg_size; long mask; long fmask; long gp_save_offset; long fp_save_offset; long gp_sp_offset; long fp_sp_offset; int initialized; int num_gp; int num_fp; long insns_len; }; extern struct mips_frame_info current_frame_info; # 2769 "../../gcc/config/mips/mips.h" typedef struct mips_args { int gp_reg_found; unsigned int arg_number; unsigned int arg_words; unsigned int fp_arg_words; int last_arg_fp; int fp_code; unsigned int num_adjusts; int prototype; struct rtx_def *adjust[4*2]; } CUMULATIVE_ARGS; # 26 "../../gcc/config/mips/ecoff.h" 2 # 17 "tconfig.h" 2 # 1 "../../gcc/config/dbx.h" 1 # 18 "tconfig.h" 2 # 1 "../../gcc/defaults.h" 1 # 19 "tconfig.h" 2 # 37 "../../gcc/libgcc2.c" 2 # 1 "../../gcc/tsystem.h" 1 # 37 "../../gcc/tsystem.h" # 1 "/home/toker/johanb/jobb/DSYS-DV-HT02/devel/src/gcc-3.2/objs/gcc/include/stddef.h" 1 3 4 # 147 "/home/toker/johanb/jobb/DSYS-DV-HT02/devel/src/gcc-3.2/objs/gcc/include/stddef.h" 3 4 typedef int ptrdiff_t; # 201 "/home/toker/johanb/jobb/DSYS-DV-HT02/devel/src/gcc-3.2/objs/gcc/include/stddef.h" 3 4 typedef unsigned int size_t; # 294 "/home/toker/johanb/jobb/DSYS-DV-HT02/devel/src/gcc-3.2/objs/gcc/include/stddef.h" 3 4 typedef int wchar_t; # 38 "../../gcc/tsystem.h" 2 extern void *malloc (size_t); extern void free (void *); extern int atexit (void (*)(void)); # 38 "../../gcc/libgcc2.c" 2 # 1 "../../gcc/machmode.h" 1 # 29 "../../gcc/machmode.h" enum machine_mode { # 1 "../../gcc/machmode.def" 1 # 74 "../../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, V16SFmode, BLKmode, # 159 "../../gcc/machmode.def" CCmode, # 31 "../../gcc/machmode.h" 2 MAX_MACHINE_MODE }; # 41 "../../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]; # 80 "../../gcc/machmode.h" extern const unsigned char mode_size[(int) MAX_MACHINE_MODE]; extern const unsigned char mode_unit_size[(int) MAX_MACHINE_MODE]; # 96 "../../gcc/machmode.h" extern const unsigned short mode_bitsize[(int) MAX_MACHINE_MODE]; # 123 "../../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; # 40 "../../gcc/libgcc2.c" 2 # 1 "../../gcc/libgcc2.h" 1 # 25 "../../gcc/libgcc2.h" extern int __gcc_bcmp (const unsigned char *, const unsigned char *, size_t); extern void __clear_cache (char *, char *); extern void __eprintf (const char *, const char *, unsigned int, const char *) __attribute__ ((__noreturn__)); 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 *); # 67 "../../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))); # 89 "../../gcc/libgcc2.h" typedef float SFtype __attribute__ ((mode (SF))); typedef float DFtype __attribute__ ((mode (DF))); # 122 "../../gcc/libgcc2.h" typedef int word_type __attribute__ ((mode (__word__))); # 214 "../../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); # 231 "../../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); # 284 "../../gcc/libgcc2.h" struct DWstruct {SItype high, low;}; # 293 "../../gcc/libgcc2.h" typedef union { struct DWstruct s; DItype ll; } DWunion; # 1 "../../gcc/longlong.h" 1 # 1465 "../../gcc/longlong.h" extern const UQItype __clz_tab[]; # 300 "../../gcc/libgcc2.h" 2 # 47 "../../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/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; # 559 "../../gcc/libgcc2.c" if (d1 == 0) { if (d0 > n1) { do { USItype __xr = (d0); USItype __a; if ((4 * 8) <= 32) { __a = __xr < ((USItype)1<<2*((4 * 8) / 4)) ? (__xr < ((USItype)1<<((4 * 8) / 4)) ? 0 : ((4 * 8) / 4)) : (__xr < ((USItype)1<<3*((4 * 8) / 4)) ? 2*((4 * 8) / 4) : 3*((4 * 8) / 4)); } else { for (__a = (4 * 8) - 8; __a > 0; __a -= 8) if (((__xr >> __a) & 0xff) != 0) break; } (bm) = (4 * 8) - (__clz_tab[__xr >> __a] + __a); } while (0); if (bm != 0) { d0 = d0 << bm; n1 = (n1 << bm) | (n0 >> ((4 * 8) - bm)); n0 = n0 << bm; } do { USItype __d1, __d0, __q1, __q0; USItype __r1, __r0, __m; __d1 = ((USItype) (d0) >> ((4 * 8) / 2)); __d0 = ((USItype) (d0) & (((USItype) 1 << ((4 * 8) / 2)) - 1)); __r1 = (n1) % __d1; __q1 = (n1) / __d1; __m = (USItype) __q1 * __d0; __r1 = __r1 * ((USItype) 1 << ((4 * 8) / 2)) | ((USItype) (n0) >> ((4 * 8) / 2)); if (__r1 < __m) { __q1--, __r1 += (d0); if (__r1 >= (d0)) if (__r1 < __m) __q1--, __r1 += (d0); } __r1 -= __m; __r0 = __r1 % __d1; __q0 = __r1 / __d1; __m = (USItype) __q0 * __d0; __r0 = __r0 * ((USItype) 1 << ((4 * 8) / 2)) | ((USItype) (n0) & (((USItype) 1 << ((4 * 8) / 2)) - 1)); if (__r0 < __m) { __q0--, __r0 += (d0); if (__r0 >= (d0)) if (__r0 < __m) __q0--, __r0 += (d0); } __r0 -= __m; (q0) = (USItype) __q1 * ((USItype) 1 << ((4 * 8) / 2)) | __q0; (n0) = __r0; } while (0); q1 = 0; } else { if (d0 == 0) d0 = 1 / d0; do { USItype __xr = (d0); USItype __a; if ((4 * 8) <= 32) { __a = __xr < ((USItype)1<<2*((4 * 8) / 4)) ? (__xr < ((USItype)1<<((4 * 8) / 4)) ? 0 : ((4 * 8) / 4)) : (__xr < ((USItype)1<<3*((4 * 8) / 4)) ? 2*((4 * 8) / 4) : 3*((4 * 8) / 4)); } else { for (__a = (4 * 8) - 8; __a > 0; __a -= 8) if (((__xr >> __a) & 0xff) != 0) break; } (bm) = (4 * 8) - (__clz_tab[__xr >> __a] + __a); } while (0); if (bm == 0) { n1 -= d0; q1 = 1; } else { b = (4 * 8) - bm; d0 = d0 << bm; n2 = n1 >> b; n1 = (n1 << bm) | (n0 >> b); n0 = n0 << bm; do { USItype __d1, __d0, __q1, __q0; USItype __r1, __r0, __m; __d1 = ((USItype) (d0) >> ((4 * 8) / 2)); __d0 = ((USItype) (d0) & (((USItype) 1 << ((4 * 8) / 2)) - 1)); __r1 = (n2) % __d1; __q1 = (n2) / __d1; __m = (USItype) __q1 * __d0; __r1 = __r1 * ((USItype) 1 << ((4 * 8) / 2)) | ((USItype) (n1) >> ((4 * 8) / 2)); if (__r1 < __m) { __q1--, __r1 += (d0); if (__r1 >= (d0)) if (__r1 < __m) __q1--, __r1 += (d0); } __r1 -= __m; __r0 = __r1 % __d1; __q0 = __r1 / __d1; __m = (USItype) __q0 * __d0; __r0 = __r0 * ((USItype) 1 << ((4 * 8) / 2)) | ((USItype) (n1) & (((USItype) 1 << ((4 * 8) / 2)) - 1)); if (__r0 < __m) { __q0--, __r0 += (d0); if (__r0 >= (d0)) if (__r0 < __m) __q0--, __r0 += (d0); } __r0 -= __m; (q1) = (USItype) __q1 * ((USItype) 1 << ((4 * 8) / 2)) | __q0; (n1) = __r0; } while (0); } do { USItype __d1, __d0, __q1, __q0; USItype __r1, __r0, __m; __d1 = ((USItype) (d0) >> ((4 * 8) / 2)); __d0 = ((USItype) (d0) & (((USItype) 1 << ((4 * 8) / 2)) - 1)); __r1 = (n1) % __d1; __q1 = (n1) / __d1; __m = (USItype) __q1 * __d0; __r1 = __r1 * ((USItype) 1 << ((4 * 8) / 2)) | ((USItype) (n0) >> ((4 * 8) / 2)); if (__r1 < __m) { __q1--, __r1 += (d0); if (__r1 >= (d0)) if (__r1 < __m) __q1--, __r1 += (d0); } __r1 -= __m; __r0 = __r1 % __d1; __q0 = __r1 / __d1; __m = (USItype) __q0 * __d0; __r0 = __r0 * ((USItype) 1 << ((4 * 8) / 2)) | ((USItype) (n0) & (((USItype) 1 << ((4 * 8) / 2)) - 1)); if (__r0 < __m) { __q0--, __r0 += (d0); if (__r0 >= (d0)) if (__r0 < __m) __q0--, __r0 += (d0); } __r0 -= __m; (q0) = (USItype) __q1 * ((USItype) 1 << ((4 * 8) / 2)) | __q0; (n0) = __r0; } while (0); } if (rp != 0) { rr.s.low = n0 >> bm; rr.s.high = 0; *rp = rr.ll; } } 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 __xr = (d1); USItype __a; if ((4 * 8) <= 32) { __a = __xr < ((USItype)1<<2*((4 * 8) / 4)) ? (__xr < ((USItype)1<<((4 * 8) / 4)) ? 0 : ((4 * 8) / 4)) : (__xr < ((USItype)1<<3*((4 * 8) / 4)) ? 2*((4 * 8) / 4) : 3*((4 * 8) / 4)); } else { for (__a = (4 * 8) - 8; __a > 0; __a -= 8) if (((__xr >> __a) & 0xff) != 0) break; } (bm) = (4 * 8) - (__clz_tab[__xr >> __a] + __a); } while (0); if (bm == 0) { # 665 "../../gcc/libgcc2.c" if (n1 > d1 || n0 >= d0) { q0 = 1; do { USItype __x; __x = (n0) - (d0); (n1) = (n1) - (d1) - (__x > (n0)); (n0) = __x; } while (0); } 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; do { USItype __d1, __d0, __q1, __q0; USItype __r1, __r0, __m; __d1 = ((USItype) (d1) >> ((4 * 8) / 2)); __d0 = ((USItype) (d1) & (((USItype) 1 << ((4 * 8) / 2)) - 1)); __r1 = (n2) % __d1; __q1 = (n2) / __d1; __m = (USItype) __q1 * __d0; __r1 = __r1 * ((USItype) 1 << ((4 * 8) / 2)) | ((USItype) (n1) >> ((4 * 8) / 2)); if (__r1 < __m) { __q1--, __r1 += (d1); if (__r1 >= (d1)) if (__r1 < __m) __q1--, __r1 += (d1); } __r1 -= __m; __r0 = __r1 % __d1; __q0 = __r1 / __d1; __m = (USItype) __q0 * __d0; __r0 = __r0 * ((USItype) 1 << ((4 * 8) / 2)) | ((USItype) (n1) & (((USItype) 1 << ((4 * 8) / 2)) - 1)); if (__r0 < __m) { __q0--, __r0 += (d1); if (__r0 >= (d1)) if (__r0 < __m) __q0--, __r0 += (d1); } __r0 -= __m; (q0) = (USItype) __q1 * ((USItype) 1 << ((4 * 8) / 2)) | __q0; (n1) = __r0; } while (0); __asm__ ("multu %2,%3" : "=l" ((USItype) (m0)), "=h" ((USItype) (m1)) : "d" ((USItype) (q0)), "d" ((USItype) (d0))); if (m1 > n1 || (m1 == n1 && m0 > n0)) { q0--; do { USItype __x; __x = (m0) - (d0); (m1) = (m1) - (d1) - (__x > (m0)); (m0) = __x; } while (0); } q1 = 0; if (rp != 0) { do { USItype __x; __x = (n0) - (m0); (n1) = (n1) - (m1) - (__x > (n0)); (n0) = __x; } while (0); 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: >Release-Note: >Audit-Trail: >Unformatted: