bootstrap/5109: irix6.5 bootstrap failure

David.Billinghurst@riotinto.com David.Billinghurst@riotinto.com
Thu Dec 13 22:17:00 GMT 2001


>Number:         5109
>Category:       bootstrap
>Synopsis:       irix6.5 bootstrap failure
>Confidential:   no
>Severity:       serious
>Priority:       medium
>Responsible:    unassigned
>State:          open
>Class:          ice-on-legal-code
>Submitter-Id:   net
>Arrival-Date:   Thu Dec 13 17:16:01 PST 2001
>Closed-Date:
>Last-Modified:
>Originator:     David Billinghurst
>Release:        gcc 3.1 2001-12-13 22:29 UTC
>Organization:
>Environment:
mips-sgi-irix6.5
>Description:
irix6.5 bootstrap fails.  It passes approx 24 hours previously

./xgcc -B./ -B/exd4/billingd/tmp/gcc-mainline/mips-sgi-irix6.5/bin/ -isystem /exd4/billingd/tmp/gcc-mainline/mips-sgi-irix6.5/include -isystem /exd4/billingd/tmp/gcc-mainline/mips-sgi-irix6.5/sys-include -O2 -DIN_GCC -W -Wall -Wwrite-strings -Wstrict-prototypes -Wmissing-prototypes -isystem ./include -g1 -DIN_LIBGCC2 -D__GCC_FLOAT_NOT_NEEDED -I. -I. -I/exd4/billingd/src/gcc-mainline/gcc -I/exd4/billingd/src/gcc-mainline/gcc/. -I/exd4/billingd/src/gcc-mainline/gcc/config -I/exd4/billingd/src/gcc-mainline/gcc/../include -DL_moddi3 -c /exd4/billingd/src/gcc-mainline/gcc/libgcc2.c -fexceptions -fnon-call-exceptions -o libgcc/./_moddi3.o -save-temps -verbose
xgcc: unrecognized option `-verbose'
/exd4/billingd/src/gcc-mainline/gcc/libgcc2.c: In function `__moddi3':
/exd4/billingd/src/gcc-mainline/gcc/libgcc2.c:772: internal error: Segmentation fault
Please submit a full bug report,
with preprocessed source if appropriate.



>How-To-Repeat:

>Fix:

>Release-Note:
>Audit-Trail:
>Unformatted:
----gnatsweb-attachment----
Content-Type: text/plain; name="libgcc2.i"
Content-Disposition: inline; filename="libgcc2.i"

# 1 "/exd4/billingd/src/gcc-mainline/gcc/libgcc2.c"
# 1 "<builtin>"
# 1 "<command line>"
# 1 "/exd4/billingd/src/gcc-mainline/gcc/libgcc2.c"
# 36 "/exd4/billingd/src/gcc-mainline/gcc/libgcc2.c"
# 1 "tconfig.h" 1

# 1 "/exd4/billingd/src/gcc-mainline/include/ansidecl.h" 1
# 3 "tconfig.h" 2
# 1 "/exd4/billingd/src/gcc-mainline/gcc/config/mips/iris6.h" 1
# 33 "/exd4/billingd/src/gcc-mainline/gcc/config/mips/iris6.h"
# 1 "/exd4/billingd/src/gcc-mainline/gcc/config/mips/iris5.h" 1
# 27 "/exd4/billingd/src/gcc-mainline/gcc/config/mips/iris5.h"
# 1 "/exd4/billingd/src/gcc-mainline/gcc/config/mips/iris3.h" 1
# 28 "/exd4/billingd/src/gcc-mainline/gcc/config/mips/iris5.h" 2
# 1 "/exd4/billingd/src/gcc-mainline/gcc/config/mips/mips.h" 1
# 29 "/exd4/billingd/src/gcc-mainline/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 "/exd4/billingd/src/gcc-mainline/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[];
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);
# 874 "/exd4/billingd/src/gcc-mainline/gcc/config/mips/mips.h"
extern int mips_abi;
# 1806 "/exd4/billingd/src/gcc-mainline/gcc/config/mips/mips.h"
extern char mips_hard_regno_mode_ok[][76];
# 1930 "/exd4/billingd/src/gcc-mainline/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,
  ST_REGS,
  ALL_REGS,
  LIM_REG_CLASSES
};
# 2016 "/exd4/billingd/src/gcc-mainline/gcc/config/mips/mips.h"
extern const enum reg_class mips_regno_to_class[];
# 2086 "/exd4/billingd/src/gcc-mainline/gcc/config/mips/mips.h"
extern enum reg_class mips_char_to_class[];
# 2308 "/exd4/billingd/src/gcc-mainline/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;
# 2650 "/exd4/billingd/src/gcc-mainline/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;
# 29 "/exd4/billingd/src/gcc-mainline/gcc/config/mips/iris5.h" 2
# 1 "/exd4/billingd/src/gcc-mainline/gcc/config/mips/iris4.h" 1
# 30 "/exd4/billingd/src/gcc-mainline/gcc/config/mips/iris5.h" 2
# 34 "/exd4/billingd/src/gcc-mainline/gcc/config/mips/iris6.h" 2
# 1 "/exd4/billingd/src/gcc-mainline/gcc/config/mips/abi64.h" 1
# 35 "/exd4/billingd/src/gcc-mainline/gcc/config/mips/iris6.h" 2
# 4 "tconfig.h" 2
# 1 "/exd4/billingd/src/gcc-mainline/gcc/defaults.h" 1
# 5 "tconfig.h" 2
# 37 "/exd4/billingd/src/gcc-mainline/gcc/libgcc2.c" 2
# 1 "/exd4/billingd/src/gcc-mainline/gcc/tsystem.h" 1
# 37 "/exd4/billingd/src/gcc-mainline/gcc/tsystem.h"
# 1 "include/stddef.h" 1 3
# 147 "include/stddef.h" 3
typedef int ptrdiff_t;
# 201 "include/stddef.h" 3
typedef unsigned int size_t;
# 293 "include/stddef.h" 3
typedef long int wchar_t;
# 38 "/exd4/billingd/src/gcc-mainline/gcc/tsystem.h" 2
# 60 "/exd4/billingd/src/gcc-mainline/gcc/tsystem.h"
# 1 "include/stdarg.h" 1 3
# 43 "include/stdarg.h" 3
typedef __builtin_va_list __gnuc_va_list;
# 110 "include/stdarg.h" 3
typedef __gnuc_va_list va_list;
# 61 "/exd4/billingd/src/gcc-mainline/gcc/tsystem.h" 2


