public inbox for gcc-prs@sourceware.org help / color / mirror / Atom feed
From: tmwg-gcc@inxservices.com To: gcc-gnats@gcc.gnu.org Subject: c/6469: 3.1 ICE no register to spill in glibc 2.2.5 >-fschedule-insns Date: Thu, 25 Apr 2002 22:16:00 -0000 [thread overview] Message-ID: <20020426051423.10673.qmail@mwg.inxservices.lan> (raw) >Number: 6469 >Category: c >Synopsis: 3.1 ICE no register to spill in glibc 2.2.5 >-fschedule-insns >Confidential: no >Severity: serious >Priority: medium >Responsible: unassigned >State: open >Class: ice-on-illegal-code >Submitter-Id: net >Arrival-Date: Thu Apr 25 22:16:01 PDT 2002 >Closed-Date: >Last-Modified: >Originator: Phil Blecker >Release: 3.0.99.11 20020425 (prerelease) (3.1 CVS, version renamed) >Organization: inX Services >Environment: System: Linux mwg 2.4.19-pre5ac1N #1 Mon Apr 22 08:44:58 PDT 2002 i686 unknown Architecture: i686 host: i686-inX-linux build: i686-inX-linux target: i686-inX-linux configured with: ../configure --prefix=/usr --exec-prefix=/usr --datadir=/usr/lib --includedir=/usr/local/include --with-gnu-ld --with-gnu-as --with-local-prefix=/usr/local --with-gxx-include-dir=/usr/include/c++3.1 --with-cpp-install-dir=/lib --disable-c-mbchar --enable-threads=posix --with-dwarf2 --enable-shared --disable-nls --with-system-zlib --enable-version-specific-runtime-libs --with-slibdir=/lib --enable-fast-character --enable-interpreter --with-x --enable-clocale=gnu --disable-c-mbchar --enable-c99 --enable-long-long --enable-cheaders=c_std --enable-cxx-flags="-march=i686 -pipe -O2 -fomit-frame-pointer -momit-leaf-frame-pointer -frename-registers -fexpensive-optimizations -fschedule-insns -fschedule-insns2 -malign-stringops -fno-keep-static-consts -fno-keep-inline-functions -fdata-sections -ffunction-sections" --enable-languages=c,c++,gcov,proto --verbose --host=i686-inX-linux --build=i686-inX-linux --target=i686-inX-linux >Description: gcc des_impl.c -c -O2 -Wall -Winline -Wstrict-prototypes -Wwrite-strings -fexpensive-optimizations -frename-registers -fschedule-insns -fschedule-insns2 -fstrict-aliasing -g -march=i586 -pipe -fPIC -I../include -I. -I/usr/src/devel/glibc/linux5/sunrpc -I.. -I../libio -I/usr/src/devel/glibc/linux5 -I../sysdeps/i386/elf -I../linuxthreads/sysdeps/unix/sysv/linux/i386 -I../linuxthreads/sysdeps/unix/sysv/linux -I../linuxthreads/sysdeps/pthread -I../sysdeps/pthread -I../linuxthreads/sysdeps/unix/sysv -I../linuxthreads/sysdeps/unix -I../linuxthreads/sysdeps/i386/i586 -I../linuxthreads/sysdeps/i386 -I../sysdeps/unix/sysv/linux/i386 -I../sysdeps/unix/sysv/linux -I../sysdeps/gnu -I../sysdeps/unix/common -I../sysdeps/unix/mman -I../sysdeps/unix/inet -I../sysdeps/unix/sysv/i386 -I../sysdeps/unix/sysv -I../sysdeps/unix/i386 -I../sysdeps/unix -I../sysdeps/posix -I../sysdeps/i386/i586 -I../sysdeps/i386/i486 -I../sysdeps/i386/fpu -I../sysdeps/i386 -I../sysdeps/wordsize-32 -I../sysdeps/ieee754/ldbl-96 -I../sysdeps/ieee754/dbl-64 -I../sysdeps/ieee754/flt-32 -I../sysdeps/ieee754 -I../sysdeps/generic/elf -I../sysdeps/generic -nostdinc -isystem /usr/lib/gcc/i686-inX-linux/3.0.99.11/include -isystem /usr/src/linux/include -D_LIBC_REENTRANT -include ../include/libc-symbols.h -DPIC -DSHARED -D_RPC_THREAD_SAFE_ -o /usr/src/devel/glibc/linux5/sunrpc/des_impl.os des_impl.c: In function `_des_crypt': des_impl.c:615: unable to find a register to spill in class `Q_REGS' des_impl.c:615: this is the insn: (insn 176 285 181 (parallel[ (set (reg:SI 111) (zero_extend:SI (mem:QI (reg/v/f:SI 5 edi [68]) [0 S1 A8]))) (clobber (reg:CC 17 flags)) ] ) 112 {*zero_extendqisi2_and} (insn_list 170 (nil)) (expr_list:REG_UNUSED (reg:CC 17 flags) (nil))) des_impl.c:615: confused by earlier errors, bailing out >How-To-Repeat: # 1 "des_impl.c" # 1 "<built-in>" # 1 "<command line>" # 1 "../include/libc-symbols.h" 1 # 54 "../include/libc-symbols.h" # 1 "/usr/src/devel/glibc/linux5/config.h" 1 # 55 "../include/libc-symbols.h" 2 # 2 "<command line>" 2 # 1 "des_impl.c" # 1 "../include/string.h" 1 # 1 "../include/sys/types.h" 1 # 1 "../posix/sys/types.h" 1 # 26 "../posix/sys/types.h" # 1 "../include/features.h" 1 # 283 "../include/features.h" # 1 "../include/sys/cdefs.h" 1 # 1 "../misc/sys/cdefs.h" 1 # 2 "../include/sys/cdefs.h" 2 # 284 "../include/features.h" 2 # 27 "../posix/sys/types.h" 2 # 1 "../sysdeps/unix/sysv/linux/bits/types.h" 1 # 29 "../sysdeps/unix/sysv/linux/bits/types.h" # 1 "/usr/lib/gcc/i686-inX-linux/3.0.99.11/include/stddef.h" 1 3 # 201 "/usr/lib/gcc/i686-inX-linux/3.0.99.11/include/stddef.h" 3 typedef unsigned int size_t; # 30 "../sysdeps/unix/sysv/linux/bits/types.h" 2 typedef unsigned char __u_char; typedef unsigned short __u_short; typedef unsigned int __u_int; typedef unsigned long __u_long; __extension__ typedef unsigned long long int __u_quad_t; __extension__ typedef long long int __quad_t; # 49 "../sysdeps/unix/sysv/linux/bits/types.h" typedef signed char __int8_t; typedef unsigned char __uint8_t; typedef signed short int __int16_t; typedef unsigned short int __uint16_t; typedef signed int __int32_t; typedef unsigned int __uint32_t; __extension__ typedef signed long long int __int64_t; __extension__ typedef unsigned long long int __uint64_t; typedef __quad_t *__qaddr_t; typedef __u_quad_t __dev_t; typedef __u_int __uid_t; typedef __u_int __gid_t; typedef __u_long __ino_t; typedef __u_int __mode_t; typedef __u_int __nlink_t; typedef long int __off_t; typedef __quad_t __loff_t; typedef int __pid_t; typedef int __ssize_t; typedef __u_long __rlim_t; typedef __u_quad_t __rlim64_t; typedef __u_int __id_t; typedef struct { int __val[2]; } __fsid_t; typedef int __daddr_t; typedef char *__caddr_t; typedef long int __time_t; typedef unsigned int __useconds_t; typedef long int __suseconds_t; typedef long int __swblk_t; typedef long int __clock_t; typedef int __clockid_t; typedef int __timer_t; typedef int __key_t; typedef unsigned short int __ipc_pid_t; typedef long int __blksize_t; typedef long int __blkcnt_t; typedef __quad_t __blkcnt64_t; typedef __u_long __fsblkcnt_t; typedef __u_quad_t __fsblkcnt64_t; typedef __u_long __fsfilcnt_t; typedef __u_quad_t __fsfilcnt64_t; typedef __u_quad_t __ino64_t; typedef __loff_t __off64_t; typedef long int __t_scalar_t; typedef unsigned long int __t_uscalar_t; typedef int __intptr_t; typedef unsigned int __socklen_t; # 1 "../linuxthreads/sysdeps/pthread/bits/pthreadtypes.h" 1 # 23 "../linuxthreads/sysdeps/pthread/bits/pthreadtypes.h" # 1 "../sysdeps/unix/sysv/linux/bits/sched.h" 1 # 68 "../sysdeps/unix/sysv/linux/bits/sched.h" struct __sched_param { int __sched_priority; }; # 24 "../linuxthreads/sysdeps/pthread/bits/pthreadtypes.h" 2 struct _pthread_fastlock { long int __status; int __spinlock; }; typedef struct _pthread_descr_struct *_pthread_descr; typedef struct __pthread_attr_s { int __detachstate; int __schedpolicy; struct __sched_param __schedparam; int __inheritsched; int __scope; size_t __guardsize; int __stackaddr_set; void *__stackaddr; size_t __stacksize; } pthread_attr_t; typedef struct { struct _pthread_fastlock __c_lock; _pthread_descr __c_waiting; } pthread_cond_t; typedef struct { int __dummy; } pthread_condattr_t; typedef unsigned int pthread_key_t; typedef struct { int __m_reserved; int __m_count; _pthread_descr __m_owner; int __m_kind; struct _pthread_fastlock __m_lock; } pthread_mutex_t; typedef struct { int __mutexkind; } pthread_mutexattr_t; typedef int pthread_once_t; typedef struct _pthread_rwlock_t { struct _pthread_fastlock __rw_lock; int __rw_readers; _pthread_descr __rw_writer; _pthread_descr __rw_read_waiting; _pthread_descr __rw_write_waiting; int __rw_kind; int __rw_pshared; } pthread_rwlock_t; typedef struct { int __lockkind; int __pshared; } pthread_rwlockattr_t; typedef volatile int pthread_spinlock_t; typedef struct { struct _pthread_fastlock __ba_lock; int __ba_required; int __ba_present; _pthread_descr __ba_waiting; } pthread_barrier_t; typedef struct { int __pshared; } pthread_barrierattr_t; typedef unsigned long int pthread_t; # 144 "../sysdeps/unix/sysv/linux/bits/types.h" 2 # 31 "../posix/sys/types.h" 2 typedef __u_char u_char; typedef __u_short u_short; typedef __u_int u_int; typedef __u_long u_long; typedef __quad_t quad_t; typedef __u_quad_t u_quad_t; typedef __fsid_t fsid_t; typedef __loff_t loff_t; typedef __ino_t ino_t; typedef __ino64_t ino64_t; typedef __dev_t dev_t; typedef __gid_t gid_t; typedef __mode_t mode_t; typedef __nlink_t nlink_t; typedef __uid_t uid_t; typedef __off_t off_t; typedef __off64_t off64_t; typedef __pid_t pid_t; typedef __id_t id_t; typedef __ssize_t ssize_t; typedef __daddr_t daddr_t; typedef __caddr_t caddr_t; typedef __key_t key_t; # 132 "../posix/sys/types.h" # 1 "../include/time.h" 1 # 1 "../time/time.h" 1 # 59 "../time/time.h" typedef __clock_t clock_t; # 70 "../time/time.h" typedef __time_t time_t; # 82 "../time/time.h" typedef __clockid_t clockid_t; # 94 "../time/time.h" typedef __timer_t timer_t; # 4 "../include/time.h" 2 # 133 "../posix/sys/types.h" 2 typedef __useconds_t useconds_t; typedef __suseconds_t suseconds_t; # 1 "/usr/lib/gcc/i686-inX-linux/3.0.99.11/include/stddef.h" 1 3 # 147 "../posix/sys/types.h" 2 typedef unsigned long int ulong; typedef unsigned short int ushort; typedef unsigned int uint; # 190 "../posix/sys/types.h" typedef int int8_t __attribute__ ((__mode__ (__QI__))); typedef int int16_t __attribute__ ((__mode__ (__HI__))); typedef int int32_t __attribute__ ((__mode__ (__SI__))); typedef int int64_t __attribute__ ((__mode__ (__DI__))); typedef unsigned int u_int8_t __attribute__ ((__mode__ (__QI__))); typedef unsigned int u_int16_t __attribute__ ((__mode__ (__HI__))); typedef unsigned int u_int32_t __attribute__ ((__mode__ (__SI__))); typedef unsigned int u_int64_t __attribute__ ((__mode__ (__DI__))); typedef int register_t __attribute__ ((__mode__ (__word__))); # 212 "../posix/sys/types.h" # 1 "../include/endian.h" 1 # 1 "../string/endian.h" 1 # 37 "../string/endian.h" # 1 "../sysdeps/i386/bits/endian.h" 1 # 38 "../string/endian.h" 2 # 2 "../include/endian.h" 2 # 213 "../posix/sys/types.h" 2 # 1 "../include/sys/select.h" 1 # 1 "../misc/sys/select.h" 1 # 31 "../misc/sys/select.h" # 1 "../sysdeps/i386/bits/select.h" 1 # 32 "../misc/sys/select.h" 2 # 1 "../sysdeps/unix/sysv/linux/bits/sigset.h" 1 # 23 "../sysdeps/unix/sysv/linux/bits/sigset.h" typedef int __sig_atomic_t; typedef struct { unsigned long int __val[(1024 / (8 * sizeof (unsigned long int)))]; } __sigset_t; # 35 "../misc/sys/select.h" 2 typedef __sigset_t sigset_t; # 1 "../include/time.h" 1 # 1 "../time/time.h" 1 # 106 "../time/time.h" struct timespec { __time_t tv_sec; long int tv_nsec; }; # 4 "../include/time.h" 2 # 45 "../misc/sys/select.h" 2 # 1 "../sysdeps/unix/sysv/linux/i386/bits/time.h" 1 # 67 "../sysdeps/unix/sysv/linux/i386/bits/time.h" struct timeval { __time_t tv_sec; __suseconds_t tv_usec; }; # 47 "../misc/sys/select.h" 2 # 55 "../misc/sys/select.h" typedef long int __fd_mask; typedef struct { __fd_mask fds_bits[1024 / (8 * sizeof (__fd_mask))]; } fd_set; typedef __fd_mask fd_mask; # 95 "../misc/sys/select.h" extern int select (int __nfds, fd_set *__restrict __readfds, fd_set *__restrict __writefds, fd_set *__restrict __exceptfds, struct timeval *__restrict __timeout) ; extern int pselect (int __nfds, fd_set *__restrict __readfds, fd_set *__restrict __writefds, fd_set *__restrict __exceptfds, const struct timespec *__restrict __timeout, const __sigset_t *__restrict __sigmask) ; # 3 "../include/sys/select.h" 2 extern int __pselect (int __nfds, fd_set *__readfds, fd_set *__writefds, fd_set *__exceptfds, const struct timespec *__timeout, const __sigset_t *__sigmask); extern int __select (int __nfds, fd_set *__restrict __readfds, fd_set *__restrict __writefds, fd_set *__restrict __exceptfds, struct timeval *__restrict __timeout); # 216 "../posix/sys/types.h" 2 # 1 "../sysdeps/unix/sysv/linux/sys/sysmacros.h" 1 # 219 "../posix/sys/types.h" 2 typedef __blksize_t blksize_t; typedef __blkcnt_t blkcnt_t; typedef __fsblkcnt_t fsblkcnt_t; typedef __fsfilcnt_t fsfilcnt_t; # 257 "../posix/sys/types.h" typedef __blkcnt64_t blkcnt64_t; typedef __fsblkcnt64_t fsblkcnt64_t; typedef __fsfilcnt64_t fsfilcnt64_t; # 2 "../include/sys/types.h" 2 # 4 "../include/string.h" 2 extern void *__memccpy (void *__dest, __const void *__src, int __c, size_t __n); extern size_t __strnlen (__const char *__string, size_t __maxlen) __attribute__ ((__pure__)); extern char *__strsep (char **__stringp, __const char *__delim); extern int __strverscmp (__const char *__s1, __const char *__s2) __attribute__ ((__pure__)); extern int __strncasecmp (__const char *__s1, __const char *__s2, size_t __n) __attribute__ ((__pure__)); extern int __strcasecmp (__const char *__s1, __const char *__s2) __attribute__ ((__pure__)); extern char *__strcasestr (__const char *__haystack, __const char *__needle) __attribute__ ((__pure__)); extern char *__strdup (__const char *__string) __attribute__ ((__malloc__)); extern char *__strndup (__const char *__string, size_t __n) __attribute__ ((__malloc__)); extern void *__rawmemchr (__const void *__s, int __c) __attribute__ ((__pure__)); extern char *__strchrnul (__const char *__s, int __c) __attribute__ ((__pure__)); extern void *__memrchr (__const void *__s, int __c, size_t __n) __attribute__ ((__pure__)); extern void *__memchr (__const void *__s, int __c, size_t __n) __attribute__ ((__pure__)); extern int __ffs (int __i) __attribute__ ((const)); extern char *__strerror_r (int __errnum, char *__buf, size_t __buflen); # 1 "../string/string.h" 1 # 28 "../string/string.h" # 1 "/usr/lib/gcc/i686-inX-linux/3.0.99.11/include/stddef.h" 1 3 # 34 "../string/string.h" 2 extern void *memcpy (void *__restrict __dest, __const void *__restrict __src, size_t __n) ; extern void *memmove (void *__dest, __const void *__src, size_t __n) ; extern void *memccpy (void *__restrict __dest, __const void *__restrict __src, int __c, size_t __n) ; extern void *memset (void *__s, int __c, size_t __n) ; extern int memcmp (__const void *__s1, __const void *__s2, size_t __n) __attribute__ ((__pure__)); extern void *memchr (__const void *__s, int __c, size_t __n) __attribute__ ((__pure__)); extern void *rawmemchr (__const void *__s, int __c) __attribute__ ((__pure__)); extern void *memrchr (__const void *__s, int __c, size_t __n) __attribute__ ((__pure__)); extern char *strcpy (char *__restrict __dest, __const char *__restrict __src) ; extern char *strncpy (char *__restrict __dest, __const char *__restrict __src, size_t __n) ; extern size_t strlcpy (char *__restrict __dest, __const char *__restrict __src, size_t __n) ; extern char *strcat (char *__restrict __dest, __const char *__restrict __src) ; extern char *strncat (char *__restrict __dest, __const char *__restrict __src, size_t __n) ; extern size_t strlcat (char *__restrict __dest, __const char *__restrict __src, size_t __n) ; extern int strcmp (__const char *__s1, __const char *__s2) __attribute__ ((__pure__)); extern int strncmp (__const char *__s1, __const char *__s2, size_t __n) __attribute__ ((__pure__)); extern int strcoll (__const char *__s1, __const char *__s2) __attribute__ ((__pure__)); extern size_t strxfrm (char *__restrict __dest, __const char *__restrict __src, size_t __n) ; # 1 "../include/xlocale.h" 1 # 1 "../locale/xlocale.h" 1 # 28 "../locale/xlocale.h" typedef struct __locale_struct { struct locale_data *__locales[13]; const unsigned short int *__ctype_b; const int *__ctype_tolower; const int *__ctype_toupper; } *__locale_t; # 2 "../include/xlocale.h" 2 # 115 "../string/string.h" 2 extern int __strcoll_l (__const char *__s1, __const char *__s2, __locale_t __l) __attribute__ ((__pure__)); extern size_t __strxfrm_l (char *__dest, __const char *__src, size_t __n, __locale_t __l) ; extern char *strdup (__const char *__s) __attribute__ ((__malloc__)); extern char *strndup (__const char *__string, size_t __n) __attribute__ ((__malloc__)); # 161 "../string/string.h" extern char *strchr (__const char *__s, int __c) __attribute__ ((__pure__)); extern char *strrchr (__const char *__s, int __c) __attribute__ ((__pure__)); extern char *strchrnul (__const char *__s, int __c) __attribute__ ((__pure__)); extern size_t strcspn (__const char *__s, __const char *__reject) __attribute__ ((__pure__)); extern size_t strspn (__const char *__s, __const char *__accept) __attribute__ ((__pure__)); extern char *strpbrk (__const char *__s, __const char *__accept) __attribute__ ((__pure__)); extern char *strstr (__const char *__haystack, __const char *__needle) __attribute__ ((__pure__)); extern char *strcasestr (__const char *__haystack, __const char *__needle) __attribute__ ((__pure__)); extern char *strtok (char *__restrict __s, __const char *__restrict __delim) ; extern char *__strtok_r (char *__restrict __s, __const char *__restrict __delim, char **__restrict __save_ptr) ; extern char *strtok_r (char *__restrict __s, __const char *__restrict __delim, char **__restrict __save_ptr) ; extern void *memmem (__const void *__haystack, size_t __haystacklen, __const void *__needle, size_t __needlelen) __attribute__ ((__pure__)); extern void *__mempcpy (void *__restrict __dest, __const void *__restrict __src, size_t __n) ; extern void *mempcpy (void *__restrict __dest, __const void *__restrict __src, size_t __n) ; extern size_t strlen (__const char *__s) __attribute__ ((__pure__)); extern size_t strnlen (__const char *__string, size_t __maxlen) __attribute__ ((__pure__)); extern char *strerror (int __errnum) ; extern char *strerror_r (int __errnum, char *__buf, size_t __buflen) ; extern void __bzero (void *__s, size_t __n) ; extern void bcopy (__const void *__src, void *__dest, size_t __n) ; extern void bzero (void *__s, size_t __n) ; extern int bcmp (__const void *__s1, __const void *__s2, size_t __n) __attribute__ ((__pure__)); extern char *index (__const char *__s, int __c) __attribute__ ((__pure__)); extern char *rindex (__const char *__s, int __c) __attribute__ ((__pure__)); extern int ffs (int __i) __attribute__ ((__const__)); extern int ffsl (long int __l) __attribute__ ((__const__)); __extension__ extern int ffsll (long long int __ll) __attribute__ ((__const__)); extern int strcasecmp (__const char *__s1, __const char *__s2) __attribute__ ((__pure__)); extern int strncasecmp (__const char *__s1, __const char *__s2, size_t __n) __attribute__ ((__pure__)); extern int __strcasecmp_l (__const char *__s1, __const char *__s2, __locale_t __loc) __attribute__ ((__pure__)); extern int __strncasecmp_l (__const char *__s1, __const char *__s2, size_t __n, __locale_t __loc) __attribute__ ((__pure__)); extern char *strsep (char **__restrict __stringp, __const char *__restrict __delim) ; extern int strverscmp (__const char *__s1, __const char *__s2) __attribute__ ((__pure__)); extern char *strsignal (int __sig) ; extern char *__stpcpy (char *__restrict __dest, __const char *__restrict __src) ; extern char *stpcpy (char *__restrict __dest, __const char *__restrict __src) ; extern char *__stpncpy (char *__restrict __dest, __const char *__restrict __src, size_t __n) ; extern char *stpncpy (char *__restrict __dest, __const char *__restrict __src, size_t __n) ; extern char *strfry (char *__string) ; extern void *memfrob (void *__s, size_t __n) ; extern char *basename (__const char *__filename) ; # 363 "../string/string.h" # 1 "../sysdeps/i386/i486/bits/string.h" 1 # 364 "../string/string.h" 2 # 1 "../include/bits/string2.h" 1 # 1 "../string/bits/string2.h" 1 # 52 "../string/bits/string2.h" # 1 "../include/endian.h" 1 # 53 "../string/bits/string2.h" 2 # 221 "../string/bits/string2.h" extern __inline void *__mempcpy_small (void *, char, char, char, char, __uint16_t, __uint16_t, __uint32_t, __uint32_t, size_t); extern __inline void * __mempcpy_small (void *__dest1, char __src0_1, char __src2_1, char __src4_1, char __src6_1, __uint16_t __src0_2, __uint16_t __src4_2, __uint32_t __src0_4, __uint32_t __src4_4, size_t __srclen) { union { __uint32_t __ui; __uint16_t __usi; unsigned char __uc; unsigned char __c; } *__u = __dest1; switch ((unsigned int) __srclen) { case 1: __u->__c = __src0_1; __u = __extension__ ((void *) __u + 1); break; case 2: __u->__usi = __src0_2; __u = __extension__ ((void *) __u + 2); break; case 3: __u->__usi = __src0_2; __u = __extension__ ((void *) __u + 2); __u->__c = __src2_1; __u = __extension__ ((void *) __u + 1); break; case 4: __u->__ui = __src0_4; __u = __extension__ ((void *) __u + 4); break; case 5: __u->__ui = __src0_4; __u = __extension__ ((void *) __u + 4); __u->__c = __src4_1; __u = __extension__ ((void *) __u + 1); break; case 6: __u->__ui = __src0_4; __u = __extension__ ((void *) __u + 4); __u->__usi = __src4_2; __u = __extension__ ((void *) __u + 2); break; case 7: __u->__ui = __src0_4; __u = __extension__ ((void *) __u + 4); __u->__usi = __src4_2; __u = __extension__ ((void *) __u + 2); __u->__c = __src6_1; __u = __extension__ ((void *) __u + 1); break; case 8: __u->__ui = __src0_4; __u = __extension__ ((void *) __u + 4); __u->__ui = __src4_4; __u = __extension__ ((void *) __u + 4); break; } return (void *) __u; } # 377 "../string/bits/string2.h" extern void *__rawmemchr (const void *__s, int __c); # 405 "../string/bits/string2.h" extern __inline char *__strcpy_small (char *, __uint16_t, __uint16_t, __uint32_t, __uint32_t, size_t); extern __inline char * __strcpy_small (char *__dest, __uint16_t __src0_2, __uint16_t __src4_2, __uint32_t __src0_4, __uint32_t __src4_4, size_t __srclen) { union { __uint32_t __ui; __uint16_t __usi; unsigned char __uc; } *__u = (void *) __dest; switch ((unsigned int) __srclen) { case 1: __u->__uc = '\0'; break; case 2: __u->__usi = __src0_2; break; case 3: __u->__usi = __src0_2; __u = __extension__ ((void *) __u + 2); __u->__uc = '\0'; break; case 4: __u->__ui = __src0_4; break; case 5: __u->__ui = __src0_4; __u = __extension__ ((void *) __u + 4); __u->__uc = '\0'; break; case 6: __u->__ui = __src0_4; __u = __extension__ ((void *) __u + 4); __u->__usi = __src4_2; break; case 7: __u->__ui = __src0_4; __u = __extension__ ((void *) __u + 4); __u->__usi = __src4_2; __u = __extension__ ((void *) __u + 2); __u->__uc = '\0'; break; case 8: __u->__ui = __src0_4; __u = __extension__ ((void *) __u + 4); __u->__ui = __src4_4; break; } return __dest; } # 570 "../string/bits/string2.h" extern __inline char *__stpcpy_small (char *, __uint16_t, __uint16_t, __uint32_t, __uint32_t, size_t); extern __inline char * __stpcpy_small (char *__dest, __uint16_t __src0_2, __uint16_t __src4_2, __uint32_t __src0_4, __uint32_t __src4_4, size_t __srclen) { union { unsigned int __ui; unsigned short int __usi; unsigned char __uc; char __c; } *__u = (void *) __dest; switch ((unsigned int) __srclen) { case 1: __u->__uc = '\0'; break; case 2: __u->__usi = __src0_2; __u = __extension__ ((void *) __u + 1); break; case 3: __u->__usi = __src0_2; __u = __extension__ ((void *) __u + 2); __u->__uc = '\0'; break; case 4: __u->__ui = __src0_4; __u = __extension__ ((void *) __u + 3); break; case 5: __u->__ui = __src0_4; __u = __extension__ ((void *) __u + 4); __u->__uc = '\0'; break; case 6: __u->__ui = __src0_4; __u = __extension__ ((void *) __u + 4); __u->__usi = __src4_2; __u = __extension__ ((void *) __u + 1); break; case 7: __u->__ui = __src0_4; __u = __extension__ ((void *) __u + 4); __u->__usi = __src4_2; __u = __extension__ ((void *) __u + 2); __u->__uc = '\0'; break; case 8: __u->__ui = __src0_4; __u = __extension__ ((void *) __u + 4); __u->__ui = __src4_4; __u = __extension__ ((void *) __u + 3); break; } return &__u->__c; } # 893 "../string/bits/string2.h" extern __inline size_t __strcspn_c1 (__const char *__s, int __reject); extern __inline size_t __strcspn_c1 (__const char *__s, int __reject) { register size_t __result = 0; while (__s[__result] != '\0' && __s[__result] != __reject) ++__result; return __result; } extern __inline size_t __strcspn_c2 (__const char *__s, int __reject1, int __reject2); extern __inline size_t __strcspn_c2 (__const char *__s, int __reject1, int __reject2) { register size_t __result = 0; while (__s[__result] != '\0' && __s[__result] != __reject1 && __s[__result] != __reject2) ++__result; return __result; } extern __inline size_t __strcspn_c3 (__const char *__s, int __reject1, int __reject2, int __reject3); extern __inline size_t __strcspn_c3 (__const char *__s, int __reject1, int __reject2, int __reject3) { register size_t __result = 0; while (__s[__result] != '\0' && __s[__result] != __reject1 && __s[__result] != __reject2 && __s[__result] != __reject3) ++__result; return __result; } # 950 "../string/bits/string2.h" extern __inline size_t __strspn_c1 (__const char *__s, int __accept); extern __inline size_t __strspn_c1 (__const char *__s, int __accept) { register size_t __result = 0; while (__s[__result] == __accept) ++__result; return __result; } extern __inline size_t __strspn_c2 (__const char *__s, int __accept1, int __accept2); extern __inline size_t __strspn_c2 (__const char *__s, int __accept1, int __accept2) { register size_t __result = 0; while (__s[__result] == __accept1 || __s[__result] == __accept2) ++__result; return __result; } extern __inline size_t __strspn_c3 (__const char *__s, int __accept1, int __accept2, int __accept3); extern __inline size_t __strspn_c3 (__const char *__s, int __accept1, int __accept2, int __accept3) { register size_t __result = 0; while (__s[__result] == __accept1 || __s[__result] == __accept2 || __s[__result] == __accept3) ++__result; return __result; } # 1007 "../string/bits/string2.h" extern __inline char *__strpbrk_c2 (__const char *__s, int __accept1, int __accept2); extern __inline char * __strpbrk_c2 (__const char *__s, int __accept1, int __accept2) { while (*__s != '\0' && *__s != __accept1 && *__s != __accept2) ++__s; return *__s == '\0' ? ((void *)0) : (char *) (size_t) __s; } extern __inline char *__strpbrk_c3 (__const char *__s, int __accept1, int __accept2, int __accept3); extern __inline char * __strpbrk_c3 (__const char *__s, int __accept1, int __accept2, int __accept3) { while (*__s != '\0' && *__s != __accept1 && *__s != __accept2 && *__s != __accept3) ++__s; return *__s == '\0' ? ((void *)0) : (char *) (size_t) __s; } # 1059 "../string/bits/string2.h" extern __inline char *__strtok_r_1c (char *__s, char __sep, char **__nextp); extern __inline char * __strtok_r_1c (char *__s, char __sep, char **__nextp) { char *__result; if (__s == ((void *)0)) __s = *__nextp; while (*__s == __sep) ++__s; __result = ((void *)0); if (*__s != '\0') { __result = __s++; while (*__s != '\0') if (*__s++ == __sep) { __s[-1] = '\0'; break; } *__nextp = __s; } return __result; } # 1091 "../string/bits/string2.h" extern char *__strsep_g (char **__stringp, __const char *__delim); # 1109 "../string/bits/string2.h" extern __inline char *__strsep_1c (char **__s, char __reject); extern __inline char * __strsep_1c (char **__s, char __reject) { register char *__retval = *__s; if (__retval != ((void *)0) && (*__s = (__extension__ (__builtin_constant_p (__reject) && (__reject) == '\0' ? (char *) __rawmemchr (__retval, __reject) : strchr (__retval, __reject)))) != ((void *)0)) *(*__s)++ = '\0'; return __retval; } extern __inline char *__strsep_2c (char **__s, char __reject1, char __reject2); extern __inline char * __strsep_2c (char **__s, char __reject1, char __reject2) { register char *__retval = *__s; if (__retval != ((void *)0)) { register char *__cp = __retval; while (1) { if (*__cp == '\0') { __cp = ((void *)0); break; } if (*__cp == __reject1 || *__cp == __reject2) { *__cp++ = '\0'; break; } ++__cp; } *__s = __cp; } return __retval; } extern __inline char *__strsep_3c (char **__s, char __reject1, char __reject2, char __reject3); extern __inline char * __strsep_3c (char **__s, char __reject1, char __reject2, char __reject3) { register char *__retval = *__s; if (__retval != ((void *)0)) { register char *__cp = __retval; while (1) { if (*__cp == '\0') { __cp = ((void *)0); break; } if (*__cp == __reject1 || *__cp == __reject2 || *__cp == __reject3) { *__cp++ = '\0'; break; } ++__cp; } *__s = __cp; } return __retval; } # 1185 "../string/bits/string2.h" # 1 "../include/stdlib.h" 1 # 1 "../stdlib/stdlib.h" 1 # 33 "../stdlib/stdlib.h" # 1 "/usr/lib/gcc/i686-inX-linux/3.0.99.11/include/stddef.h" 1 3 # 34 "../stdlib/stdlib.h" 2 # 527 "../stdlib/stdlib.h" extern void *malloc (size_t __size) __attribute__ ((__malloc__)); extern void *calloc (size_t __nmemb, size_t __size) __attribute__ ((__malloc__)); # 864 "../stdlib/stdlib.h" # 8 "../include/stdlib.h" 2 # 1186 "../string/bits/string2.h" 2 extern char *__strdup (__const char *__string) __attribute__ ((__malloc__)); # 1209 "../string/bits/string2.h" extern char *__strndup (__const char *__string, size_t __n) __attribute__ ((__malloc__)); # 2 "../include/bits/string2.h" 2 # 367 "../string/string.h" 2 # 50 "../include/string.h" 2 # 4 "des_impl.c" 2 # 1 "../include/des.h" 1 # 1 "../sunrpc/rpc/rpc_des.h" 1 # 38 "../sunrpc/rpc/rpc_des.h" # 1 "../include/sys/types.h" 1 # 39 "../sunrpc/rpc/rpc_des.h" 2 enum desdir { ENCRYPT, DECRYPT }; enum desmode { CBC, ECB }; struct desparams { u_char des_key[8]; enum desdir des_dir; enum desmode des_mode; u_char des_ivec[8]; unsigned des_len; union { u_char UDES_data[16]; u_char *UDES_buf; } UDES; }; # 2 "../include/des.h" 2 # 5 "des_impl.c" 2 static const unsigned long des_SPtrans[8][64] = { { 0x00820200, 0x00020000, 0x80800000, 0x80820200, 0x00800000, 0x80020200, 0x80020000, 0x80800000, 0x80020200, 0x00820200, 0x00820000, 0x80000200, 0x80800200, 0x00800000, 0x00000000, 0x80020000, 0x00020000, 0x80000000, 0x00800200, 0x00020200, 0x80820200, 0x00820000, 0x80000200, 0x00800200, 0x80000000, 0x00000200, 0x00020200, 0x80820000, 0x00000200, 0x80800200, 0x80820000, 0x00000000, 0x00000000, 0x80820200, 0x00800200, 0x80020000, 0x00820200, 0x00020000, 0x80000200, 0x00800200, 0x80820000, 0x00000200, 0x00020200, 0x80800000, 0x80020200, 0x80000000, 0x80800000, 0x00820000, 0x80820200, 0x00020200, 0x00820000, 0x80800200, 0x00800000, 0x80000200, 0x80020000, 0x00000000, 0x00020000, 0x00800000, 0x80800200, 0x00820200, 0x80000000, 0x80820000, 0x00000200, 0x80020200}, { 0x10042004, 0x00000000, 0x00042000, 0x10040000, 0x10000004, 0x00002004, 0x10002000, 0x00042000, 0x00002000, 0x10040004, 0x00000004, 0x10002000, 0x00040004, 0x10042000, 0x10040000, 0x00000004, 0x00040000, 0x10002004, 0x10040004, 0x00002000, 0x00042004, 0x10000000, 0x00000000, 0x00040004, 0x10002004, 0x00042004, 0x10042000, 0x10000004, 0x10000000, 0x00040000, 0x00002004, 0x10042004, 0x00040004, 0x10042000, 0x10002000, 0x00042004, 0x10042004, 0x00040004, 0x10000004, 0x00000000, 0x10000000, 0x00002004, 0x00040000, 0x10040004, 0x00002000, 0x10000000, 0x00042004, 0x10002004, 0x10042000, 0x00002000, 0x00000000, 0x10000004, 0x00000004, 0x10042004, 0x00042000, 0x10040000, 0x10040004, 0x00040000, 0x00002004, 0x10002000, 0x10002004, 0x00000004, 0x10040000, 0x00042000}, { 0x41000000, 0x01010040, 0x00000040, 0x41000040, 0x40010000, 0x01000000, 0x41000040, 0x00010040, 0x01000040, 0x00010000, 0x01010000, 0x40000000, 0x41010040, 0x40000040, 0x40000000, 0x41010000, 0x00000000, 0x40010000, 0x01010040, 0x00000040, 0x40000040, 0x41010040, 0x00010000, 0x41000000, 0x41010000, 0x01000040, 0x40010040, 0x01010000, 0x00010040, 0x00000000, 0x01000000, 0x40010040, 0x01010040, 0x00000040, 0x40000000, 0x00010000, 0x40000040, 0x40010000, 0x01010000, 0x41000040, 0x00000000, 0x01010040, 0x00010040, 0x41010000, 0x40010000, 0x01000000, 0x41010040, 0x40000000, 0x40010040, 0x41000000, 0x01000000, 0x41010040, 0x00010000, 0x01000040, 0x41000040, 0x00010040, 0x01000040, 0x00000000, 0x41010000, 0x40000040, 0x41000000, 0x40010040, 0x00000040, 0x01010000}, { 0x00100402, 0x04000400, 0x00000002, 0x04100402, 0x00000000, 0x04100000, 0x04000402, 0x00100002, 0x04100400, 0x04000002, 0x04000000, 0x00000402, 0x04000002, 0x00100402, 0x00100000, 0x04000000, 0x04100002, 0x00100400, 0x00000400, 0x00000002, 0x00100400, 0x04000402, 0x04100000, 0x00000400, 0x00000402, 0x00000000, 0x00100002, 0x04100400, 0x04000400, 0x04100002, 0x04100402, 0x00100000, 0x04100002, 0x00000402, 0x00100000, 0x04000002, 0x00100400, 0x04000400, 0x00000002, 0x04100000, 0x04000402, 0x00000000, 0x00000400, 0x00100002, 0x00000000, 0x04100002, 0x04100400, 0x00000400, 0x04000000, 0x04100402, 0x00100402, 0x00100000, 0x04100402, 0x00000002, 0x04000400, 0x00100402, 0x00100002, 0x00100400, 0x04100000, 0x04000402, 0x00000402, 0x04000000, 0x04000002, 0x04100400}, { 0x02000000, 0x00004000, 0x00000100, 0x02004108, 0x02004008, 0x02000100, 0x00004108, 0x02004000, 0x00004000, 0x00000008, 0x02000008, 0x00004100, 0x02000108, 0x02004008, 0x02004100, 0x00000000, 0x00004100, 0x02000000, 0x00004008, 0x00000108, 0x02000100, 0x00004108, 0x00000000, 0x02000008, 0x00000008, 0x02000108, 0x02004108, 0x00004008, 0x02004000, 0x00000100, 0x00000108, 0x02004100, 0x02004100, 0x02000108, 0x00004008, 0x02004000, 0x00004000, 0x00000008, 0x02000008, 0x02000100, 0x02000000, 0x00004100, 0x02004108, 0x00000000, 0x00004108, 0x02000000, 0x00000100, 0x00004008, 0x02000108, 0x00000100, 0x00000000, 0x02004108, 0x02004008, 0x02004100, 0x00000108, 0x00004000, 0x00004100, 0x02004008, 0x02000100, 0x00000108, 0x00000008, 0x00004108, 0x02004000, 0x02000008}, { 0x20000010, 0x00080010, 0x00000000, 0x20080800, 0x00080010, 0x00000800, 0x20000810, 0x00080000, 0x00000810, 0x20080810, 0x00080800, 0x20000000, 0x20000800, 0x20000010, 0x20080000, 0x00080810, 0x00080000, 0x20000810, 0x20080010, 0x00000000, 0x00000800, 0x00000010, 0x20080800, 0x20080010, 0x20080810, 0x20080000, 0x20000000, 0x00000810, 0x00000010, 0x00080800, 0x00080810, 0x20000800, 0x00000810, 0x20000000, 0x20000800, 0x00080810, 0x20080800, 0x00080010, 0x00000000, 0x20000800, 0x20000000, 0x00000800, 0x20080010, 0x00080000, 0x00080010, 0x20080810, 0x00080800, 0x00000010, 0x20080810, 0x00080800, 0x00080000, 0x20000810, 0x20000010, 0x20080000, 0x00080810, 0x00000000, 0x00000800, 0x20000010, 0x20000810, 0x20080800, 0x20080000, 0x00000810, 0x00000010, 0x20080010}, { 0x00001000, 0x00000080, 0x00400080, 0x00400001, 0x00401081, 0x00001001, 0x00001080, 0x00000000, 0x00400000, 0x00400081, 0x00000081, 0x00401000, 0x00000001, 0x00401080, 0x00401000, 0x00000081, 0x00400081, 0x00001000, 0x00001001, 0x00401081, 0x00000000, 0x00400080, 0x00400001, 0x00001080, 0x00401001, 0x00001081, 0x00401080, 0x00000001, 0x00001081, 0x00401001, 0x00000080, 0x00400000, 0x00001081, 0x00401000, 0x00401001, 0x00000081, 0x00001000, 0x00000080, 0x00400000, 0x00401001, 0x00400081, 0x00001081, 0x00001080, 0x00000000, 0x00000080, 0x00400001, 0x00000001, 0x00400080, 0x00000000, 0x00400081, 0x00400080, 0x00001080, 0x00000081, 0x00001000, 0x00401081, 0x00400000, 0x00401080, 0x00000001, 0x00001001, 0x00401081, 0x00400001, 0x00401080, 0x00401000, 0x00001001}, { 0x08200020, 0x08208000, 0x00008020, 0x00000000, 0x08008000, 0x00200020, 0x08200000, 0x08208020, 0x00000020, 0x08000000, 0x00208000, 0x00008020, 0x00208020, 0x08008020, 0x08000020, 0x08200000, 0x00008000, 0x00208020, 0x00200020, 0x08008000, 0x08208020, 0x08000020, 0x00000000, 0x00208000, 0x08000000, 0x00200000, 0x08008020, 0x08200020, 0x00200000, 0x00008000, 0x08208000, 0x00000020, 0x00200000, 0x00008000, 0x08000020, 0x08208020, 0x00008020, 0x08000000, 0x00000000, 0x00208000, 0x08200020, 0x08008020, 0x08008000, 0x00200020, 0x08208000, 0x00000020, 0x00200020, 0x08008000, 0x08208020, 0x00200000, 0x08200000, 0x08000020, 0x00208000, 0x00008020, 0x08008020, 0x08200000, 0x00000020, 0x08208000, 0x00208020, 0x00000000, 0x08000000, 0x08200020, 0x00008000, 0x00208020}}; static const unsigned long des_skb[8][64] = { { 0x00000000, 0x00000010, 0x20000000, 0x20000010, 0x00010000, 0x00010010, 0x20010000, 0x20010010, 0x00000800, 0x00000810, 0x20000800, 0x20000810, 0x00010800, 0x00010810, 0x20010800, 0x20010810, 0x00000020, 0x00000030, 0x20000020, 0x20000030, 0x00010020, 0x00010030, 0x20010020, 0x20010030, 0x00000820, 0x00000830, 0x20000820, 0x20000830, 0x00010820, 0x00010830, 0x20010820, 0x20010830, 0x00080000, 0x00080010, 0x20080000, 0x20080010, 0x00090000, 0x00090010, 0x20090000, 0x20090010, 0x00080800, 0x00080810, 0x20080800, 0x20080810, 0x00090800, 0x00090810, 0x20090800, 0x20090810, 0x00080020, 0x00080030, 0x20080020, 0x20080030, 0x00090020, 0x00090030, 0x20090020, 0x20090030, 0x00080820, 0x00080830, 0x20080820, 0x20080830, 0x00090820, 0x00090830, 0x20090820, 0x20090830}, { 0x00000000, 0x02000000, 0x00002000, 0x02002000, 0x00200000, 0x02200000, 0x00202000, 0x02202000, 0x00000004, 0x02000004, 0x00002004, 0x02002004, 0x00200004, 0x02200004, 0x00202004, 0x02202004, 0x00000400, 0x02000400, 0x00002400, 0x02002400, 0x00200400, 0x02200400, 0x00202400, 0x02202400, 0x00000404, 0x02000404, 0x00002404, 0x02002404, 0x00200404, 0x02200404, 0x00202404, 0x02202404, 0x10000000, 0x12000000, 0x10002000, 0x12002000, 0x10200000, 0x12200000, 0x10202000, 0x12202000, 0x10000004, 0x12000004, 0x10002004, 0x12002004, 0x10200004, 0x12200004, 0x10202004, 0x12202004, 0x10000400, 0x12000400, 0x10002400, 0x12002400, 0x10200400, 0x12200400, 0x10202400, 0x12202400, 0x10000404, 0x12000404, 0x10002404, 0x12002404, 0x10200404, 0x12200404, 0x10202404, 0x12202404}, { 0x00000000, 0x00000001, 0x00040000, 0x00040001, 0x01000000, 0x01000001, 0x01040000, 0x01040001, 0x00000002, 0x00000003, 0x00040002, 0x00040003, 0x01000002, 0x01000003, 0x01040002, 0x01040003, 0x00000200, 0x00000201, 0x00040200, 0x00040201, 0x01000200, 0x01000201, 0x01040200, 0x01040201, 0x00000202, 0x00000203, 0x00040202, 0x00040203, 0x01000202, 0x01000203, 0x01040202, 0x01040203, 0x08000000, 0x08000001, 0x08040000, 0x08040001, 0x09000000, 0x09000001, 0x09040000, 0x09040001, 0x08000002, 0x08000003, 0x08040002, 0x08040003, 0x09000002, 0x09000003, 0x09040002, 0x09040003, 0x08000200, 0x08000201, 0x08040200, 0x08040201, 0x09000200, 0x09000201, 0x09040200, 0x09040201, 0x08000202, 0x08000203, 0x08040202, 0x08040203, 0x09000202, 0x09000203, 0x09040202, 0x09040203}, { 0x00000000, 0x00100000, 0x00000100, 0x00100100, 0x00000008, 0x00100008, 0x00000108, 0x00100108, 0x00001000, 0x00101000, 0x00001100, 0x00101100, 0x00001008, 0x00101008, 0x00001108, 0x00101108, 0x04000000, 0x04100000, 0x04000100, 0x04100100, 0x04000008, 0x04100008, 0x04000108, 0x04100108, 0x04001000, 0x04101000, 0x04001100, 0x04101100, 0x04001008, 0x04101008, 0x04001108, 0x04101108, 0x00020000, 0x00120000, 0x00020100, 0x00120100, 0x00020008, 0x00120008, 0x00020108, 0x00120108, 0x00021000, 0x00121000, 0x00021100, 0x00121100, 0x00021008, 0x00121008, 0x00021108, 0x00121108, 0x04020000, 0x04120000, 0x04020100, 0x04120100, 0x04020008, 0x04120008, 0x04020108, 0x04120108, 0x04021000, 0x04121000, 0x04021100, 0x04121100, 0x04021008, 0x04121008, 0x04021108, 0x04121108}, { 0x00000000, 0x10000000, 0x00010000, 0x10010000, 0x00000004, 0x10000004, 0x00010004, 0x10010004, 0x20000000, 0x30000000, 0x20010000, 0x30010000, 0x20000004, 0x30000004, 0x20010004, 0x30010004, 0x00100000, 0x10100000, 0x00110000, 0x10110000, 0x00100004, 0x10100004, 0x00110004, 0x10110004, 0x20100000, 0x30100000, 0x20110000, 0x30110000, 0x20100004, 0x30100004, 0x20110004, 0x30110004, 0x00001000, 0x10001000, 0x00011000, 0x10011000, 0x00001004, 0x10001004, 0x00011004, 0x10011004, 0x20001000, 0x30001000, 0x20011000, 0x30011000, 0x20001004, 0x30001004, 0x20011004, 0x30011004, 0x00101000, 0x10101000, 0x00111000, 0x10111000, 0x00101004, 0x10101004, 0x00111004, 0x10111004, 0x20101000, 0x30101000, 0x20111000, 0x30111000, 0x20101004, 0x30101004, 0x20111004, 0x30111004}, { 0x00000000, 0x08000000, 0x00000008, 0x08000008, 0x00000400, 0x08000400, 0x00000408, 0x08000408, 0x00020000, 0x08020000, 0x00020008, 0x08020008, 0x00020400, 0x08020400, 0x00020408, 0x08020408, 0x00000001, 0x08000001, 0x00000009, 0x08000009, 0x00000401, 0x08000401, 0x00000409, 0x08000409, 0x00020001, 0x08020001, 0x00020009, 0x08020009, 0x00020401, 0x08020401, 0x00020409, 0x08020409, 0x02000000, 0x0A000000, 0x02000008, 0x0A000008, 0x02000400, 0x0A000400, 0x02000408, 0x0A000408, 0x02020000, 0x0A020000, 0x02020008, 0x0A020008, 0x02020400, 0x0A020400, 0x02020408, 0x0A020408, 0x02000001, 0x0A000001, 0x02000009, 0x0A000009, 0x02000401, 0x0A000401, 0x02000409, 0x0A000409, 0x02020001, 0x0A020001, 0x02020009, 0x0A020009, 0x02020401, 0x0A020401, 0x02020409, 0x0A020409}, { 0x00000000, 0x00000100, 0x00080000, 0x00080100, 0x01000000, 0x01000100, 0x01080000, 0x01080100, 0x00000010, 0x00000110, 0x00080010, 0x00080110, 0x01000010, 0x01000110, 0x01080010, 0x01080110, 0x00200000, 0x00200100, 0x00280000, 0x00280100, 0x01200000, 0x01200100, 0x01280000, 0x01280100, 0x00200010, 0x00200110, 0x00280010, 0x00280110, 0x01200010, 0x01200110, 0x01280010, 0x01280110, 0x00000200, 0x00000300, 0x00080200, 0x00080300, 0x01000200, 0x01000300, 0x01080200, 0x01080300, 0x00000210, 0x00000310, 0x00080210, 0x00080310, 0x01000210, 0x01000310, 0x01080210, 0x01080310, 0x00200200, 0x00200300, 0x00280200, 0x00280300, 0x01200200, 0x01200300, 0x01280200, 0x01280300, 0x00200210, 0x00200310, 0x00280210, 0x00280310, 0x01200210, 0x01200310, 0x01280210, 0x01280310}, { 0x00000000, 0x04000000, 0x00040000, 0x04040000, 0x00000002, 0x04000002, 0x00040002, 0x04040002, 0x00002000, 0x04002000, 0x00042000, 0x04042000, 0x00002002, 0x04002002, 0x00042002, 0x04042002, 0x00000020, 0x04000020, 0x00040020, 0x04040020, 0x00000022, 0x04000022, 0x00040022, 0x04040022, 0x00002020, 0x04002020, 0x00042020, 0x04042020, 0x00002022, 0x04002022, 0x00042022, 0x04042022, 0x00000800, 0x04000800, 0x00040800, 0x04040800, 0x00000802, 0x04000802, 0x00040802, 0x04040802, 0x00002800, 0x04002800, 0x00042800, 0x04042800, 0x00002802, 0x04002802, 0x00042802, 0x04042802, 0x00000820, 0x04000820, 0x00040820, 0x04040820, 0x00000822, 0x04000822, 0x00040822, 0x04040822, 0x00002820, 0x04002820, 0x00042820, 0x04042820, 0x00002822, 0x04002822, 0x00042822, 0x04042822}, }; # 386 "des_impl.c" static const char shifts2[16] = {0, 0, 1, 1, 1, 1, 1, 1, 0, 1, 1, 1, 1, 1, 1, 0}; static void des_set_key (char *, unsigned long *) __attribute__ ((regparm (3), stdcall)); static void des_encrypt (unsigned long *, unsigned long *, int) __attribute__ ((regparm (3), stdcall)); int _des_crypt (char *, unsigned, struct desparams *); static void __attribute__ ((regparm (3), stdcall)) des_set_key (char *key, unsigned long *schedule) { register unsigned long c, d, t, s; register unsigned char *in; register unsigned long *k; register int i; k = (unsigned long *) schedule; in = (unsigned char *) key; (c =((unsigned long)(*((in)++))) , c|=((unsigned long)(*((in)++)))<< 8, c|=((unsigned long)(*((in)++)))<<16, c|=((unsigned long)(*((in)++)))<<24); (d =((unsigned long)(*((in)++))) , d|=((unsigned long)(*((in)++)))<< 8, d|=((unsigned long)(*((in)++)))<<16, d|=((unsigned long)(*((in)++)))<<24); ((t)=((((d)>>(4))^(c))&(0x0f0f0f0f)), (c)^=(t), (d)^=((t)<<(4))); ((t)=((((c)<<(16-(-2)))^(c))&(0xcccc0000)), (c)=(c)^(t)^(t>>(16-(-2)))); ((t)=((((d)<<(16-(-2)))^(d))&(0xcccc0000)), (d)=(d)^(t)^(t>>(16-(-2)))); ((t)=((((d)>>(1))^(c))&(0x55555555)), (c)^=(t), (d)^=((t)<<(1))); ((t)=((((c)>>(8))^(d))&(0x00ff00ff)), (d)^=(t), (c)^=((t)<<(8))); ((t)=((((d)>>(1))^(c))&(0x55555555)), (c)^=(t), (d)^=((t)<<(1))); d = (((d & 0x000000ff) << 16) | (d & 0x0000ff00) | ((d & 0x00ff0000) >> 16) | ((c & 0xf0000000) >> 4)); c &= 0x0fffffff; for (i = 0; i < 16; i++) { if (shifts2[i]) { c = ((c >> 2) | (c << 26)); d = ((d >> 2) | (d << 26)); } else { c = ((c >> 1) | (c << 27)); d = ((d >> 1) | (d << 27)); } c &= 0x0fffffff; d &= 0x0fffffff; s = des_skb[0][(c) & 0x3f] | des_skb[1][((c >> 6) & 0x03) | ((c >> 7) & 0x3c)] | des_skb[2][((c >> 13) & 0x0f) | ((c >> 14) & 0x30)] | des_skb[3][((c >> 20) & 0x01) | ((c >> 21) & 0x06) | ((c >> 22) & 0x38)]; t = des_skb[4][(d) & 0x3f] | des_skb[5][((d >> 7) & 0x03) | ((d >> 8) & 0x3c)] | des_skb[6][(d >> 15) & 0x3f] | des_skb[7][((d >> 21) & 0x0f) | ((d >> 22) & 0x30)]; *(k++) = ((t << 16) | (s & 0x0000ffff)) & 0xffffffff; s = ((s >> 16) | (t & 0xffff0000)); s = (s << 4) | (s >> 28); *(k++) = s & 0xffffffff; } } static void __attribute__ ((regparm (3), stdcall)) des_encrypt (unsigned long *buf, unsigned long *schedule, int encrypt) { register unsigned long l, r, t, u; register int i; register unsigned long *s; l = buf[0]; r = buf[1]; ((t)=((((r)>>(4))^(l))&(0x0f0f0f0f)), (l)^=(t), (r)^=((t)<<(4))); ((t)=((((l)>>(16))^(r))&(0x0000ffff)), (r)^=(t), (l)^=((t)<<(16))); ((t)=((((r)>>(2))^(l))&(0x33333333)), (l)^=(t), (r)^=((t)<<(2))); ((t)=((((l)>>(8))^(r))&(0x00ff00ff)), (r)^=(t), (l)^=((t)<<(8))); ((t)=((((r)>>(1))^(l))&(0x55555555)), (l)^=(t), (r)^=((t)<<(1))); # 486 "des_impl.c" t = (r << 1) | (r >> 31); r = (l << 1) | (l >> 31); l = t; l &= 0xffffffff; r &= 0xffffffff; s = (unsigned long *) schedule; if (encrypt) { for (i = 0; i < 32; i += 4) { u=(r^s[i + 0 ]); t=r^s[i + 0 +1]; t=((t>>4)+(t<<28)); l^= des_SPtrans[1][(t )&0x3f]| des_SPtrans[3][(t>> 8)&0x3f]| des_SPtrans[5][(t>>16)&0x3f]| des_SPtrans[7][(t>>24)&0x3f]| des_SPtrans[0][(u )&0x3f]| des_SPtrans[2][(u>> 8)&0x3f]| des_SPtrans[4][(u>>16)&0x3f]| des_SPtrans[6][(u>>24)&0x3f];; u=(l^s[i + 2 ]); t=l^s[i + 2 +1]; t=((t>>4)+(t<<28)); r^= des_SPtrans[1][(t )&0x3f]| des_SPtrans[3][(t>> 8)&0x3f]| des_SPtrans[5][(t>>16)&0x3f]| des_SPtrans[7][(t>>24)&0x3f]| des_SPtrans[0][(u )&0x3f]| des_SPtrans[2][(u>> 8)&0x3f]| des_SPtrans[4][(u>>16)&0x3f]| des_SPtrans[6][(u>>24)&0x3f];; } } else { for (i = 30; i > 0; i -= 4) { u=(r^s[i - 0 ]); t=r^s[i - 0 +1]; t=((t>>4)+(t<<28)); l^= des_SPtrans[1][(t )&0x3f]| des_SPtrans[3][(t>> 8)&0x3f]| des_SPtrans[5][(t>>16)&0x3f]| des_SPtrans[7][(t>>24)&0x3f]| des_SPtrans[0][(u )&0x3f]| des_SPtrans[2][(u>> 8)&0x3f]| des_SPtrans[4][(u>>16)&0x3f]| des_SPtrans[6][(u>>24)&0x3f];; u=(l^s[i - 2 ]); t=l^s[i - 2 +1]; t=((t>>4)+(t<<28)); r^= des_SPtrans[1][(t )&0x3f]| des_SPtrans[3][(t>> 8)&0x3f]| des_SPtrans[5][(t>>16)&0x3f]| des_SPtrans[7][(t>>24)&0x3f]| des_SPtrans[0][(u )&0x3f]| des_SPtrans[2][(u>> 8)&0x3f]| des_SPtrans[4][(u>>16)&0x3f]| des_SPtrans[6][(u>>24)&0x3f];; } } l = (l >> 1) | (l << 31); r = (r >> 1) | (r << 31); l &= 0xffffffff; r &= 0xffffffff; ((t)=((((r)>>(1))^(l))&(0x55555555)), (l)^=(t), (r)^=((t)<<(1))); ((t)=((((l)>>(8))^(r))&(0x00ff00ff)), (r)^=(t), (l)^=((t)<<(8))); ((t)=((((r)>>(2))^(l))&(0x33333333)), (l)^=(t), (r)^=((t)<<(2))); ((t)=((((l)>>(16))^(r))&(0x0000ffff)), (r)^=(t), (l)^=((t)<<(16))); ((t)=((((r)>>(4))^(l))&(0x0f0f0f0f)), (l)^=(t), (r)^=((t)<<(4))); buf[0] = l; buf[1] = r; l = r = t = u = 0; } int _des_crypt (char *buf, unsigned len, struct desparams *desp) { unsigned long schedule[32]; register unsigned long tin0, tin1; register unsigned long tout0, tout1, xor0, xor1; register unsigned char *in, *out; unsigned long tbuf[2]; unsigned char *iv, *oiv; int cbc_mode; cbc_mode = (desp->des_mode == CBC) ? 1 : 0; in = (unsigned char *) buf; out = (unsigned char *) buf; oiv = iv = (unsigned char *) desp->des_ivec; des_set_key (desp->des_key, schedule); tin0 = tin1 = 0; if (desp->des_dir == ENCRYPT) { (tout0 =((unsigned long)(*((iv)++))) , tout0|=((unsigned long)(*((iv)++)))<< 8, tout0|=((unsigned long)(*((iv)++)))<<16, tout0|=((unsigned long)(*((iv)++)))<<24); (tout1 =((unsigned long)(*((iv)++))) , tout1|=((unsigned long)(*((iv)++)))<< 8, tout1|=((unsigned long)(*((iv)++)))<<16, tout1|=((unsigned long)(*((iv)++)))<<24); for (; len > 0; len -= 8) { (tin0 =((unsigned long)(*((in)++))) , tin0|=((unsigned long)(*((in)++)))<< 8, tin0|=((unsigned long)(*((in)++)))<<16, tin0|=((unsigned long)(*((in)++)))<<24); (tin1 =((unsigned long)(*((in)++))) , tin1|=((unsigned long)(*((in)++)))<< 8, tin1|=((unsigned long)(*((in)++)))<<16, tin1|=((unsigned long)(*((in)++)))<<24); if (cbc_mode) { tin0 ^= tout0; tin1 ^= tout1; } tbuf[0] = tin0; tbuf[1] = tin1; des_encrypt (tbuf, schedule, 1); tout0 = tbuf[0]; tout1 = tbuf[1]; (*((out)++)=(unsigned char)(((tout0) )&0xff), *((out)++)=(unsigned char)(((tout0)>> 8)&0xff), *((out)++)=(unsigned char)(((tout0)>>16)&0xff), *((out)++)=(unsigned char)(((tout0)>>24)&0xff)); (*((out)++)=(unsigned char)(((tout1) )&0xff), *((out)++)=(unsigned char)(((tout1)>> 8)&0xff), *((out)++)=(unsigned char)(((tout1)>>16)&0xff), *((out)++)=(unsigned char)(((tout1)>>24)&0xff)); } (*((oiv)++)=(unsigned char)(((tout0) )&0xff), *((oiv)++)=(unsigned char)(((tout0)>> 8)&0xff), *((oiv)++)=(unsigned char)(((tout0)>>16)&0xff), *((oiv)++)=(unsigned char)(((tout0)>>24)&0xff)); (*((oiv)++)=(unsigned char)(((tout1) )&0xff), *((oiv)++)=(unsigned char)(((tout1)>> 8)&0xff), *((oiv)++)=(unsigned char)(((tout1)>>16)&0xff), *((oiv)++)=(unsigned char)(((tout1)>>24)&0xff)); } else { (xor0 =((unsigned long)(*((iv)++))) , xor0|=((unsigned long)(*((iv)++)))<< 8, xor0|=((unsigned long)(*((iv)++)))<<16, xor0|=((unsigned long)(*((iv)++)))<<24); (xor1 =((unsigned long)(*((iv)++))) , xor1|=((unsigned long)(*((iv)++)))<< 8, xor1|=((unsigned long)(*((iv)++)))<<16, xor1|=((unsigned long)(*((iv)++)))<<24); for (; len > 0; len -= 8) { (tin0 =((unsigned long)(*((in)++))) , tin0|=((unsigned long)(*((in)++)))<< 8, tin0|=((unsigned long)(*((in)++)))<<16, tin0|=((unsigned long)(*((in)++)))<<24); (tin1 =((unsigned long)(*((in)++))) , tin1|=((unsigned long)(*((in)++)))<< 8, tin1|=((unsigned long)(*((in)++)))<<16, tin1|=((unsigned long)(*((in)++)))<<24); tbuf[0] = tin0; tbuf[1] = tin1; des_encrypt (tbuf, schedule, 0); if (cbc_mode) { tout0 = tbuf[0] ^ xor0; tout1 = tbuf[1] ^ xor1; xor0 = tin0; xor1 = tin1; } else { tout0 = tbuf[0]; tout1 = tbuf[1]; } (*((out)++)=(unsigned char)(((tout0) )&0xff), *((out)++)=(unsigned char)(((tout0)>> 8)&0xff), *((out)++)=(unsigned char)(((tout0)>>16)&0xff), *((out)++)=(unsigned char)(((tout0)>>24)&0xff)); (*((out)++)=(unsigned char)(((tout1) )&0xff), *((out)++)=(unsigned char)(((tout1)>> 8)&0xff), *((out)++)=(unsigned char)(((tout1)>>16)&0xff), *((out)++)=(unsigned char)(((tout1)>>24)&0xff)); } (*((oiv)++)=(unsigned char)(((tin0) )&0xff), *((oiv)++)=(unsigned char)(((tin0)>> 8)&0xff), *((oiv)++)=(unsigned char)(((tin0)>>16)&0xff), *((oiv)++)=(unsigned char)(((tin0)>>24)&0xff)); (*((oiv)++)=(unsigned char)(((tin1) )&0xff), *((oiv)++)=(unsigned char)(((tin1)>> 8)&0xff), *((oiv)++)=(unsigned char)(((tin1)>>16)&0xff), *((oiv)++)=(unsigned char)(((tin1)>>24)&0xff)); } tin0 = tin1 = tout0 = tout1 = xor0 = xor1 = 0; tbuf[0] = tbuf[1] = 0; __builtin_memset (schedule, '\0', sizeof (schedule)); return (1); } >Fix: >Release-Note: >Audit-Trail: >Unformatted:
reply other threads:[~2002-04-26 5:16 UTC|newest] Thread overview: [no followups] expand[flat|nested] mbox.gz Atom feed
Reply instructions: You may reply publicly to this message via plain-text email using any one of the following methods: * Save the following mbox file, import it into your mail client, and reply-to-all from there: mbox Avoid top-posting and favor interleaved quoting: https://en.wikipedia.org/wiki/Posting_style#Interleaved_style * Reply using the --to, --cc, and --in-reply-to switches of git-send-email(1): git send-email \ --in-reply-to=20020426051423.10673.qmail@mwg.inxservices.lan \ --to=tmwg-gcc@inxservices.com \ --cc=gcc-gnats@gcc.gnu.org \ --cc=tmwg@inxservices.com \ /path/to/YOUR_REPLY https://kernel.org/pub/software/scm/git/docs/git-send-email.html * If your mail client supports setting the In-Reply-To header via mailto: links, try the mailto: linkBe sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox; as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).