Login
[x]
Log in using an account from:
Fedora Account System
Red Hat Associate
Red Hat Customer
Or login using a Red Hat Bugzilla account
Forgot Password
Login:
Hide Forgot
Create an Account
Red Hat Bugzilla – Attachment 682821 Details for
Bug 901750
gcc internal compiler error in extract_insn, at recog.c:2084 on x86_64
[?]
New
Simple Search
Advanced Search
My Links
Browse
Requests
Reports
Current State
Search
Tabular reports
Graphical reports
Duplicates
Other Reports
User Changes
Plotly Reports
Bug Status
Bug Severity
Non-Defaults
|
Product Dashboard
Help
Page Help!
Bug Writing Guidelines
What's new
Browser Support Policy
5.0.4.rh83 Release notes
FAQ
Guides index
User guide
Web Services
Contact
Legal
This site requires JavaScript to be enabled to function correctly, please enable it.
Preprocessed source dumped by gcc upon internal error
EL5-gcc-4.1.2-internal-compiler-error-preprocessed.c (text/x-csrc), 31.67 KB, created by
Ondrej Mikle
on 2013-01-19 00:04:37 UTC
(
hide
)
Description:
Preprocessed source dumped by gcc upon internal error
Filename:
MIME Type:
Creator:
Ondrej Mikle
Created:
2013-01-19 00:04:37 UTC
Size:
31.67 KB
patch
obsolete
>// /usr/libexec/gcc/x86_64-redhat-linux/4.1.2/cc1 -quiet -I. -I. -I. -I./src/ext -Isrc/ext -I./src/common -Isrc/common -I./src/or -Isrc/or -I./src/common -MD src/ext/curve25519_donna/src_common_libcurve25519_donna_a-curve25519-donna-c64.d -MF src/ext/curve25519_donna/.deps/src_common_libcurve25519_donna_a-curve25519-donna-c64.Tpo -MP -MT src/ext/curve25519_donna/src_common_libcurve25519_donna_a-curve25519-donna-c64.o -MQ src/ext/curve25519_donna/src_common_libcurve25519_donna_a-curve25519-donna-c64.o -DHAVE_CONFIG_H -DSHARE_DATADIR="/usr/local/share" -DLOCALSTATEDIR="/usr/local/var" -DBINDIR="/usr/local/bin" -D_FORTIFY_SOURCE=2 src/ext/curve25519_donna/curve25519-donna-c64.c -quiet -dumpbase curve25519-donna-c64.c -mtune=generic -auxbase-strip src/ext/curve25519_donna/src_common_libcurve25519_donna_a-curve25519-donna-c64.o -g -O2 -Wstack-protector -Wall -fstack-protector-all -fwrapv -fPIE -fno-strict-aliasing --param ssp-buffer-size=1 -o - -frandom-seed=0 ># 1 "src/ext/curve25519_donna/curve25519-donna-c64.c" ># 1 "/home/ondro/Tor/rpm-tor-gcc-test//" ># 1 "<built-in>" ># 1 "<command line>" ># 1 "src/ext/curve25519_donna/curve25519-donna-c64.c" ># 25 "src/ext/curve25519_donna/curve25519-donna-c64.c" ># 1 "/usr/include/string.h" 1 3 4 ># 26 "/usr/include/string.h" 3 4 ># 1 "/usr/include/features.h" 1 3 4 ># 329 "/usr/include/features.h" 3 4 ># 1 "/usr/include/sys/cdefs.h" 1 3 4 ># 313 "/usr/include/sys/cdefs.h" 3 4 ># 1 "/usr/include/bits/wordsize.h" 1 3 4 ># 314 "/usr/include/sys/cdefs.h" 2 3 4 ># 330 "/usr/include/features.h" 2 3 4 ># 352 "/usr/include/features.h" 3 4 ># 1 "/usr/include/gnu/stubs.h" 1 3 4 > > > ># 1 "/usr/include/bits/wordsize.h" 1 3 4 ># 5 "/usr/include/gnu/stubs.h" 2 3 4 > > > > ># 1 "/usr/include/gnu/stubs-64.h" 1 3 4 ># 10 "/usr/include/gnu/stubs.h" 2 3 4 ># 353 "/usr/include/features.h" 2 3 4 ># 27 "/usr/include/string.h" 2 3 4 > > > > > > ># 1 "/usr/lib/gcc/x86_64-redhat-linux/4.1.2/include/stddef.h" 1 3 4 ># 214 "/usr/lib/gcc/x86_64-redhat-linux/4.1.2/include/stddef.h" 3 4 >typedef long unsigned int size_t; ># 34 "/usr/include/string.h" 2 3 4 > > > > >extern void *memcpy (void *__restrict __dest, > __const void *__restrict __src, size_t __n) > __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1, 2))); > > >extern void *memmove (void *__dest, __const void *__src, size_t __n) > __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1, 2))); > > > > > > >extern void *memccpy (void *__restrict __dest, __const void *__restrict __src, > int __c, size_t __n) > __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1, 2))); > > > > > >extern void *memset (void *__s, int __c, size_t __n) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1))); > > >extern int memcmp (__const void *__s1, __const void *__s2, size_t __n) > __attribute__ ((__nothrow__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2))); > > >extern void *memchr (__const void *__s, int __c, size_t __n) > __attribute__ ((__nothrow__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1))); > ># 82 "/usr/include/string.h" 3 4 > > >extern char *strcpy (char *__restrict __dest, __const char *__restrict __src) > __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1, 2))); > >extern char *strncpy (char *__restrict __dest, > __const char *__restrict __src, size_t __n) > __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1, 2))); > > >extern char *strcat (char *__restrict __dest, __const char *__restrict __src) > __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1, 2))); > >extern char *strncat (char *__restrict __dest, __const char *__restrict __src, > size_t __n) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1, 2))); > > >extern int strcmp (__const char *__s1, __const char *__s2) > __attribute__ ((__nothrow__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2))); > >extern int strncmp (__const char *__s1, __const char *__s2, size_t __n) > __attribute__ ((__nothrow__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2))); > > >extern int strcoll (__const char *__s1, __const char *__s2) > __attribute__ ((__nothrow__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2))); > >extern size_t strxfrm (char *__restrict __dest, > __const char *__restrict __src, size_t __n) > __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (2))); > ># 130 "/usr/include/string.h" 3 4 >extern char *strdup (__const char *__s) > __attribute__ ((__nothrow__)) __attribute__ ((__malloc__)) __attribute__ ((__nonnull__ (1))); ># 165 "/usr/include/string.h" 3 4 > > >extern char *strchr (__const char *__s, int __c) > __attribute__ ((__nothrow__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1))); > >extern char *strrchr (__const char *__s, int __c) > __attribute__ ((__nothrow__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1))); > ># 181 "/usr/include/string.h" 3 4 > > > >extern size_t strcspn (__const char *__s, __const char *__reject) > __attribute__ ((__nothrow__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2))); > > >extern size_t strspn (__const char *__s, __const char *__accept) > __attribute__ ((__nothrow__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2))); > >extern char *strpbrk (__const char *__s, __const char *__accept) > __attribute__ ((__nothrow__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2))); > >extern char *strstr (__const char *__haystack, __const char *__needle) > __attribute__ ((__nothrow__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2))); > > > >extern char *strtok (char *__restrict __s, __const char *__restrict __delim) > __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (2))); > > > > >extern char *__strtok_r (char *__restrict __s, > __const char *__restrict __delim, > char **__restrict __save_ptr) > __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (2, 3))); > >extern char *strtok_r (char *__restrict __s, __const char *__restrict __delim, > char **__restrict __save_ptr) > __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (2, 3))); ># 240 "/usr/include/string.h" 3 4 > > >extern size_t strlen (__const char *__s) > __attribute__ ((__nothrow__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1))); > ># 254 "/usr/include/string.h" 3 4 > > >extern char *strerror (int __errnum) __attribute__ ((__nothrow__)); > ># 270 "/usr/include/string.h" 3 4 >extern int strerror_r (int __errnum, char *__buf, size_t __buflen) __asm__ ("" "__xpg_strerror_r") __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (2))); ># 288 "/usr/include/string.h" 3 4 >extern void __bzero (void *__s, size_t __n) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1))); > > > >extern void bcopy (__const void *__src, void *__dest, size_t __n) > __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1, 2))); > > >extern void bzero (void *__s, size_t __n) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1))); > > >extern int bcmp (__const void *__s1, __const void *__s2, size_t __n) > __attribute__ ((__nothrow__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2))); > > >extern char *index (__const char *__s, int __c) > __attribute__ ((__nothrow__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1))); > > >extern char *rindex (__const char *__s, int __c) > __attribute__ ((__nothrow__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1))); > > > >extern int ffs (int __i) __attribute__ ((__nothrow__)) __attribute__ ((__const__)); ># 325 "/usr/include/string.h" 3 4 >extern int strcasecmp (__const char *__s1, __const char *__s2) > __attribute__ ((__nothrow__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2))); > > >extern int strncasecmp (__const char *__s1, __const char *__s2, size_t __n) > __attribute__ ((__nothrow__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2))); ># 348 "/usr/include/string.h" 3 4 >extern char *strsep (char **__restrict __stringp, > __const char *__restrict __delim) > __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1, 2))); ># 414 "/usr/include/string.h" 3 4 ># 1 "/usr/include/bits/string.h" 1 3 4 ># 415 "/usr/include/string.h" 2 3 4 > > ># 1 "/usr/include/bits/string2.h" 1 3 4 ># 52 "/usr/include/bits/string2.h" 3 4 ># 1 "/usr/include/endian.h" 1 3 4 ># 37 "/usr/include/endian.h" 3 4 ># 1 "/usr/include/bits/endian.h" 1 3 4 ># 38 "/usr/include/endian.h" 2 3 4 ># 53 "/usr/include/bits/string2.h" 2 3 4 ># 1 "/usr/include/bits/types.h" 1 3 4 ># 28 "/usr/include/bits/types.h" 3 4 ># 1 "/usr/include/bits/wordsize.h" 1 3 4 ># 29 "/usr/include/bits/types.h" 2 3 4 > > ># 1 "/usr/lib/gcc/x86_64-redhat-linux/4.1.2/include/stddef.h" 1 3 4 ># 32 "/usr/include/bits/types.h" 2 3 4 > > >typedef unsigned char __u_char; >typedef unsigned short int __u_short; >typedef unsigned int __u_int; >typedef unsigned long int __u_long; > > >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; > >typedef signed long int __int64_t; >typedef unsigned long int __uint64_t; > > > > > > > >typedef long int __quad_t; >typedef unsigned long int __u_quad_t; ># 134 "/usr/include/bits/types.h" 3 4 ># 1 "/usr/include/bits/typesizes.h" 1 3 4 ># 135 "/usr/include/bits/types.h" 2 3 4 > > >typedef unsigned long int __dev_t; >typedef unsigned int __uid_t; >typedef unsigned int __gid_t; >typedef unsigned long int __ino_t; >typedef unsigned long int __ino64_t; >typedef unsigned int __mode_t; >typedef unsigned long int __nlink_t; >typedef long int __off_t; >typedef long int __off64_t; >typedef int __pid_t; >typedef struct { int __val[2]; } __fsid_t; >typedef long int __clock_t; >typedef unsigned long int __rlim_t; >typedef unsigned long int __rlim64_t; >typedef unsigned int __id_t; >typedef long int __time_t; >typedef unsigned int __useconds_t; >typedef long int __suseconds_t; > >typedef int __daddr_t; >typedef long int __swblk_t; >typedef int __key_t; > > >typedef int __clockid_t; > > >typedef void * __timer_t; > > >typedef long int __blksize_t; > > > > >typedef long int __blkcnt_t; >typedef long int __blkcnt64_t; > > >typedef unsigned long int __fsblkcnt_t; >typedef unsigned long int __fsblkcnt64_t; > > >typedef unsigned long int __fsfilcnt_t; >typedef unsigned long int __fsfilcnt64_t; > >typedef long int __ssize_t; > > > >typedef __off64_t __loff_t; >typedef __quad_t *__qaddr_t; >typedef char *__caddr_t; > > >typedef long int __intptr_t; > > >typedef unsigned int __socklen_t; ># 54 "/usr/include/bits/string2.h" 2 3 4 ># 394 "/usr/include/bits/string2.h" 3 4 >extern void *__rawmemchr (const void *__s, int __c); ># 969 "/usr/include/bits/string2.h" 3 4 >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; >} ># 1045 "/usr/include/bits/string2.h" 3 4 >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; >} ># 1121 "/usr/include/bits/string2.h" 3 4 >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; >} ># 1173 "/usr/include/bits/string2.h" 3 4 >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; >} ># 1205 "/usr/include/bits/string2.h" 3 4 >extern char *__strsep_g (char **__stringp, __const char *__delim); ># 1223 "/usr/include/bits/string2.h" 3 4 >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) && !__builtin_constant_p (__retval) && (__reject) == '\0' ? (char *) __rawmemchr (__retval, __reject) : __builtin_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; >} ># 1299 "/usr/include/bits/string2.h" 3 4 ># 1 "/usr/include/stdlib.h" 1 3 4 ># 33 "/usr/include/stdlib.h" 3 4 ># 1 "/usr/lib/gcc/x86_64-redhat-linux/4.1.2/include/stddef.h" 1 3 4 ># 34 "/usr/include/stdlib.h" 2 3 4 > > ># 587 "/usr/include/stdlib.h" 3 4 > > >extern void *malloc (size_t __size) __attribute__ ((__nothrow__)) __attribute__ ((__malloc__)) __attribute__ ((__warn_unused_result__)); > >extern void *calloc (size_t __nmemb, size_t __size) > __attribute__ ((__nothrow__)) __attribute__ ((__malloc__)) __attribute__ ((__warn_unused_result__)); > ># 977 "/usr/include/stdlib.h" 3 4 > ># 1300 "/usr/include/bits/string2.h" 2 3 4 > > > > >extern char *__strdup (__const char *__string) __attribute__ ((__nothrow__)) __attribute__ ((__malloc__)); ># 1323 "/usr/include/bits/string2.h" 3 4 >extern char *__strndup (__const char *__string, size_t __n) > __attribute__ ((__nothrow__)) __attribute__ ((__malloc__)); ># 418 "/usr/include/string.h" 2 3 4 > > > > ># 1 "/usr/include/bits/string3.h" 1 3 4 ># 47 "/usr/include/bits/string3.h" 3 4 >static __inline __attribute__ ((__always_inline__)) void * >__attribute__ ((__nothrow__)) __memcpy_ichk (void *__restrict __dest, __const void *__restrict __src, size_t __len) > >{ > return __builtin___memcpy_chk (__dest, __src, __len, __builtin_object_size (__dest, 0)); >} > > > > > > >static __inline __attribute__ ((__always_inline__)) void * >__attribute__ ((__nothrow__)) __memmove_ichk (void *__dest, __const void *__src, size_t __len) >{ > return __builtin___memmove_chk (__dest, __src, __len, __builtin_object_size (__dest, 0)); >} ># 85 "/usr/include/bits/string3.h" 3 4 >extern void __warn_memset_zero_len (void); > > > > > > > >static __inline __attribute__ ((__always_inline__)) void * >__attribute__ ((__nothrow__)) __memset_ichk (void *__dest, int __ch, size_t __len) >{ > return __builtin___memset_chk (__dest, __ch, __len, __builtin_object_size (__dest, 0)); >} ># 115 "/usr/include/bits/string3.h" 3 4 >static __inline __attribute__ ((__always_inline__)) char * >__attribute__ ((__nothrow__)) __strcpy_ichk (char *__restrict __dest, __const char *__restrict __src) >{ > return __builtin___strcpy_chk (__dest, __src, __builtin_object_size (__dest, 2 > 1)); >} ># 139 "/usr/include/bits/string3.h" 3 4 >static __inline __attribute__ ((__always_inline__)) char * >__attribute__ ((__nothrow__)) __strncpy_ichk (char *__restrict __dest, __const char *__restrict __src, size_t __len) > >{ > return __builtin___strncpy_chk (__dest, __src, __len, __builtin_object_size (__dest, 2 > 1)); >} > > > >extern char *__stpncpy_chk (char *__dest, __const char *__src, size_t __n, > size_t __destlen) __attribute__ ((__nothrow__)); >extern char *__stpncpy_alias (char *__dest, __const char *__src, size_t __n) __asm__ ("" "stpncpy") __attribute__ ((__nothrow__)); > > > >extern __inline __attribute__ ((__always_inline__)) char * >__attribute__ ((__nothrow__)) stpncpy (char *__dest, __const char *__src, size_t __n) >{ > if (__builtin_object_size (__dest, 2 > 1) != (size_t) -1 > && (!__builtin_constant_p (__n) || __n <= __builtin_object_size (__dest, 2 > 1))) > return __stpncpy_chk (__dest, __src, __n, __builtin_object_size (__dest, 2 > 1)); > return __stpncpy_alias (__dest, __src, __n); >} > > > > > > >static __inline __attribute__ ((__always_inline__)) char * >__attribute__ ((__nothrow__)) __strcat_ichk (char *__restrict __dest, __const char *__restrict __src) >{ > return __builtin___strcat_chk (__dest, __src, __builtin_object_size (__dest, 2 > 1)); >} > > > > > > >static __inline __attribute__ ((__always_inline__)) char * >__attribute__ ((__nothrow__)) __strncat_ichk (char *__restrict __dest, __const char *__restrict __src, size_t __len) > >{ > return __builtin___strncat_chk (__dest, __src, __len, __builtin_object_size (__dest, 2 > 1)); >} ># 423 "/usr/include/string.h" 2 3 4 > > > > ># 26 "src/ext/curve25519_donna/curve25519-donna-c64.c" 2 ># 1 "/usr/include/stdint.h" 1 3 4 ># 27 "/usr/include/stdint.h" 3 4 ># 1 "/usr/include/bits/wchar.h" 1 3 4 ># 28 "/usr/include/stdint.h" 2 3 4 ># 1 "/usr/include/bits/wordsize.h" 1 3 4 ># 29 "/usr/include/stdint.h" 2 3 4 ># 37 "/usr/include/stdint.h" 3 4 >typedef signed char int8_t; >typedef short int int16_t; >typedef int int32_t; > >typedef long int int64_t; > > > > > > > >typedef unsigned char uint8_t; >typedef unsigned short int uint16_t; > >typedef unsigned int uint32_t; > > > >typedef unsigned long int uint64_t; ># 66 "/usr/include/stdint.h" 3 4 >typedef signed char int_least8_t; >typedef short int int_least16_t; >typedef int int_least32_t; > >typedef long int int_least64_t; > > > > > > >typedef unsigned char uint_least8_t; >typedef unsigned short int uint_least16_t; >typedef unsigned int uint_least32_t; > >typedef unsigned long int uint_least64_t; ># 91 "/usr/include/stdint.h" 3 4 >typedef signed char int_fast8_t; > >typedef long int int_fast16_t; >typedef long int int_fast32_t; >typedef long int int_fast64_t; ># 104 "/usr/include/stdint.h" 3 4 >typedef unsigned char uint_fast8_t; > >typedef unsigned long int uint_fast16_t; >typedef unsigned long int uint_fast32_t; >typedef unsigned long int uint_fast64_t; ># 120 "/usr/include/stdint.h" 3 4 >typedef long int intptr_t; > > >typedef unsigned long int uintptr_t; ># 135 "/usr/include/stdint.h" 3 4 >typedef long int intmax_t; >typedef unsigned long int uintmax_t; ># 27 "src/ext/curve25519_donna/curve25519-donna-c64.c" 2 > >typedef uint8_t u8; >typedef uint64_t limb; >typedef limb felem[5]; > > >typedef unsigned uint128_t __attribute__((mode(TI))); > > > > > >static inline void __attribute__((always_inline)) >fsum(limb *output, const limb *in) { > output[0] += in[0]; > output[1] += in[1]; > output[2] += in[2]; > output[3] += in[3]; > output[4] += in[4]; >} > > > > > > > >static inline void __attribute__((always_inline)) >fdifference_backwards(felem out, const felem in) { > > static const limb two54m152 = (((limb)1) << 54) - 152; > static const limb two54m8 = (((limb)1) << 54) - 8; > > out[0] = in[0] + two54m152 - out[0]; > out[1] = in[1] + two54m8 - out[1]; > out[2] = in[2] + two54m8 - out[2]; > out[3] = in[3] + two54m8 - out[3]; > out[4] = in[4] + two54m8 - out[4]; >} > > >static inline void __attribute__((always_inline)) >fscalar_product(felem output, const felem in, const limb scalar) { > uint128_t a; > > a = ((uint128_t) in[0]) * scalar; > output[0] = ((limb)a) & 0x7ffffffffffff; > > a = ((uint128_t) in[1]) * scalar + ((limb) (a >> 51)); > output[1] = ((limb)a) & 0x7ffffffffffff; > > a = ((uint128_t) in[2]) * scalar + ((limb) (a >> 51)); > output[2] = ((limb)a) & 0x7ffffffffffff; > > a = ((uint128_t) in[3]) * scalar + ((limb) (a >> 51)); > output[3] = ((limb)a) & 0x7ffffffffffff; > > a = ((uint128_t) in[4]) * scalar + ((limb) (a >> 51)); > output[4] = ((limb)a) & 0x7ffffffffffff; > > output[0] += (a >> 51) * 19; >} ># 98 "src/ext/curve25519_donna/curve25519-donna-c64.c" >static inline void __attribute__((always_inline)) >fmul(felem output, const felem in2, const felem in) { > uint128_t t[5]; > limb r0,r1,r2,r3,r4,s0,s1,s2,s3,s4,c; > > r0 = in[0]; > r1 = in[1]; > r2 = in[2]; > r3 = in[3]; > r4 = in[4]; > > s0 = in2[0]; > s1 = in2[1]; > s2 = in2[2]; > s3 = in2[3]; > s4 = in2[4]; > > t[0] = ((uint128_t) r0) * s0; > t[1] = ((uint128_t) r0) * s1 + ((uint128_t) r1) * s0; > t[2] = ((uint128_t) r0) * s2 + ((uint128_t) r2) * s0 + ((uint128_t) r1) * s1; > t[3] = ((uint128_t) r0) * s3 + ((uint128_t) r3) * s0 + ((uint128_t) r1) * s2 + ((uint128_t) r2) * s1; > t[4] = ((uint128_t) r0) * s4 + ((uint128_t) r4) * s0 + ((uint128_t) r3) * s1 + ((uint128_t) r1) * s3 + ((uint128_t) r2) * s2; > > r4 *= 19; > r1 *= 19; > r2 *= 19; > r3 *= 19; > > t[0] += ((uint128_t) r4) * s1 + ((uint128_t) r1) * s4 + ((uint128_t) r2) * s3 + ((uint128_t) r3) * s2; > t[1] += ((uint128_t) r4) * s2 + ((uint128_t) r2) * s4 + ((uint128_t) r3) * s3; > t[2] += ((uint128_t) r4) * s3 + ((uint128_t) r3) * s4; > t[3] += ((uint128_t) r4) * s4; > > r0 = (limb)t[0] & 0x7ffffffffffff; c = (limb)(t[0] >> 51); > t[1] += c; r1 = (limb)t[1] & 0x7ffffffffffff; c = (limb)(t[1] >> 51); > t[2] += c; r2 = (limb)t[2] & 0x7ffffffffffff; c = (limb)(t[2] >> 51); > t[3] += c; r3 = (limb)t[3] & 0x7ffffffffffff; c = (limb)(t[3] >> 51); > t[4] += c; r4 = (limb)t[4] & 0x7ffffffffffff; c = (limb)(t[4] >> 51); > r0 += c * 19; c = r0 >> 51; r0 = r0 & 0x7ffffffffffff; > r1 += c; c = r1 >> 51; r1 = r1 & 0x7ffffffffffff; > r2 += c; > > output[0] = r0; > output[1] = r1; > output[2] = r2; > output[3] = r3; > output[4] = r4; >} > >static inline void __attribute__((always_inline)) >fsquare_times(felem output, const felem in, limb count) { > uint128_t t[5]; > limb r0,r1,r2,r3,r4,c; > limb d0,d1,d2,d4,d419; > > r0 = in[0]; > r1 = in[1]; > r2 = in[2]; > r3 = in[3]; > r4 = in[4]; > > do { > d0 = r0 * 2; > d1 = r1 * 2; > d2 = r2 * 2 * 19; > d419 = r4 * 19; > d4 = d419 * 2; > > t[0] = ((uint128_t) r0) * r0 + ((uint128_t) d4) * r1 + (((uint128_t) d2) * (r3 )); > t[1] = ((uint128_t) d0) * r1 + ((uint128_t) d4) * r2 + (((uint128_t) r3) * (r3 * 19)); > t[2] = ((uint128_t) d0) * r2 + ((uint128_t) r1) * r1 + (((uint128_t) d4) * (r3 )); > t[3] = ((uint128_t) d0) * r3 + ((uint128_t) d1) * r2 + (((uint128_t) r4) * (d419 )); > t[4] = ((uint128_t) d0) * r4 + ((uint128_t) d1) * r3 + (((uint128_t) r2) * (r2 )); > > r0 = (limb)t[0] & 0x7ffffffffffff; c = (limb)(t[0] >> 51); > t[1] += c; r1 = (limb)t[1] & 0x7ffffffffffff; c = (limb)(t[1] >> 51); > t[2] += c; r2 = (limb)t[2] & 0x7ffffffffffff; c = (limb)(t[2] >> 51); > t[3] += c; r3 = (limb)t[3] & 0x7ffffffffffff; c = (limb)(t[3] >> 51); > t[4] += c; r4 = (limb)t[4] & 0x7ffffffffffff; c = (limb)(t[4] >> 51); > r0 += c * 19; c = r0 >> 51; r0 = r0 & 0x7ffffffffffff; > r1 += c; c = r1 >> 51; r1 = r1 & 0x7ffffffffffff; > r2 += c; > } while(--count); > > output[0] = r0; > output[1] = r1; > output[2] = r2; > output[3] = r3; > output[4] = r4; >} > > >static limb >load_limb(const u8 *in) { > return > ((limb)in[0]) | > (((limb)in[1]) << 8) | > (((limb)in[2]) << 16) | > (((limb)in[3]) << 24) | > (((limb)in[4]) << 32) | > (((limb)in[5]) << 40) | > (((limb)in[6]) << 48) | > (((limb)in[7]) << 56); >} > >static void >store_limb(u8 *out, limb in) { > out[0] = in & 0xff; > out[1] = (in >> 8) & 0xff; > out[2] = (in >> 16) & 0xff; > out[3] = (in >> 24) & 0xff; > out[4] = (in >> 32) & 0xff; > out[5] = (in >> 40) & 0xff; > out[6] = (in >> 48) & 0xff; > out[7] = (in >> 56) & 0xff; >} > > >static void >fexpand(limb *output, const u8 *in) { > output[0] = load_limb(in) & 0x7ffffffffffff; > output[1] = (load_limb(in+6) >> 3) & 0x7ffffffffffff; > output[2] = (load_limb(in+12) >> 6) & 0x7ffffffffffff; > output[3] = (load_limb(in+19) >> 1) & 0x7ffffffffffff; > output[4] = (load_limb(in+24) >> 12) & 0x7ffffffffffff; >} > > > > >static void >fcontract(u8 *output, const felem input) { > uint128_t t[5]; > > t[0] = input[0]; > t[1] = input[1]; > t[2] = input[2]; > t[3] = input[3]; > t[4] = input[4]; > > t[1] += t[0] >> 51; t[0] &= 0x7ffffffffffff; > t[2] += t[1] >> 51; t[1] &= 0x7ffffffffffff; > t[3] += t[2] >> 51; t[2] &= 0x7ffffffffffff; > t[4] += t[3] >> 51; t[3] &= 0x7ffffffffffff; > t[0] += 19 * (t[4] >> 51); t[4] &= 0x7ffffffffffff; > > t[1] += t[0] >> 51; t[0] &= 0x7ffffffffffff; > t[2] += t[1] >> 51; t[1] &= 0x7ffffffffffff; > t[3] += t[2] >> 51; t[2] &= 0x7ffffffffffff; > t[4] += t[3] >> 51; t[3] &= 0x7ffffffffffff; > t[0] += 19 * (t[4] >> 51); t[4] &= 0x7ffffffffffff; > > > > > t[0] += 19; > > t[1] += t[0] >> 51; t[0] &= 0x7ffffffffffff; > t[2] += t[1] >> 51; t[1] &= 0x7ffffffffffff; > t[3] += t[2] >> 51; t[2] &= 0x7ffffffffffff; > t[4] += t[3] >> 51; t[3] &= 0x7ffffffffffff; > t[0] += 19 * (t[4] >> 51); t[4] &= 0x7ffffffffffff; > > > > t[0] += 0x8000000000000 - 19; > t[1] += 0x8000000000000 - 1; > t[2] += 0x8000000000000 - 1; > t[3] += 0x8000000000000 - 1; > t[4] += 0x8000000000000 - 1; > > > > t[1] += t[0] >> 51; t[0] &= 0x7ffffffffffff; > t[2] += t[1] >> 51; t[1] &= 0x7ffffffffffff; > t[3] += t[2] >> 51; t[2] &= 0x7ffffffffffff; > t[4] += t[3] >> 51; t[3] &= 0x7ffffffffffff; > t[4] &= 0x7ffffffffffff; > > store_limb(output, t[0] | (t[1] << 51)); > store_limb(output+8, (t[1] >> 13) | (t[2] << 38)); > store_limb(output+16, (t[2] >> 26) | (t[3] << 25)); > store_limb(output+24, (t[3] >> 39) | (t[4] << 12)); >} ># 292 "src/ext/curve25519_donna/curve25519-donna-c64.c" >static void >fmonty(limb *x2, limb *z2, > limb *x3, limb *z3, > limb *x, limb *z, > limb *xprime, limb *zprime, > const limb *qmqp ) { > limb origx[5], origxprime[5], zzz[5], xx[5], zz[5], xxprime[5], > zzprime[5], zzzprime[5]; > > ((__builtin_object_size (origx, 0) != (size_t) -1) ? __builtin___memcpy_chk (origx, x, 5 * sizeof(limb), __builtin_object_size (origx, 0)) : __memcpy_ichk (origx, x, 5 * sizeof(limb))); > fsum(x, z); > fdifference_backwards(z, origx); > > ((__builtin_object_size (origxprime, 0) != (size_t) -1) ? __builtin___memcpy_chk (origxprime, xprime, sizeof(limb) * 5, __builtin_object_size (origxprime, 0)) : __memcpy_ichk (origxprime, xprime, sizeof(limb) * 5)); > fsum(xprime, zprime); > fdifference_backwards(zprime, origxprime); > fmul(xxprime, xprime, z); > fmul(zzprime, x, zprime); > ((__builtin_object_size (origxprime, 0) != (size_t) -1) ? __builtin___memcpy_chk (origxprime, xxprime, sizeof(limb) * 5, __builtin_object_size (origxprime, 0)) : __memcpy_ichk (origxprime, xxprime, sizeof(limb) * 5)); > fsum(xxprime, zzprime); > fdifference_backwards(zzprime, origxprime); > fsquare_times(x3, xxprime, 1); > fsquare_times(zzzprime, zzprime, 1); > fmul(z3, zzzprime, qmqp); > > fsquare_times(xx, x, 1); > fsquare_times(zz, z, 1); > fmul(x2, xx, zz); > fdifference_backwards(zz, xx); > fscalar_product(zzz, zz, 121665); > fsum(zzz, xx); > fmul(z2, zz, zzz); >} ># 333 "src/ext/curve25519_donna/curve25519-donna-c64.c" >static void >swap_conditional(limb a[5], limb b[5], limb iswap) { > unsigned i; > const limb swap = -iswap; > > for (i = 0; i < 5; ++i) { > const limb x = swap & (a[i] ^ b[i]); > a[i] ^= x; > b[i] ^= x; > } >} > > > > > > > >static void >cmult(limb *resultx, limb *resultz, const u8 *n, const limb *q) { > limb a[5] = {0}, b[5] = {1}, c[5] = {1}, d[5] = {0}; > limb *nqpqx = a, *nqpqz = b, *nqx = c, *nqz = d, *t; > limb e[5] = {0}, f[5] = {1}, g[5] = {0}, h[5] = {1}; > limb *nqpqx2 = e, *nqpqz2 = f, *nqx2 = g, *nqz2 = h; > > unsigned i, j; > > ((__builtin_object_size (nqpqx, 0) != (size_t) -1) ? __builtin___memcpy_chk (nqpqx, q, sizeof(limb) * 5, __builtin_object_size (nqpqx, 0)) : __memcpy_ichk (nqpqx, q, sizeof(limb) * 5)); > > for (i = 0; i < 32; ++i) { > u8 byte = n[31 - i]; > for (j = 0; j < 8; ++j) { > const limb bit = byte >> 7; > > swap_conditional(nqx, nqpqx, bit); > swap_conditional(nqz, nqpqz, bit); > fmonty(nqx2, nqz2, > nqpqx2, nqpqz2, > nqx, nqz, > nqpqx, nqpqz, > q); > swap_conditional(nqx2, nqpqx2, bit); > swap_conditional(nqz2, nqpqz2, bit); > > t = nqx; > nqx = nqx2; > nqx2 = t; > t = nqz; > nqz = nqz2; > nqz2 = t; > t = nqpqx; > nqpqx = nqpqx2; > nqpqx2 = t; > t = nqpqz; > nqpqz = nqpqz2; > nqpqz2 = t; > > byte <<= 1; > } > } > > ((__builtin_object_size (resultx, 0) != (size_t) -1) ? __builtin___memcpy_chk (resultx, nqx, sizeof(limb) * 5, __builtin_object_size (resultx, 0)) : __memcpy_ichk (resultx, nqx, sizeof(limb) * 5)); > ((__builtin_object_size (resultz, 0) != (size_t) -1) ? __builtin___memcpy_chk (resultz, nqz, sizeof(limb) * 5, __builtin_object_size (resultz, 0)) : __memcpy_ichk (resultz, nqz, sizeof(limb) * 5)); >} > > > > > >static void >crecip(felem out, const felem z) { > felem a,t0,b,c; > > fsquare_times(a, z, 1); > fsquare_times(t0, a, 2); > fmul(b, t0, z); > fmul(a, b, a); > fsquare_times(t0, a, 1); > fmul(b, t0, b); > fsquare_times(t0, b, 5); > fmul(b, t0, b); > fsquare_times(t0, b, 10); > fmul(c, t0, b); > fsquare_times(t0, c, 20); > fmul(t0, t0, c); > fsquare_times(t0, t0, 10); > fmul(b, t0, b); > fsquare_times(t0, b, 50); > fmul(c, t0, b); > fsquare_times(t0, c, 100); > fmul(t0, t0, c); > fsquare_times(t0, t0, 50); > fmul(t0, t0, b); > fsquare_times(t0, t0, 5); > fmul(out, t0, a); >} > >int curve25519_donna(u8 *, const u8 *, const u8 *); > >int >curve25519_donna(u8 *mypublic, const u8 *secret, const u8 *basepoint) { > limb bp[5], x[5], z[5], zmone[5]; > uint8_t e[32]; > int i; > > for (i = 0;i < 32;++i) e[i] = secret[i]; > e[0] &= 248; > e[31] &= 127; > e[31] |= 64; > > fexpand(bp, basepoint); > cmult(x, z, e, bp); > crecip(zmone, z); > fmul(z, x, zmone); > fcontract(mypublic, z); > return 0; >}
You cannot view the attachment while viewing its details because your browser does not support IFRAMEs.
View the attachment on a separate page
.
View Attachment As Raw
Actions:
View
Attachments on
bug 901750
: 682821 |
682822
|
682823