# 1 "include/stdio.h" 1 3
# 20 "include/stdio.h" 3
#ident "$Revision: 1.75 $"
# 50 "include/stdio.h" 3
# 1 "/usr/include/standards.h" 1 3
# 19 "/usr/include/standards.h" 3
#ident "$Id: standards.h,v 1.19 1997/12/15 21:30:25 jph Exp $"
# 51 "include/stdio.h" 2 3
# 1 "/usr/include/sgidefs.h" 1 3
# 19 "/usr/include/sgidefs.h" 3
#ident "$Revision: 1.11 $"
# 136 "/usr/include/sgidefs.h" 3
typedef int __int32_t;
typedef unsigned __uint32_t;
# 183 "/usr/include/sgidefs.h" 3
typedef long long __int64_t;
typedef unsigned long long __uint64_t;
# 219 "/usr/include/sgidefs.h" 3
typedef __int32_t __psint_t;
typedef __uint32_t __psunsigned_t;
# 241 "/usr/include/sgidefs.h" 3
typedef __int32_t __scint_t;
typedef __uint32_t __scunsigned_t;
# 52 "include/stdio.h" 2 3
# 67 "include/stdio.h" 3
typedef int ssize_t;
# 76 "include/stdio.h" 3
typedef __int64_t fpos_t;
# 86 "include/stdio.h" 3
typedef __int64_t off64_t;
# 96 "include/stdio.h" 3
typedef __int64_t off_t;
# 108 "include/stdio.h" 3
typedef __int64_t fpos64_t;
# 117 "include/stdio.h" 3
typedef char *__not_va_list__;
# 187 "include/stdio.h" 3
typedef struct
# 197 "include/stdio.h" 3
__file_s

{

        int _cnt;




        unsigned char *_ptr;
        unsigned char *_base;





        unsigned char _flag;
        unsigned char _o_file;
        unsigned short _file;




} FILE;

extern FILE __iob[100];

extern FILE *_lastbuf;
extern unsigned char *_bufendtab[];
extern unsigned char _sibuf[], _sobuf[];


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 snprintf(char *, ssize_t, const char *, ...);


extern int sprintf(char *, const char *, ...);

extern int sscanf(const char *, const char *, ...);
extern int vfprintf(FILE *, const char *, __gnuc_va_list);
extern int vprintf(const char *, __gnuc_va_list);

extern int vsnprintf(char *, ssize_t, const char *, __gnuc_va_list);

extern int vsprintf(char *, const char *, __gnuc_va_list);
# 271 "include/stdio.h" 3
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 getchar(void);
extern char *gets(char *);
extern int putc(int, FILE *);
extern int putchar(int);
extern int puts(const char *);
extern int ungetc(int, FILE *);
extern size_t fread(void *, size_t, size_t, FILE *);
#pragma int_to_unsigned fread
extern size_t fwrite(const void *, size_t, size_t, FILE *);
#pragma int_to_unsigned fwrite
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 *);



extern FILE *fdopen(int, const char *);
extern int fileno(FILE *);




extern void flockfile(FILE *);
extern int ftrylockfile(FILE *);
extern void funlockfile(FILE *);
extern int getc_unlocked(FILE *);
extern int putc_unlocked(int, FILE *);
extern int getchar_unlocked(void);
extern int putchar_unlocked(int);



extern FILE *popen(const char *, const char *);
extern int pclose(FILE *);



# 1 "/exd4/billingd/src/gcc-mainline/include/getopt.h" 1 3
# 36 "/exd4/billingd/src/gcc-mainline/include/getopt.h" 3
extern char *optarg;
# 50 "/exd4/billingd/src/gcc-mainline/include/getopt.h" 3
extern int optind;




extern int opterr;



extern int optopt;
# 82 "/exd4/billingd/src/gcc-mainline/include/getopt.h" 3
struct option
{

  const char *name;





  int has_arg;
  int *flag;
  int val;
};
# 118 "/exd4/billingd/src/gcc-mainline/include/getopt.h" 3
extern int getopt_long (int argc, char *const *argv, const char *shortopts,
                        const struct option *longopts, int *longind);
extern int getopt_long_only (int argc, char *const *argv,
                             const char *shortopts,
                             const struct option *longopts, int *longind);


extern int _getopt_internal (int argc, char *const *argv,
                             const char *shortopts,
                             const struct option *longopts, int *longind,
                             int long_only);
# 323 "include/stdio.h" 2 3
extern char *ctermid(char *);
extern char *cuserid(char *);
extern char *tempnam(const char *, const char *);
extern int getw(FILE *);
extern int putw(int, FILE *);





extern char *mktemp(char *);
extern int mkstemp(char *);
extern int setbuffer(FILE *, char *, int);
extern int setlinebuf(FILE *);
extern int system(const char *);




extern off_t ftello(FILE *);
extern int fseeko(FILE *, off_t, int);




extern int fgetpos64(FILE *, fpos64_t *);
extern FILE *fopen64(const char *, const char *);
extern FILE *freopen64(const char *, const char *, FILE *);
extern int fseek64(FILE *, __int64_t, int);
extern int fseeko64(FILE *, off64_t, int);
extern int fsetpos64(FILE *, const fpos64_t *);
extern __int64_t ftell64(FILE *);
extern off64_t ftello64(FILE *);
extern FILE *tmpfile64(void);



extern int __semputc(int, FILE *);
extern int __semgetc(FILE *);
extern int __us_rsthread_stdio;



extern char *ctermid_r(char *);
# 64 "/exd4/billingd/src/gcc-mainline/gcc/tsystem.h" 2


# 1 "include/sys/types.h" 1 3
# 36 "include/sys/types.h" 3
#ident "$Revision: 3.138 $"





typedef unsigned char uchar_t;
typedef unsigned short ushort_t;
typedef unsigned int uint_t;
typedef unsigned long ulong_t;



# 1 "/usr/include/sys/pthread.h" 1 3
# 11 "/usr/include/sys/pthread.h" 3
typedef unsigned int pthread_t;


typedef struct { long __D[5]; } pthread_attr_t;
typedef struct { long __D[8]; } pthread_mutex_t;
typedef struct { long __D[2]; } pthread_mutexattr_t;
typedef struct { long __D[8]; } pthread_cond_t;
typedef struct { long __D[2]; } pthread_condattr_t;
typedef struct { long __D[16]; } pthread_rwlock_t;
typedef struct { long __D[4]; } pthread_rwlockattr_t;
typedef int pthread_key_t;
typedef int pthread_once_t;
# 50 "include/sys/types.h" 2 3



typedef char * addr_t;
typedef char * caddr_t;

typedef __int64_t daddr_t;



typedef long pgno_t;
typedef __uint32_t pfn_t;
typedef short cnt_t;
typedef unsigned long basictime_t;
typedef __int64_t micro_t;




typedef __int32_t pgcnt_t;

typedef enum { B_FALSE, B_TRUE } boolean_t;
# 83 "include/sys/types.h" 3
typedef long id_t;
# 96 "include/sys/types.h" 3
typedef ulong_t major_t;
typedef ulong_t minor_t;
# 115 "include/sys/types.h" 3
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 __uint32_t o_ino_t;


typedef unsigned long mode_t;
typedef unsigned long dev_t;
typedef long uid_t;
typedef long gid_t;
typedef unsigned long nlink_t;
typedef long pid_t;
# 140 "include/sys/types.h" 3
typedef int tid_t;

typedef dev_t vertex_hdl_t;


typedef __uint64_t ino_t;



typedef __uint64_t ino64_t;
# 169 "include/sys/types.h" 3
typedef __scint_t __scoff_t;

typedef __scoff_t scoff_t;




typedef __int64_t blkcnt64_t;
typedef __uint64_t fsblkcnt64_t;
typedef __uint64_t fsfilcnt64_t;



typedef __int64_t blkcnt_t;
typedef __uint64_t fsblkcnt_t;
typedef __uint64_t fsfilcnt_t;






typedef long swblk_t;
typedef unsigned long paddr_t;
typedef unsigned long iopaddr_t;
typedef int key_t;
typedef unsigned char use_t;
typedef long sysid_t;
typedef short index_t;

typedef signed short nasid_t;
typedef signed short cnodeid_t;
typedef signed char partid_t;
typedef signed short moduleid_t;
typedef signed short cmoduleid_t;

typedef unsigned int lock_t;
typedef signed short cpuid_t;
typedef unsigned char pri_t;
typedef __uint64_t accum_t;
typedef __int64_t prid_t;
typedef __int64_t ash_t;
typedef short cell_t;
typedef int credid_t;
# 245 "include/sys/types.h" 3
typedef long time_t;
# 255 "include/sys/types.h" 3
typedef long clock_t;
# 286 "include/sys/types.h" 3
typedef int clockid_t;



typedef int timer_t;
# 299 "include/sys/types.h" 3
typedef unsigned int useconds_t;






typedef __scunsigned_t bitnum_t;
typedef __scunsigned_t bitlen_t;


typedef int processorid_t;
typedef int toid_t;
typedef long *qaddr_t;
typedef __uint32_t inst_t;
# 322 "include/sys/types.h" 3
typedef __uint64_t machreg_t;
# 332 "include/sys/types.h" 3
typedef __uint64_t fpreg_t;
# 343 "include/sys/types.h" 3
typedef signed char int8_t;
typedef unsigned char uint8_t;
typedef signed short int16_t;
typedef unsigned short uint16_t;
typedef signed int int32_t;
typedef unsigned int uint32_t;
typedef __int64_t int64_t;
typedef __uint64_t uint64_t;
typedef __int64_t intmax_t;
typedef __uint64_t uintmax_t;
typedef signed long int intptr_t;
typedef unsigned long int uintptr_t;






typedef unsigned char u_int8_t;
typedef unsigned short u_int16_t;
typedef __uint32_t u_int32_t;
# 386 "include/sys/types.h" 3
typedef long hostid_t;
# 401 "include/sys/types.h" 3
# 1 "/usr/include/sys/bsd_types.h" 1 3
# 21 "/usr/include/sys/bsd_types.h" 3
#ident "$Revision: 1.2 $"






typedef struct { int r[1]; } * physadr;
typedef unsigned char unchar;
typedef unsigned char u_char;
typedef unsigned short ushort;
typedef unsigned short u_short;
typedef unsigned int uint;
typedef unsigned int u_int;
typedef unsigned long ulong;
typedef unsigned long u_long;
typedef struct _quad { long val[2]; } quad;






# 1 "/usr/include/sys/select.h" 1 3
# 29 "/usr/include/sys/select.h" 3
#ident "$Revision: 1.17 $"
# 55 "/usr/include/sys/select.h" 3
typedef long fd_mask_t;
typedef unsigned long ufd_mask_t;
# 67 "/usr/include/sys/select.h" 3
typedef struct fd_set {



        fd_mask_t fds_bits[(((1024)+(((int)(sizeof(fd_mask_t) * 8))-1))/((int)(sizeof(fd_mask_t) * 8)))];
} fd_set;







# 1 "/usr/include/string.h" 1 3





#ident "$Revision: 1.41 $"
# 67 "/usr/include/string.h" 3
extern void *memcpy(void *, const void *, size_t);
extern void *memmove(void *, const void *, size_t);
extern char *strcpy(char *, const char *);
extern char *strncpy(char *, const char *, size_t);
extern char *strcat(char *, const char *);
extern char *strncat(char *, const char *, size_t);
extern void *memccpy(void *, const void *, int, size_t);
extern int memcmp(const void *, const void *, size_t);
extern int strcmp(const char *, const char *);
extern int strcoll(const char *, const char *);
extern int strncmp(const char *, const char *, size_t);
extern size_t strxfrm(char *, const char *, size_t);

extern void *memchr(const void *, int, size_t);
extern char *strchr(const char *, int);

extern size_t strcspn(const char *, const char *);
#pragma int_to_unsigned strcspn

extern char *strpbrk(const char *, const char *);
extern char *strrchr(const char *, int);

extern size_t strspn(const char *, const char *);
#pragma int_to_unsigned strspn

extern char *strstr(const char *, const char *);

extern char *strtok(char *, const char *);
extern void *memset(void *, int, size_t);
extern char *strerror(int);
extern size_t strlen(const char *);
#pragma int_to_unsigned strlen


extern int ffs(int);

extern int strcasecmp(const char *, const char *);
extern int strncasecmp(const char *, const char *, size_t);



extern char *strdup(const char *);



extern char *strtok_r(char *, const char *, char **);
# 81 "/usr/include/sys/select.h" 2 3
# 117 "/usr/include/sys/select.h" 3
typedef long fd_mask;
# 45 "/usr/include/sys/bsd_types.h" 2 3
# 402 "include/sys/types.h" 2 3



typedef __uint64_t k_sigset_t;
# 67 "/exd4/billingd/src/gcc-mainline/gcc/tsystem.h" 2


# 1 "/usr/include/errno.h" 1 3





#ident "$Revision: 1.28 $"
# 36 "/usr/include/errno.h" 3
# 1 "/usr/include/sys/errno.h" 1 3
# 13 "/usr/include/sys/errno.h" 3
#ident "$Revision: 3.42 $"
# 37 "/usr/include/errno.h" 2 3




extern char * sys_errlist[];
extern int sys_nerr;

extern int oserror(void);
extern int setoserror(int);
extern int goserror(void);
# 60 "/usr/include/errno.h" 3
extern int errno;
# 70 "/exd4/billingd/src/gcc-mainline/gcc/tsystem.h" 2


extern int errno;







# 1 "include/stdlib.h" 1 3
# 15 "include/stdlib.h" 3
#ident "$Revision: 1.78 $"
# 99 "include/stdlib.h" 3
typedef struct {
         int quot;
         int rem;
        } div_t;

typedef struct {
         long quot;
         long rem;
        } ldiv_t;
# 162 "include/stdlib.h" 3
# 1 "/usr/include/locale_attr.h" 1 3
# 21 "/usr/include/locale_attr.h" 3
#ident "$Revision: 1.4 $"
# 44 "/usr/include/locale_attr.h" 3
typedef struct {

    unsigned int _class [ 257 ];
    signed short _lower [ 257 ];
    signed short _upper [ 257 ];

    char _cswidth [ 7 ];
    char _fill [ 1 ];



} __ctype_t;


typedef int (*__isset_func_t)(int);




        typedef long wint_t;






typedef int (*__iscodeset_func_t)(int, wint_t);


typedef struct __attr {

    __ctype_t * _ctype_tbl;

    struct _csinfo {
        unsigned char _eucwidth[3];
        unsigned char _scrwidth[3];
        unsigned char _mb_cur_max;
    } _csinfo;

    struct _euc_func {
        int _is_euc;
        __isset_func_t _isset2;
        __isset_func_t _isset3;
        __iscodeset_func_t _iscodeset;
    } _euc_func;

    struct _collate_res {
        unsigned char _coll_as_cmp;
    } _collate_res;

    void * _fill[15];
} __attr_t;




extern __attr_t __libc_attr;
# 163 "include/stdlib.h" 2 3
# 173 "include/stdlib.h" 3
extern double atof(const char *);
extern int atoi(const char *);
extern long int atol(const char *);
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 rand(void);
extern void srand(unsigned int);
extern void *calloc(size_t, size_t);
extern void free(void *);
extern void *malloc(size_t);
extern void *realloc(void *, size_t);







extern void abort(void);
extern int atexit(void (*)(void));
extern void exit(int);




extern char *getenv(const char *);
extern int system(const char *);
extern void *bsearch(const void *, const void *, size_t, size_t,
        int (*)(const void *, const void *));
extern void qsort(void *, size_t, size_t,
        int (*)(const void *, const void *));







extern int abs(int);






extern div_t div(int, int);
extern long int labs(long);




extern ldiv_t ldiv(long, long);
extern int mbtowc(wchar_t *, const char *, size_t);
extern int mblen(const char *, size_t);
extern int wctomb(char *, wchar_t);
extern size_t mbstowcs(wchar_t *, const char *, size_t);
extern size_t wcstombs(char *, const wchar_t *, size_t);



extern int putenv(const char *);
extern double drand48(void);
extern double erand48(unsigned short [3]);
extern long lrand48(void);
extern long nrand48(unsigned short [3]);
extern long mrand48(void);
extern long jrand48(unsigned short [3]);
extern void srand48(long);
extern void lcong48(unsigned short int [7]);
extern void setkey(const char *);
extern unsigned short * seed48(unsigned short int [3]);




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 int, char *, size_t);
extern char *l64a(long);
extern char *mktemp(char *);
extern int mkstemp(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 int rand_r(unsigned int *);





extern int atcheckpoint(void (*)(void));
extern int atrestart(void (*)(void));
extern int dup2(int, int);
extern int getpw(int, char *);
extern char *getcwd(char *, size_t);
extern char *getlogin(void);
extern char *getpass(const char *);
extern int isatty(int);
extern void l3tol(long *, const char *, int);
extern void ltol3(char *, const long *, int);
extern void *memalign(size_t, size_t);
# 300 "include/stdlib.h" 3
extern long double atold(const char *);
extern long double strtold(const char *nptr, char **endptr);
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 *ecvtl(long double, int, int *, int *);
extern char *fcvtl(long double, int, int *, int *);
extern char *gcvtl(long double, int, char *);
# 320 "include/stdlib.h" 3
typedef struct {
         __int64_t quot;
         __int64_t rem;
        } lldiv_t;

extern __int64_t atoll(const char *);
extern __int64_t strtoll(const char *, char **, int);
extern __uint64_t strtoull(const char *, char **, int);
extern __int64_t llabs(__int64_t);




extern lldiv_t lldiv(__int64_t, __int64_t);







extern char *ecvt_r(double, int, int *, int *, char *);
extern char *fcvt_r(double, int, int *, int *, char *);

extern char *qecvt_r(long double, int, int *, int *, char *);
extern char *qfcvt_r(long double, int, int *, int *, char *);
extern char *ecvtl_r(long double, int, int *, int *, char *);
extern char *fcvtl_r(long double, int, int *, int *, char *);
# 81 "/exd4/billingd/src/gcc-mainline/gcc/tsystem.h" 2
# 1 "include/unistd.h" 1 3
# 15 "include/unistd.h" 3
#ident "$Revision: 1.137 $"
# 287 "include/unistd.h" 3
# 1 "/usr/include/sys/unistd.h" 1 3
# 288 "include/unistd.h" 2 3




extern int access(const char *, int);
extern unsigned alarm(unsigned);
extern int chdir(const char *);
extern int chown(const char *, uid_t, gid_t);
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 pid_t fork(void);
extern long fpathconf(int, int);

extern char *getcwd(char *, size_t);
extern gid_t getegid(void);
extern uid_t geteuid(void);
extern gid_t getgid(void);



extern int getgroups(int, gid_t *);

extern char *getlogin(void);



extern pid_t getpgrp(void);

extern pid_t getpid(void);
extern pid_t getppid(void);
extern uid_t getuid(void);
extern int isatty(int);

extern int link(const char *, const char *);
extern int linkfollow(const char *, const char *);
# 344 "include/unistd.h" 3
extern off_t lseek(int, off_t, int);
extern long pathconf(const char *, int);
extern int pause(void);
extern int pipe(int *);
extern ssize_t read(int, void *, size_t);
extern int rmdir(const char *);
extern int setgid(gid_t);
extern int setpgid(pid_t, pid_t);
extern pid_t setsid(void);
extern int setuid(uid_t);
extern unsigned sleep(unsigned);
extern long sysconf(int);
extern pid_t tcgetpgrp(int);
extern int tcsetpgrp(int, pid_t);
extern char *ttyname(int);
extern int unlink(const char *);
extern ssize_t write(int, const void *, size_t);





extern int fdatasync(int);






extern int fsync(int);






extern int ftruncate(int, off_t);






extern int getlogin_r(char *, size_t);
extern int ttyname_r(int, char *, size_t);
extern int pthread_atfork(void (*)(void), void (*)(void), void (*)(void));







extern size_t confstr(int, char *, size_t);






extern int chroot(const char *);
extern int nice(int);
extern char *crypt(const char *, const char *);
extern void encrypt(char *, int);
extern char *getpass(const char *);
extern void swab(const void *, void *, ssize_t);






extern int brk(void *);
extern int fchown(int, uid_t, gid_t);
extern int fchdir(int);
extern int getdtablesize(void);
extern long gethostid(void);
extern int gethostname(char *, size_t);
extern int getpagesize(void);
extern pid_t getpgid(pid_t);
extern pid_t getsid(pid_t);
extern char *getwd(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 void *sbrk(ssize_t);



extern pid_t setpgrp(void);



extern int setregid(gid_t, gid_t);
# 449 "include/unistd.h" 3
extern int setreuid(uid_t, uid_t);
extern int symlink(const char *, const char *);
extern void sync(void);
extern int truncate(const char *, off_t);
extern useconds_t ualarm(useconds_t, useconds_t);
extern int usleep(useconds_t);
# 469 "include/unistd.h" 3
extern ssize_t pread(int, void *, size_t, off_t);
extern ssize_t pwrite(int, const void *, size_t, off_t);
# 481 "include/unistd.h" 3
struct timeval;
extern int select(int, fd_set *, fd_set *, fd_set *, struct timeval *);






# 1 "/usr/include/sys/uio.h" 1 3
# 12 "/usr/include/sys/uio.h" 3
#ident "@(#)uts-3b2:io/uio.h	1.2"
#ident "$Revision: 1.22 $"
# 30 "/usr/include/sys/uio.h" 3
typedef struct iovec {
        void *iov_base;
        size_t iov_len;
} iovec_t;



extern ssize_t readv(int, const struct iovec *, int);
extern ssize_t writev(int, const struct iovec *, int);
# 490 "include/unistd.h" 2 3
# 1 "/usr/include/utime.h" 1 3





#ident "$Revision: 1.9 $"
# 34 "/usr/include/utime.h" 3
# 1 "/usr/include/sys/utime.h" 1 3
# 17 "/usr/include/sys/utime.h" 3
struct utimbuf {
        time_t actime;
        time_t modtime;
};
# 35 "/usr/include/utime.h" 2 3

extern int utime(const char *, const struct utimbuf *);
# 491 "include/unistd.h" 2 3
# 1 "/usr/include/re_comp.h" 1 3





#ident "$Revision: 1.1 $"
# 25 "/usr/include/re_comp.h" 3
extern char *re_comp(const char *);
extern int re_exec(const char *);
# 492 "include/unistd.h" 2 3
extern int acct(const char *);
extern void exit(int);
extern char *gettxt(const char *, const char *);
extern int profil(unsigned short *, size_t, int, unsigned int);
extern int ptrace(int, pid_t, int, int);
extern int rename(const char *, const char *);
extern int seteuid(uid_t);
extern int setegid(gid_t);
extern int stime(const time_t *);
extern off_t tell(int);



struct acct_spi;
extern int atfork_child(void (*func)(void));
extern int atfork_child_prepend(void (*func)(void));
extern int atfork_parent(void (*func)(int, int));
extern int atfork_pre(void (*func)(void));
extern int atsproc_child(void (*func)(void));
extern int atsproc_parent(void (*func)(int, int));
extern int atsproc_pre(void (*func)(unsigned int));
extern void bset(char *, bitnum_t);
extern void bclr(char *, bitnum_t);
extern int btst(char *, bitnum_t);
extern void bfset(char *, bitnum_t, bitlen_t);
extern void bfclr(char *, bitnum_t, bitlen_t);
extern bitlen_t bftstset(char *, bitnum_t, bitlen_t);
extern bitlen_t bftstclr(char *, bitnum_t, bitlen_t);
extern int BSDchown(const char *, uid_t, gid_t);
extern int BSDdup2(int, int);
extern int BSDfchown(int, uid_t, gid_t);
extern int BSDgetpgrp(int);
extern int BSDsetpgrp(int, int);
extern int BSDsetgroups(int, int *);
extern int BSDgetgroups(int, int *);
extern int _daemonize(int, int, int, int);
extern ash_t getash(void);
extern int getdtablehi(void);
extern int getdomainname(char *, int);
extern prid_t getprid(void);
extern char *_getpty(int *, int, mode_t, int);
extern int getspinfo(struct acct_spi *);
extern int mincore(caddr_t, size_t, char *);
extern int mpin(void *, size_t);
extern int munpin(void *, size_t);
extern int newarraysess(void);
extern pid_t pcreatel(const char *, const char *, ...);
extern pid_t pcreatelp(const char *, const char *, ...);
extern pid_t pcreatev(const char *, char *const *);
extern pid_t pcreateve(const char *, char *const *, char *const *);
extern pid_t pcreatevp(const char *, char *const *);

extern ssize_t pread64(int, void *, size_t, off64_t);
extern ssize_t pwrite64(int, const void *, size_t, off64_t);

extern int rexecl(cell_t, const char *, const char *, ...);
extern int rexecle(cell_t, const char *, const char *, ...);
extern int rexeclp(cell_t, const char *, const char *, ...);
extern int rexecv(cell_t, const char *, char *const *);
extern int rexecve(cell_t, const char *, char *const *, char *const *);
extern int rexecvp(cell_t, const char *, char *const *);
extern float _sqrt_s(float);
extern double _sqrt_d(double);
extern int setash(ash_t);
extern int setdomainname(const char *, int);



extern int setgroups(int, const gid_t *);

extern int sethostid(int);
extern int sethostname(const char *, int);
extern int setprid(prid_t);
extern int setrgid(gid_t);
extern int setruid(uid_t);
extern int setspinfo(struct acct_spi *);
extern int sgikopt(const char *, char *, int);
extern long sginap(long);
extern off64_t tell64(int);
extern int vhangup(void);





extern int fattach(int, const char *);
extern int fdetach(const char *);
extern int ioctl(int, int, ...);





extern int ftruncate64(int, off64_t);
extern int lockf64(int, int, off64_t);
extern off64_t lseek64(int, off64_t, int);
extern int truncate64(const char *, off64_t);
# 82 "/exd4/billingd/src/gcc-mainline/gcc/tsystem.h" 2


# 1 "include/limits.h" 1 3
# 11 "include/limits.h" 3
# 1 "include/syslimits.h" 1 3
# 36 "include/syslimits.h" 3
#ident "$Revision: 7.41 $"
# 319 "include/syslimits.h" 3
typedef union _h_val {

        unsigned long i[2];




        double d;
} _h_val;

extern __const _h_val __huge_val;
# 12 "include/limits.h" 2 3
# 85 "/exd4/billingd/src/gcc-mainline/gcc/tsystem.h" 2


# 1 "/usr/include/time.h" 1 3





#ident "$Revision: 1.51 $"
# 74 "/usr/include/time.h" 3
# 1 "/usr/include/sys/ptimers.h" 1 3
# 22 "/usr/include/sys/ptimers.h" 3
#ident "$Id: ptimers.h,v 1.4 1997/01/15 04:44:41 jwag Exp $"





# 1 "/usr/include/sys/timespec.h" 1 3
# 19 "/usr/include/sys/timespec.h" 3
#ident "$Revision: 1.5 $"
# 46 "/usr/include/sys/timespec.h" 3
typedef struct timespec {



        time_t tv_sec;




        long tv_nsec;

} timespec_t;
# 29 "/usr/include/sys/ptimers.h" 2 3

typedef struct itimerspec {
        timespec_t it_interval;
        timespec_t it_value;
} itimerspec_t;
# 75 "/usr/include/time.h" 2 3
# 106 "/usr/include/time.h" 3
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 clock_t clock(void);
extern double difftime(time_t, time_t);
extern time_t mktime(struct tm *);
extern time_t time(time_t *);
extern char *asctime(const struct tm *);
extern char *ctime (const time_t *);
extern struct tm *gmtime(const time_t *);
extern struct tm *localtime(const time_t *);
extern size_t strftime(char *, size_t, const char *, const struct tm *);





extern void tzset(void);
extern char *tzname[2];
# 150 "/usr/include/time.h" 3
struct sigevent;
extern int clock_settime(clockid_t, const timespec_t *);
extern int clock_gettime(clockid_t, timespec_t *);
extern int clock_getres(clockid_t, timespec_t *);
extern int nanosleep(const timespec_t *, timespec_t *);
extern int timer_create(clockid_t, struct sigevent *, timer_t *);
extern int timer_delete(timer_t);
extern int timer_settime(timer_t, int, const struct itimerspec *, struct itimerspec *);
extern int timer_gettime(timer_t, struct itimerspec *);
extern int timer_getoverrun(timer_t);






extern time_t timezone;
extern int daylight;
extern char *strptime(const char *, const char *, struct tm *);






extern struct tm *getdate(const char *);
extern int getdate_err;



extern int cftime(char *, char *, const time_t *);
extern int ascftime(char *, const char *, const struct tm *);
extern time_t altzone;






extern char *asctime_r(const struct tm *, char *);
extern char *ctime_r(const time_t *, char *);
extern struct tm *gmtime_r(const time_t *, struct tm *);
extern struct tm *localtime_r(const time_t *, struct tm *);
# 88 "/exd4/billingd/src/gcc-mainline/gcc/tsystem.h" 2
# 38 "/exd4/billingd/src/gcc-mainline/gcc/libgcc2.c" 2

# 1 "/exd4/billingd/src/gcc-mainline/gcc/machmode.h" 1
# 29 "/exd4/billingd/src/gcc-mainline/gcc/machmode.h"
enum machine_mode {
# 1 "/exd4/billingd/src/gcc-mainline/gcc/machmode.def" 1
# 70 "/exd4/billingd/src/gcc-mainline/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,
# 154 "/exd4/billingd/src/gcc-mainline/gcc/machmode.def"
CCmode,
# 31 "/exd4/billingd/src/gcc-mainline/gcc/machmode.h" 2
MAX_MACHINE_MODE };
# 41 "/exd4/billingd/src/gcc-mainline/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 "/exd4/billingd/src/gcc-mainline/gcc/machmode.h"
extern const unsigned int mode_size[];




extern const unsigned int mode_unit_size[];
# 96 "/exd4/billingd/src/gcc-mainline/gcc/machmode.h"
extern const unsigned int mode_bitsize[];
# 117 "/exd4/billingd/src/gcc-mainline/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;
# 40 "/exd4/billingd/src/gcc-mainline/gcc/libgcc2.c" 2






# 1 "/exd4/billingd/src/gcc-mainline/gcc/libgcc2.h" 1
# 25 "/exd4/billingd/src/gcc-mainline/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 "/exd4/billingd/src/gcc-mainline/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 "/exd4/billingd/src/gcc-mainline/gcc/libgcc2.h"
typedef float SFtype __attribute__ ((mode (SF)));
typedef float DFtype __attribute__ ((mode (DF)));
# 122 "/exd4/billingd/src/gcc-mainline/gcc/libgcc2.h"
typedef int word_type __attribute__ ((mode (__word__)));
# 214 "/exd4/billingd/src/gcc-mainline/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 "/exd4/billingd/src/gcc-mainline/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 "/exd4/billingd/src/gcc-mainline/gcc/libgcc2.h"
  struct DWstruct {SItype high, low;};
# 293 "/exd4/billingd/src/gcc-mainline/gcc/libgcc2.h"
typedef union
{
  struct DWstruct s;
  DItype ll;
} DWunion;

# 1 "/exd4/billingd/src/gcc-mainline/gcc/longlong.h" 1
# 1450 "/exd4/billingd/src/gcc-mainline/gcc/longlong.h"
extern const UQItype __clz_tab[];
# 300 "/exd4/billingd/src/gcc-mainline/gcc/libgcc2.h" 2
# 47 "/exd4/billingd/src/gcc-mainline/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 "/exd4/billingd/src/gcc-mainline/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 "/exd4/billingd/src/gcc-mainline/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 "/exd4/billingd/src/gcc-mainline/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;
}
# 751 "/exd4/billingd/src/gcc-mainline/gcc/libgcc2.c"
DItype
__moddi3 (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)
    vv.ll = __negdi2 (vv.ll);

  (void) __udivmoddi4 (uu.ll, vv.ll, &w);
  if (c)
    w = __negdi2 (w);

  return w;
}



More information about the Gcc-bugs mailing list