OpenCoverage

x86_64-gcc.c

Absolute File Name:/home/opencoverage/opencoverage/guest-scripts/openssl/src/crypto/bn/asm/x86_64-gcc.c
Switch to Source codePreprocessed file
LineSourceCount
1unsigned long bn_mul_add_words(unsigned long *rp, const unsigned long *ap, int num,-
2 unsigned long w)-
3{-
4 unsigned long c1 = 0;-
5-
6 if (num <= 0
num <= 0Description
TRUEnever evaluated
FALSEevaluated 5682694 times by 2 tests
Evaluated by:
  • libcrypto.so.1.1
  • sm2_internal_test
)
0-5682694
7 return
never executed: return c1;
c1;
never executed: return c1;
0
8-
9 while (num & ~3
num & ~3Description
TRUEevaluated 33447085 times by 2 tests
Evaluated by:
  • libcrypto.so.1.1
  • sm2_internal_test
FALSEevaluated 5682694 times by 2 tests
Evaluated by:
  • libcrypto.so.1.1
  • sm2_internal_test
) {
5682694-33447085
10 do { register unsigned long high,low; asm ("mulq %3" : "=a"(low),"=d"(high) : "a"(w),"m"(ap[0]) : "cc"); asm ("addq %2,%0; adcq %3,%1" : "+r"(c1),"+d"(high) : "a"(low),"g"(0) : "cc"); asm ("addq %2,%0; adcq %3,%1" : "+m"(rp[0]),"+d"(high) : "r"(c1),"g"(0) : "cc"); c1=high; } while (0);-
11 do { register unsigned long high,low; asm ("mulq %3" : "=a"(low),"=d"(high) : "a"(w),"m"(ap[1]) : "cc"); asm ("addq %2,%0; adcq %3,%1" : "+r"(c1),"+d"(high) : "a"(low),"g"(0) : "cc"); asm ("addq %2,%0; adcq %3,%1" : "+m"(rp[1]),"+d"(high) : "r"(c1),"g"(0) : "cc"); c1=high; } while (0);-
12 do { register unsigned long high,low; asm ("mulq %3" : "=a"(low),"=d"(high) : "a"(w),"m"(ap[2]) : "cc"); asm ("addq %2,%0; adcq %3,%1" : "+r"(c1),"+d"(high) : "a"(low),"g"(0) : "cc"); asm ("addq %2,%0; adcq %3,%1" : "+m"(rp[2]),"+d"(high) : "r"(c1),"g"(0) : "cc"); c1=high; } while (0);-
13 do { register unsigned long high,low; asm ("mulq %3" : "=a"(low),"=d"(high) : "a"(w),"m"(ap[3]) : "cc"); asm ("addq %2,%0; adcq %3,%1" : "+r"(c1),"+d"(high) : "a"(low),"g"(0) : "cc"); asm ("addq %2,%0; adcq %3,%1" : "+m"(rp[3]),"+d"(high) : "r"(c1),"g"(0) : "cc"); c1=high; } while (0);-
14 ap += 4;-
15 rp += 4;-
16 num -= 4;-
17 }
executed 33447085 times by 2 tests: end of block
Executed by:
  • libcrypto.so.1.1
  • sm2_internal_test
33447085
18 if (num
numDescription
TRUEevaluated 3420323 times by 1 test
Evaluated by:
  • libcrypto.so.1.1
FALSEevaluated 2262371 times by 2 tests
Evaluated by:
  • libcrypto.so.1.1
  • sm2_internal_test
) {
2262371-3420323
19 do { register unsigned long high,low; asm ("mulq %3" : "=a"(low),"=d"(high) : "a"(w),"m"(ap[0]) : "cc"); asm ("addq %2,%0; adcq %3,%1" : "+r"(c1),"+d"(high) : "a"(low),"g"(0) : "cc"); asm ("addq %2,%0; adcq %3,%1" : "+m"(rp[0]),"+d"(high) : "r"(c1),"g"(0) : "cc"); c1=high; } while (0);-
20 if (--
--num == 0Description
TRUEevaluated 1930117 times by 1 test
Evaluated by:
  • libcrypto.so.1.1
FALSEevaluated 1490206 times by 1 test
Evaluated by:
  • libcrypto.so.1.1
num == 0
--num == 0Description
TRUEevaluated 1930117 times by 1 test
Evaluated by:
  • libcrypto.so.1.1
FALSEevaluated 1490206 times by 1 test
Evaluated by:
  • libcrypto.so.1.1
)
1490206-1930117
21 return
executed 1930117 times by 1 test: return c1;
Executed by:
  • libcrypto.so.1.1
c1;
executed 1930117 times by 1 test: return c1;
Executed by:
  • libcrypto.so.1.1
1930117
22 do { register unsigned long high,low; asm ("mulq %3" : "=a"(low),"=d"(high) : "a"(w),"m"(ap[1]) : "cc"); asm ("addq %2,%0; adcq %3,%1" : "+r"(c1),"+d"(high) : "a"(low),"g"(0) : "cc"); asm ("addq %2,%0; adcq %3,%1" : "+m"(rp[1]),"+d"(high) : "r"(c1),"g"(0) : "cc"); c1=high; } while (0);-
23 if (--
--num == 0Description
TRUEevaluated 664534 times by 1 test
Evaluated by:
  • libcrypto.so.1.1
FALSEevaluated 825672 times by 1 test
Evaluated by:
  • libcrypto.so.1.1
num == 0
--num == 0Description
TRUEevaluated 664534 times by 1 test
Evaluated by:
  • libcrypto.so.1.1
FALSEevaluated 825672 times by 1 test
Evaluated by:
  • libcrypto.so.1.1
)
664534-825672
24 return
executed 664534 times by 1 test: return c1;
Executed by:
  • libcrypto.so.1.1
c1;
executed 664534 times by 1 test: return c1;
Executed by:
  • libcrypto.so.1.1
664534
25 do { register unsigned long high,low; asm ("mulq %3" : "=a"(low),"=d"(high) : "a"(w),"m"(ap[2]) : "cc"); asm ("addq %2,%0; adcq %3,%1" : "+r"(c1),"+d"(high) : "a"(low),"g"(0) : "cc"); asm ("addq %2,%0; adcq %3,%1" : "+m"(rp[2]),"+d"(high) : "r"(c1),"g"(0) : "cc"); c1=high; } while (0);-
26 return
executed 825672 times by 1 test: return c1;
Executed by:
  • libcrypto.so.1.1
c1;
executed 825672 times by 1 test: return c1;
Executed by:
  • libcrypto.so.1.1
825672
27 }-
28-
29 return
executed 2262371 times by 2 tests: return c1;
Executed by:
  • libcrypto.so.1.1
  • sm2_internal_test
c1;
executed 2262371 times by 2 tests: return c1;
Executed by:
  • libcrypto.so.1.1
  • sm2_internal_test
2262371
30}-
31-
32unsigned long bn_mul_words(unsigned long *rp, const unsigned long *ap, int num, unsigned long w)-
33{-
34 unsigned long c1 = 0;-
35-
36 if (num <= 0
num <= 0Description
TRUEnever evaluated
FALSEevaluated 25981325 times by 2 tests
Evaluated by:
  • libcrypto.so.1.1
  • sm2_internal_test
)
0-25981325
37 return
never executed: return c1;
c1;
never executed: return c1;
0
38-
39 while (num & ~3
num & ~3Description
TRUEevaluated 85045232 times by 2 tests
Evaluated by:
  • libcrypto.so.1.1
  • sm2_internal_test
FALSEevaluated 25981325 times by 2 tests
Evaluated by:
  • libcrypto.so.1.1
  • sm2_internal_test
) {
25981325-85045232
40 do { register unsigned long high,low; asm ("mulq %3" : "=a"(low),"=d"(high) : "a"(w),"g"(ap[0]) : "cc"); asm ("addq %2,%0; adcq %3,%1" : "+r"(c1),"+d"(high) : "a"(low),"g"(0) : "cc"); (rp[0])=c1, c1=high; } while (0);-
41 do { register unsigned long high,low; asm ("mulq %3" : "=a"(low),"=d"(high) : "a"(w),"g"(ap[1]) : "cc"); asm ("addq %2,%0; adcq %3,%1" : "+r"(c1),"+d"(high) : "a"(low),"g"(0) : "cc"); (rp[1])=c1, c1=high; } while (0);-
42 do { register unsigned long high,low; asm ("mulq %3" : "=a"(low),"=d"(high) : "a"(w),"g"(ap[2]) : "cc"); asm ("addq %2,%0; adcq %3,%1" : "+r"(c1),"+d"(high) : "a"(low),"g"(0) : "cc"); (rp[2])=c1, c1=high; } while (0);-
43 do { register unsigned long high,low; asm ("mulq %3" : "=a"(low),"=d"(high) : "a"(w),"g"(ap[3]) : "cc"); asm ("addq %2,%0; adcq %3,%1" : "+r"(c1),"+d"(high) : "a"(low),"g"(0) : "cc"); (rp[3])=c1, c1=high; } while (0);-
44 ap += 4;-
45 rp += 4;-
46 num -= 4;-
47 }
executed 85045232 times by 2 tests: end of block
Executed by:
  • libcrypto.so.1.1
  • sm2_internal_test
85045232
48 if (num
numDescription
TRUEevaluated 7940794 times by 2 tests
Evaluated by:
  • libcrypto.so.1.1
  • sm2_internal_test
FALSEevaluated 18040531 times by 2 tests
Evaluated by:
  • libcrypto.so.1.1
  • sm2_internal_test
) {
7940794-18040531
49 do { register unsigned long high,low; asm ("mulq %3" : "=a"(low),"=d"(high) : "a"(w),"g"(ap[0]) : "cc"); asm ("addq %2,%0; adcq %3,%1" : "+r"(c1),"+d"(high) : "a"(low),"g"(0) : "cc"); (rp[0])=c1, c1=high; } while (0);-
50 if (--
--num == 0Description
TRUEevaluated 4007626 times by 2 tests
Evaluated by:
  • libcrypto.so.1.1
  • sm2_internal_test
FALSEevaluated 3933168 times by 1 test
Evaluated by:
  • libcrypto.so.1.1
num == 0
--num == 0Description
TRUEevaluated 4007626 times by 2 tests
Evaluated by:
  • libcrypto.so.1.1
  • sm2_internal_test
FALSEevaluated 3933168 times by 1 test
Evaluated by:
  • libcrypto.so.1.1
)
3933168-4007626
51 return
executed 4007626 times by 2 tests: return c1;
Executed by:
  • libcrypto.so.1.1
  • sm2_internal_test
c1;
executed 4007626 times by 2 tests: return c1;
Executed by:
  • libcrypto.so.1.1
  • sm2_internal_test
4007626
52 do { register unsigned long high,low; asm ("mulq %3" : "=a"(low),"=d"(high) : "a"(w),"g"(ap[1]) : "cc"); asm ("addq %2,%0; adcq %3,%1" : "+r"(c1),"+d"(high) : "a"(low),"g"(0) : "cc"); (rp[1])=c1, c1=high; } while (0);-
53 if (--
--num == 0Description
TRUEevaluated 2251147 times by 1 test
Evaluated by:
  • libcrypto.so.1.1
FALSEevaluated 1682021 times by 1 test
Evaluated by:
  • libcrypto.so.1.1
num == 0
--num == 0Description
TRUEevaluated 2251147 times by 1 test
Evaluated by:
  • libcrypto.so.1.1
FALSEevaluated 1682021 times by 1 test
Evaluated by:
  • libcrypto.so.1.1
)
1682021-2251147
54 return
executed 2251147 times by 1 test: return c1;
Executed by:
  • libcrypto.so.1.1
c1;
executed 2251147 times by 1 test: return c1;
Executed by:
  • libcrypto.so.1.1
2251147
55 do { register unsigned long high,low; asm ("mulq %3" : "=a"(low),"=d"(high) : "a"(w),"g"(ap[2]) : "cc"); asm ("addq %2,%0; adcq %3,%1" : "+r"(c1),"+d"(high) : "a"(low),"g"(0) : "cc"); (rp[2])=c1, c1=high; } while (0);-
56 }
executed 1682021 times by 1 test: end of block
Executed by:
  • libcrypto.so.1.1
1682021
57 return
executed 19722552 times by 2 tests: return c1;
Executed by:
  • libcrypto.so.1.1
  • sm2_internal_test
c1;
executed 19722552 times by 2 tests: return c1;
Executed by:
  • libcrypto.so.1.1
  • sm2_internal_test
19722552
58}-
59-
60void bn_sqr_words(unsigned long *r, const unsigned long *a, int n)-
61{-
62 if (n <= 0
n <= 0Description
TRUEnever evaluated
FALSEevaluated 213797 times by 1 test
Evaluated by:
  • libcrypto.so.1.1
)
0-213797
63 return;
never executed: return;
0
64-
65 while (n & ~3
n & ~3Description
TRUEevaluated 427862 times by 1 test
Evaluated by:
  • libcrypto.so.1.1
FALSEevaluated 213797 times by 1 test
Evaluated by:
  • libcrypto.so.1.1
) {
213797-427862
66 asm ("mulq %2" : "=a"(r[0]),"=d"(r[1]) : "a"(a[0]) : "cc");;-
67 asm ("mulq %2" : "=a"(r[2]),"=d"(r[3]) : "a"(a[1]) : "cc");;-
68 asm ("mulq %2" : "=a"(r[4]),"=d"(r[5]) : "a"(a[2]) : "cc");;-
69 asm ("mulq %2" : "=a"(r[6]),"=d"(r[7]) : "a"(a[3]) : "cc");;-
70 a += 4;-
71 r += 8;-
72 n -= 4;-
73 }
executed 427862 times by 1 test: end of block
Executed by:
  • libcrypto.so.1.1
427862
74 if (n
nDescription
TRUEevaluated 207231 times by 1 test
Evaluated by:
  • libcrypto.so.1.1
FALSEevaluated 6566 times by 1 test
Evaluated by:
  • libcrypto.so.1.1
) {
6566-207231
75 asm ("mulq %2" : "=a"(r[0]),"=d"(r[1]) : "a"(a[0]) : "cc");;-
76 if (--
--n == 0Description
TRUEevaluated 168254 times by 1 test
Evaluated by:
  • libcrypto.so.1.1
FALSEevaluated 38977 times by 1 test
Evaluated by:
  • libcrypto.so.1.1
n == 0
--n == 0Description
TRUEevaluated 168254 times by 1 test
Evaluated by:
  • libcrypto.so.1.1
FALSEevaluated 38977 times by 1 test
Evaluated by:
  • libcrypto.so.1.1
)
38977-168254
77 return;
executed 168254 times by 1 test: return;
Executed by:
  • libcrypto.so.1.1
168254
78 asm ("mulq %2" : "=a"(r[2]),"=d"(r[3]) : "a"(a[1]) : "cc");;-
79 if (--
--n == 0Description
TRUEevaluated 19195 times by 1 test
Evaluated by:
  • libcrypto.so.1.1
FALSEevaluated 19782 times by 1 test
Evaluated by:
  • libcrypto.so.1.1
n == 0
--n == 0Description
TRUEevaluated 19195 times by 1 test
Evaluated by:
  • libcrypto.so.1.1
FALSEevaluated 19782 times by 1 test
Evaluated by:
  • libcrypto.so.1.1
)
19195-19782
80 return;
executed 19195 times by 1 test: return;
Executed by:
  • libcrypto.so.1.1
19195
81 asm ("mulq %2" : "=a"(r[4]),"=d"(r[5]) : "a"(a[2]) : "cc");;-
82 }
executed 19782 times by 1 test: end of block
Executed by:
  • libcrypto.so.1.1
19782
83}
executed 26348 times by 1 test: end of block
Executed by:
  • libcrypto.so.1.1
26348
84-
85unsigned long bn_div_words(unsigned long h, unsigned long l, unsigned long d)-
86{-
87 unsigned long ret, waste;-
88-
89 asm("divq %4":"=a"(ret), "=d"(waste)-
90 : "a"(l), "d"(h), "r"(d)-
91 : "cc");-
92-
93 return
executed 95669 times by 1 test: return ret;
Executed by:
  • libcrypto.so.1.1
ret;
executed 95669 times by 1 test: return ret;
Executed by:
  • libcrypto.so.1.1
95669
94}-
95-
96unsigned long bn_add_words(unsigned long *rp, const unsigned long *ap, const unsigned long *bp,-
97 int n)-
98{-
99 unsigned long ret;-
100 size_t i = 0;-
101-
102 if (n <= 0
n <= 0Description
TRUEevaluated 81166 times by 2 tests
Evaluated by:
  • libcrypto.so.1.1
  • sm2_internal_test
FALSEevaluated 11877289 times by 2 tests
Evaluated by:
  • libcrypto.so.1.1
  • sm2_internal_test
)
81166-11877289
103 return
executed 81166 times by 2 tests: return 0;
Executed by:
  • libcrypto.so.1.1
  • sm2_internal_test
0;
executed 81166 times by 2 tests: return 0;
Executed by:
  • libcrypto.so.1.1
  • sm2_internal_test
81166
104-
105 asm volatile (" subq %0,%0 \n"-
106 " jmp 1f \n"-
107 ".p2align 4 \n"-
108 "1: movq (%4,%2,8),%0 \n"-
109 " adcq (%5,%2,8),%0 \n"-
110 " movq %0,(%3,%2,8) \n"-
111 " lea 1(%2),%2 \n"-
112 " dec %1 \n"-
113 " jnz 1b \n"-
114 " sbbq %0,%0 \n"-
115 :"=&r" (ret), "+c"(n), "+r"(i)-
116 :"r"(rp), "r"(ap), "r"(bp)-
117 :"cc", "memory");-
118-
119 return
executed 11877289 times by 2 tests: return ret & 1;
Executed by:
  • libcrypto.so.1.1
  • sm2_internal_test
ret & 1;
executed 11877289 times by 2 tests: return ret & 1;
Executed by:
  • libcrypto.so.1.1
  • sm2_internal_test
11877289
120}-
121-
122-
123unsigned long bn_sub_words(unsigned long *rp, const unsigned long *ap, const unsigned long *bp,-
124 int n)-
125{-
126 unsigned long ret;-
127 size_t i = 0;-
128-
129 if (n <= 0
n <= 0Description
TRUEevaluated 51011 times by 1 test
Evaluated by:
  • libcrypto.so.1.1
FALSEevaluated 42279231 times by 2 tests
Evaluated by:
  • libcrypto.so.1.1
  • sm2_internal_test
)
51011-42279231
130 return
executed 51011 times by 1 test: return 0;
Executed by:
  • libcrypto.so.1.1
0;
executed 51011 times by 1 test: return 0;
Executed by:
  • libcrypto.so.1.1
51011
131-
132 asm volatile (" subq %0,%0 \n"-
133 " jmp 1f \n"-
134 ".p2align 4 \n"-
135 "1: movq (%4,%2,8),%0 \n"-
136 " sbbq (%5,%2,8),%0 \n"-
137 " movq %0,(%3,%2,8) \n"-
138 " lea 1(%2),%2 \n"-
139 " dec %1 \n"-
140 " jnz 1b \n"-
141 " sbbq %0,%0 \n"-
142 :"=&r" (ret), "+c"(n), "+r"(i)-
143 :"r"(rp), "r"(ap), "r"(bp)-
144 :"cc", "memory");-
145-
146 return
executed 42279231 times by 2 tests: return ret & 1;
Executed by:
  • libcrypto.so.1.1
  • sm2_internal_test
ret & 1;
executed 42279231 times by 2 tests: return ret & 1;
Executed by:
  • libcrypto.so.1.1
  • sm2_internal_test
42279231
147}-
148void bn_mul_comba8(unsigned long *r, unsigned long *a, unsigned long *b)-
149{-
150 unsigned long c1, c2, c3;-
151-
152 c1 = 0;-
153 c2 = 0;-
154 c3 = 0;-
155 do { unsigned long t1,t2; asm ("mulq %3" : "=a"(t1),"=d"(t2) : "a"(a[0]),"m"(b[0]) : "cc"); asm ("addq %3,%0; adcq %4,%1; adcq %5,%2" : "+r"(c1),"+r"(c2),"+r"(c3) : "r"(t1),"r"(t2),"g"(0) : "cc"); } while (0);-
156 r[0] = c1;-
157 c1 = 0;-
158 do { unsigned long t1,t2; asm ("mulq %3" : "=a"(t1),"=d"(t2) : "a"(a[0]),"m"(b[1]) : "cc"); asm ("addq %3,%0; adcq %4,%1; adcq %5,%2" : "+r"(c2),"+r"(c3),"+r"(c1) : "r"(t1),"r"(t2),"g"(0) : "cc"); } while (0);-
159 do { unsigned long t1,t2; asm ("mulq %3" : "=a"(t1),"=d"(t2) : "a"(a[1]),"m"(b[0]) : "cc"); asm ("addq %3,%0; adcq %4,%1; adcq %5,%2" : "+r"(c2),"+r"(c3),"+r"(c1) : "r"(t1),"r"(t2),"g"(0) : "cc"); } while (0);-
160 r[1] = c2;-
161 c2 = 0;-
162 do { unsigned long t1,t2; asm ("mulq %3" : "=a"(t1),"=d"(t2) : "a"(a[2]),"m"(b[0]) : "cc"); asm ("addq %3,%0; adcq %4,%1; adcq %5,%2" : "+r"(c3),"+r"(c1),"+r"(c2) : "r"(t1),"r"(t2),"g"(0) : "cc"); } while (0);-
163 do { unsigned long t1,t2; asm ("mulq %3" : "=a"(t1),"=d"(t2) : "a"(a[1]),"m"(b[1]) : "cc"); asm ("addq %3,%0; adcq %4,%1; adcq %5,%2" : "+r"(c3),"+r"(c1),"+r"(c2) : "r"(t1),"r"(t2),"g"(0) : "cc"); } while (0);-
164 do { unsigned long t1,t2; asm ("mulq %3" : "=a"(t1),"=d"(t2) : "a"(a[0]),"m"(b[2]) : "cc"); asm ("addq %3,%0; adcq %4,%1; adcq %5,%2" : "+r"(c3),"+r"(c1),"+r"(c2) : "r"(t1),"r"(t2),"g"(0) : "cc"); } while (0);-
165 r[2] = c3;-
166 c3 = 0;-
167 do { unsigned long t1,t2; asm ("mulq %3" : "=a"(t1),"=d"(t2) : "a"(a[0]),"m"(b[3]) : "cc"); asm ("addq %3,%0; adcq %4,%1; adcq %5,%2" : "+r"(c1),"+r"(c2),"+r"(c3) : "r"(t1),"r"(t2),"g"(0) : "cc"); } while (0);-
168 do { unsigned long t1,t2; asm ("mulq %3" : "=a"(t1),"=d"(t2) : "a"(a[1]),"m"(b[2]) : "cc"); asm ("addq %3,%0; adcq %4,%1; adcq %5,%2" : "+r"(c1),"+r"(c2),"+r"(c3) : "r"(t1),"r"(t2),"g"(0) : "cc"); } while (0);-
169 do { unsigned long t1,t2; asm ("mulq %3" : "=a"(t1),"=d"(t2) : "a"(a[2]),"m"(b[1]) : "cc"); asm ("addq %3,%0; adcq %4,%1; adcq %5,%2" : "+r"(c1),"+r"(c2),"+r"(c3) : "r"(t1),"r"(t2),"g"(0) : "cc"); } while (0);-
170 do { unsigned long t1,t2; asm ("mulq %3" : "=a"(t1),"=d"(t2) : "a"(a[3]),"m"(b[0]) : "cc"); asm ("addq %3,%0; adcq %4,%1; adcq %5,%2" : "+r"(c1),"+r"(c2),"+r"(c3) : "r"(t1),"r"(t2),"g"(0) : "cc"); } while (0);-
171 r[3] = c1;-
172 c1 = 0;-
173 do { unsigned long t1,t2; asm ("mulq %3" : "=a"(t1),"=d"(t2) : "a"(a[4]),"m"(b[0]) : "cc"); asm ("addq %3,%0; adcq %4,%1; adcq %5,%2" : "+r"(c2),"+r"(c3),"+r"(c1) : "r"(t1),"r"(t2),"g"(0) : "cc"); } while (0);-
174 do { unsigned long t1,t2; asm ("mulq %3" : "=a"(t1),"=d"(t2) : "a"(a[3]),"m"(b[1]) : "cc"); asm ("addq %3,%0; adcq %4,%1; adcq %5,%2" : "+r"(c2),"+r"(c3),"+r"(c1) : "r"(t1),"r"(t2),"g"(0) : "cc"); } while (0);-
175 do { unsigned long t1,t2; asm ("mulq %3" : "=a"(t1),"=d"(t2) : "a"(a[2]),"m"(b[2]) : "cc"); asm ("addq %3,%0; adcq %4,%1; adcq %5,%2" : "+r"(c2),"+r"(c3),"+r"(c1) : "r"(t1),"r"(t2),"g"(0) : "cc"); } while (0);-
176 do { unsigned long t1,t2; asm ("mulq %3" : "=a"(t1),"=d"(t2) : "a"(a[1]),"m"(b[3]) : "cc"); asm ("addq %3,%0; adcq %4,%1; adcq %5,%2" : "+r"(c2),"+r"(c3),"+r"(c1) : "r"(t1),"r"(t2),"g"(0) : "cc"); } while (0);-
177 do { unsigned long t1,t2; asm ("mulq %3" : "=a"(t1),"=d"(t2) : "a"(a[0]),"m"(b[4]) : "cc"); asm ("addq %3,%0; adcq %4,%1; adcq %5,%2" : "+r"(c2),"+r"(c3),"+r"(c1) : "r"(t1),"r"(t2),"g"(0) : "cc"); } while (0);-
178 r[4] = c2;-
179 c2 = 0;-
180 do { unsigned long t1,t2; asm ("mulq %3" : "=a"(t1),"=d"(t2) : "a"(a[0]),"m"(b[5]) : "cc"); asm ("addq %3,%0; adcq %4,%1; adcq %5,%2" : "+r"(c3),"+r"(c1),"+r"(c2) : "r"(t1),"r"(t2),"g"(0) : "cc"); } while (0);-
181 do { unsigned long t1,t2; asm ("mulq %3" : "=a"(t1),"=d"(t2) : "a"(a[1]),"m"(b[4]) : "cc"); asm ("addq %3,%0; adcq %4,%1; adcq %5,%2" : "+r"(c3),"+r"(c1),"+r"(c2) : "r"(t1),"r"(t2),"g"(0) : "cc"); } while (0);-
182 do { unsigned long t1,t2; asm ("mulq %3" : "=a"(t1),"=d"(t2) : "a"(a[2]),"m"(b[3]) : "cc"); asm ("addq %3,%0; adcq %4,%1; adcq %5,%2" : "+r"(c3),"+r"(c1),"+r"(c2) : "r"(t1),"r"(t2),"g"(0) : "cc"); } while (0);-
183 do { unsigned long t1,t2; asm ("mulq %3" : "=a"(t1),"=d"(t2) : "a"(a[3]),"m"(b[2]) : "cc"); asm ("addq %3,%0; adcq %4,%1; adcq %5,%2" : "+r"(c3),"+r"(c1),"+r"(c2) : "r"(t1),"r"(t2),"g"(0) : "cc"); } while (0);-
184 do { unsigned long t1,t2; asm ("mulq %3" : "=a"(t1),"=d"(t2) : "a"(a[4]),"m"(b[1]) : "cc"); asm ("addq %3,%0; adcq %4,%1; adcq %5,%2" : "+r"(c3),"+r"(c1),"+r"(c2) : "r"(t1),"r"(t2),"g"(0) : "cc"); } while (0);-
185 do { unsigned long t1,t2; asm ("mulq %3" : "=a"(t1),"=d"(t2) : "a"(a[5]),"m"(b[0]) : "cc"); asm ("addq %3,%0; adcq %4,%1; adcq %5,%2" : "+r"(c3),"+r"(c1),"+r"(c2) : "r"(t1),"r"(t2),"g"(0) : "cc"); } while (0);-
186 r[5] = c3;-
187 c3 = 0;-
188 do { unsigned long t1,t2; asm ("mulq %3" : "=a"(t1),"=d"(t2) : "a"(a[6]),"m"(b[0]) : "cc"); asm ("addq %3,%0; adcq %4,%1; adcq %5,%2" : "+r"(c1),"+r"(c2),"+r"(c3) : "r"(t1),"r"(t2),"g"(0) : "cc"); } while (0);-
189 do { unsigned long t1,t2; asm ("mulq %3" : "=a"(t1),"=d"(t2) : "a"(a[5]),"m"(b[1]) : "cc"); asm ("addq %3,%0; adcq %4,%1; adcq %5,%2" : "+r"(c1),"+r"(c2),"+r"(c3) : "r"(t1),"r"(t2),"g"(0) : "cc"); } while (0);-
190 do { unsigned long t1,t2; asm ("mulq %3" : "=a"(t1),"=d"(t2) : "a"(a[4]),"m"(b[2]) : "cc"); asm ("addq %3,%0; adcq %4,%1; adcq %5,%2" : "+r"(c1),"+r"(c2),"+r"(c3) : "r"(t1),"r"(t2),"g"(0) : "cc"); } while (0);-
191 do { unsigned long t1,t2; asm ("mulq %3" : "=a"(t1),"=d"(t2) : "a"(a[3]),"m"(b[3]) : "cc"); asm ("addq %3,%0; adcq %4,%1; adcq %5,%2" : "+r"(c1),"+r"(c2),"+r"(c3) : "r"(t1),"r"(t2),"g"(0) : "cc"); } while (0);-
192 do { unsigned long t1,t2; asm ("mulq %3" : "=a"(t1),"=d"(t2) : "a"(a[2]),"m"(b[4]) : "cc"); asm ("addq %3,%0; adcq %4,%1; adcq %5,%2" : "+r"(c1),"+r"(c2),"+r"(c3) : "r"(t1),"r"(t2),"g"(0) : "cc"); } while (0);-
193 do { unsigned long t1,t2; asm ("mulq %3" : "=a"(t1),"=d"(t2) : "a"(a[1]),"m"(b[5]) : "cc"); asm ("addq %3,%0; adcq %4,%1; adcq %5,%2" : "+r"(c1),"+r"(c2),"+r"(c3) : "r"(t1),"r"(t2),"g"(0) : "cc"); } while (0);-
194 do { unsigned long t1,t2; asm ("mulq %3" : "=a"(t1),"=d"(t2) : "a"(a[0]),"m"(b[6]) : "cc"); asm ("addq %3,%0; adcq %4,%1; adcq %5,%2" : "+r"(c1),"+r"(c2),"+r"(c3) : "r"(t1),"r"(t2),"g"(0) : "cc"); } while (0);-
195 r[6] = c1;-
196 c1 = 0;-
197 do { unsigned long t1,t2; asm ("mulq %3" : "=a"(t1),"=d"(t2) : "a"(a[0]),"m"(b[7]) : "cc"); asm ("addq %3,%0; adcq %4,%1; adcq %5,%2" : "+r"(c2),"+r"(c3),"+r"(c1) : "r"(t1),"r"(t2),"g"(0) : "cc"); } while (0);-
198 do { unsigned long t1,t2; asm ("mulq %3" : "=a"(t1),"=d"(t2) : "a"(a[1]),"m"(b[6]) : "cc"); asm ("addq %3,%0; adcq %4,%1; adcq %5,%2" : "+r"(c2),"+r"(c3),"+r"(c1) : "r"(t1),"r"(t2),"g"(0) : "cc"); } while (0);-
199 do { unsigned long t1,t2; asm ("mulq %3" : "=a"(t1),"=d"(t2) : "a"(a[2]),"m"(b[5]) : "cc"); asm ("addq %3,%0; adcq %4,%1; adcq %5,%2" : "+r"(c2),"+r"(c3),"+r"(c1) : "r"(t1),"r"(t2),"g"(0) : "cc"); } while (0);-
200 do { unsigned long t1,t2; asm ("mulq %3" : "=a"(t1),"=d"(t2) : "a"(a[3]),"m"(b[4]) : "cc"); asm ("addq %3,%0; adcq %4,%1; adcq %5,%2" : "+r"(c2),"+r"(c3),"+r"(c1) : "r"(t1),"r"(t2),"g"(0) : "cc"); } while (0);-
201 do { unsigned long t1,t2; asm ("mulq %3" : "=a"(t1),"=d"(t2) : "a"(a[4]),"m"(b[3]) : "cc"); asm ("addq %3,%0; adcq %4,%1; adcq %5,%2" : "+r"(c2),"+r"(c3),"+r"(c1) : "r"(t1),"r"(t2),"g"(0) : "cc"); } while (0);-
202 do { unsigned long t1,t2; asm ("mulq %3" : "=a"(t1),"=d"(t2) : "a"(a[5]),"m"(b[2]) : "cc"); asm ("addq %3,%0; adcq %4,%1; adcq %5,%2" : "+r"(c2),"+r"(c3),"+r"(c1) : "r"(t1),"r"(t2),"g"(0) : "cc"); } while (0);-
203 do { unsigned long t1,t2; asm ("mulq %3" : "=a"(t1),"=d"(t2) : "a"(a[6]),"m"(b[1]) : "cc"); asm ("addq %3,%0; adcq %4,%1; adcq %5,%2" : "+r"(c2),"+r"(c3),"+r"(c1) : "r"(t1),"r"(t2),"g"(0) : "cc"); } while (0);-
204 do { unsigned long t1,t2; asm ("mulq %3" : "=a"(t1),"=d"(t2) : "a"(a[7]),"m"(b[0]) : "cc"); asm ("addq %3,%0; adcq %4,%1; adcq %5,%2" : "+r"(c2),"+r"(c3),"+r"(c1) : "r"(t1),"r"(t2),"g"(0) : "cc"); } while (0);-
205 r[7] = c2;-
206 c2 = 0;-
207 do { unsigned long t1,t2; asm ("mulq %3" : "=a"(t1),"=d"(t2) : "a"(a[7]),"m"(b[1]) : "cc"); asm ("addq %3,%0; adcq %4,%1; adcq %5,%2" : "+r"(c3),"+r"(c1),"+r"(c2) : "r"(t1),"r"(t2),"g"(0) : "cc"); } while (0);-
208 do { unsigned long t1,t2; asm ("mulq %3" : "=a"(t1),"=d"(t2) : "a"(a[6]),"m"(b[2]) : "cc"); asm ("addq %3,%0; adcq %4,%1; adcq %5,%2" : "+r"(c3),"+r"(c1),"+r"(c2) : "r"(t1),"r"(t2),"g"(0) : "cc"); } while (0);-
209 do { unsigned long t1,t2; asm ("mulq %3" : "=a"(t1),"=d"(t2) : "a"(a[5]),"m"(b[3]) : "cc"); asm ("addq %3,%0; adcq %4,%1; adcq %5,%2" : "+r"(c3),"+r"(c1),"+r"(c2) : "r"(t1),"r"(t2),"g"(0) : "cc"); } while (0);-
210 do { unsigned long t1,t2; asm ("mulq %3" : "=a"(t1),"=d"(t2) : "a"(a[4]),"m"(b[4]) : "cc"); asm ("addq %3,%0; adcq %4,%1; adcq %5,%2" : "+r"(c3),"+r"(c1),"+r"(c2) : "r"(t1),"r"(t2),"g"(0) : "cc"); } while (0);-
211 do { unsigned long t1,t2; asm ("mulq %3" : "=a"(t1),"=d"(t2) : "a"(a[3]),"m"(b[5]) : "cc"); asm ("addq %3,%0; adcq %4,%1; adcq %5,%2" : "+r"(c3),"+r"(c1),"+r"(c2) : "r"(t1),"r"(t2),"g"(0) : "cc"); } while (0);-
212 do { unsigned long t1,t2; asm ("mulq %3" : "=a"(t1),"=d"(t2) : "a"(a[2]),"m"(b[6]) : "cc"); asm ("addq %3,%0; adcq %4,%1; adcq %5,%2" : "+r"(c3),"+r"(c1),"+r"(c2) : "r"(t1),"r"(t2),"g"(0) : "cc"); } while (0);-
213 do { unsigned long t1,t2; asm ("mulq %3" : "=a"(t1),"=d"(t2) : "a"(a[1]),"m"(b[7]) : "cc"); asm ("addq %3,%0; adcq %4,%1; adcq %5,%2" : "+r"(c3),"+r"(c1),"+r"(c2) : "r"(t1),"r"(t2),"g"(0) : "cc"); } while (0);-
214 r[8] = c3;-
215 c3 = 0;-
216 do { unsigned long t1,t2; asm ("mulq %3" : "=a"(t1),"=d"(t2) : "a"(a[2]),"m"(b[7]) : "cc"); asm ("addq %3,%0; adcq %4,%1; adcq %5,%2" : "+r"(c1),"+r"(c2),"+r"(c3) : "r"(t1),"r"(t2),"g"(0) : "cc"); } while (0);-
217 do { unsigned long t1,t2; asm ("mulq %3" : "=a"(t1),"=d"(t2) : "a"(a[3]),"m"(b[6]) : "cc"); asm ("addq %3,%0; adcq %4,%1; adcq %5,%2" : "+r"(c1),"+r"(c2),"+r"(c3) : "r"(t1),"r"(t2),"g"(0) : "cc"); } while (0);-
218 do { unsigned long t1,t2; asm ("mulq %3" : "=a"(t1),"=d"(t2) : "a"(a[4]),"m"(b[5]) : "cc"); asm ("addq %3,%0; adcq %4,%1; adcq %5,%2" : "+r"(c1),"+r"(c2),"+r"(c3) : "r"(t1),"r"(t2),"g"(0) : "cc"); } while (0);-
219 do { unsigned long t1,t2; asm ("mulq %3" : "=a"(t1),"=d"(t2) : "a"(a[5]),"m"(b[4]) : "cc"); asm ("addq %3,%0; adcq %4,%1; adcq %5,%2" : "+r"(c1),"+r"(c2),"+r"(c3) : "r"(t1),"r"(t2),"g"(0) : "cc"); } while (0);-
220 do { unsigned long t1,t2; asm ("mulq %3" : "=a"(t1),"=d"(t2) : "a"(a[6]),"m"(b[3]) : "cc"); asm ("addq %3,%0; adcq %4,%1; adcq %5,%2" : "+r"(c1),"+r"(c2),"+r"(c3) : "r"(t1),"r"(t2),"g"(0) : "cc"); } while (0);-
221 do { unsigned long t1,t2; asm ("mulq %3" : "=a"(t1),"=d"(t2) : "a"(a[7]),"m"(b[2]) : "cc"); asm ("addq %3,%0; adcq %4,%1; adcq %5,%2" : "+r"(c1),"+r"(c2),"+r"(c3) : "r"(t1),"r"(t2),"g"(0) : "cc"); } while (0);-
222 r[9] = c1;-
223 c1 = 0;-
224 do { unsigned long t1,t2; asm ("mulq %3" : "=a"(t1),"=d"(t2) : "a"(a[7]),"m"(b[3]) : "cc"); asm ("addq %3,%0; adcq %4,%1; adcq %5,%2" : "+r"(c2),"+r"(c3),"+r"(c1) : "r"(t1),"r"(t2),"g"(0) : "cc"); } while (0);-
225 do { unsigned long t1,t2; asm ("mulq %3" : "=a"(t1),"=d"(t2) : "a"(a[6]),"m"(b[4]) : "cc"); asm ("addq %3,%0; adcq %4,%1; adcq %5,%2" : "+r"(c2),"+r"(c3),"+r"(c1) : "r"(t1),"r"(t2),"g"(0) : "cc"); } while (0);-
226 do { unsigned long t1,t2; asm ("mulq %3" : "=a"(t1),"=d"(t2) : "a"(a[5]),"m"(b[5]) : "cc"); asm ("addq %3,%0; adcq %4,%1; adcq %5,%2" : "+r"(c2),"+r"(c3),"+r"(c1) : "r"(t1),"r"(t2),"g"(0) : "cc"); } while (0);-
227 do { unsigned long t1,t2; asm ("mulq %3" : "=a"(t1),"=d"(t2) : "a"(a[4]),"m"(b[6]) : "cc"); asm ("addq %3,%0; adcq %4,%1; adcq %5,%2" : "+r"(c2),"+r"(c3),"+r"(c1) : "r"(t1),"r"(t2),"g"(0) : "cc"); } while (0);-
228 do { unsigned long t1,t2; asm ("mulq %3" : "=a"(t1),"=d"(t2) : "a"(a[3]),"m"(b[7]) : "cc"); asm ("addq %3,%0; adcq %4,%1; adcq %5,%2" : "+r"(c2),"+r"(c3),"+r"(c1) : "r"(t1),"r"(t2),"g"(0) : "cc"); } while (0);-
229 r[10] = c2;-
230 c2 = 0;-
231 do { unsigned long t1,t2; asm ("mulq %3" : "=a"(t1),"=d"(t2) : "a"(a[4]),"m"(b[7]) : "cc"); asm ("addq %3,%0; adcq %4,%1; adcq %5,%2" : "+r"(c3),"+r"(c1),"+r"(c2) : "r"(t1),"r"(t2),"g"(0) : "cc"); } while (0);-
232 do { unsigned long t1,t2; asm ("mulq %3" : "=a"(t1),"=d"(t2) : "a"(a[5]),"m"(b[6]) : "cc"); asm ("addq %3,%0; adcq %4,%1; adcq %5,%2" : "+r"(c3),"+r"(c1),"+r"(c2) : "r"(t1),"r"(t2),"g"(0) : "cc"); } while (0);-
233 do { unsigned long t1,t2; asm ("mulq %3" : "=a"(t1),"=d"(t2) : "a"(a[6]),"m"(b[5]) : "cc"); asm ("addq %3,%0; adcq %4,%1; adcq %5,%2" : "+r"(c3),"+r"(c1),"+r"(c2) : "r"(t1),"r"(t2),"g"(0) : "cc"); } while (0);-
234 do { unsigned long t1,t2; asm ("mulq %3" : "=a"(t1),"=d"(t2) : "a"(a[7]),"m"(b[4]) : "cc"); asm ("addq %3,%0; adcq %4,%1; adcq %5,%2" : "+r"(c3),"+r"(c1),"+r"(c2) : "r"(t1),"r"(t2),"g"(0) : "cc"); } while (0);-
235 r[11] = c3;-
236 c3 = 0;-
237 do { unsigned long t1,t2; asm ("mulq %3" : "=a"(t1),"=d"(t2) : "a"(a[7]),"m"(b[5]) : "cc"); asm ("addq %3,%0; adcq %4,%1; adcq %5,%2" : "+r"(c1),"+r"(c2),"+r"(c3) : "r"(t1),"r"(t2),"g"(0) : "cc"); } while (0);-
238 do { unsigned long t1,t2; asm ("mulq %3" : "=a"(t1),"=d"(t2) : "a"(a[6]),"m"(b[6]) : "cc"); asm ("addq %3,%0; adcq %4,%1; adcq %5,%2" : "+r"(c1),"+r"(c2),"+r"(c3) : "r"(t1),"r"(t2),"g"(0) : "cc"); } while (0);-
239 do { unsigned long t1,t2; asm ("mulq %3" : "=a"(t1),"=d"(t2) : "a"(a[5]),"m"(b[7]) : "cc"); asm ("addq %3,%0; adcq %4,%1; adcq %5,%2" : "+r"(c1),"+r"(c2),"+r"(c3) : "r"(t1),"r"(t2),"g"(0) : "cc"); } while (0);-
240 r[12] = c1;-
241 c1 = 0;-
242 do { unsigned long t1,t2; asm ("mulq %3" : "=a"(t1),"=d"(t2) : "a"(a[6]),"m"(b[7]) : "cc"); asm ("addq %3,%0; adcq %4,%1; adcq %5,%2" : "+r"(c2),"+r"(c3),"+r"(c1) : "r"(t1),"r"(t2),"g"(0) : "cc"); } while (0);-
243 do { unsigned long t1,t2; asm ("mulq %3" : "=a"(t1),"=d"(t2) : "a"(a[7]),"m"(b[6]) : "cc"); asm ("addq %3,%0; adcq %4,%1; adcq %5,%2" : "+r"(c2),"+r"(c3),"+r"(c1) : "r"(t1),"r"(t2),"g"(0) : "cc"); } while (0);-
244 r[13] = c2;-
245 c2 = 0;-
246 do { unsigned long t1,t2; asm ("mulq %3" : "=a"(t1),"=d"(t2) : "a"(a[7]),"m"(b[7]) : "cc"); asm ("addq %3,%0; adcq %4,%1; adcq %5,%2" : "+r"(c3),"+r"(c1),"+r"(c2) : "r"(t1),"r"(t2),"g"(0) : "cc"); } while (0);-
247 r[14] = c3;-
248 r[15] = c1;-
249}
executed 858373 times by 1 test: end of block
Executed by:
  • libcrypto.so.1.1
858373
250-
251void bn_mul_comba4(unsigned long *r, unsigned long *a, unsigned long *b)-
252{-
253 unsigned long c1, c2, c3;-
254-
255 c1 = 0;-
256 c2 = 0;-
257 c3 = 0;-
258 do { unsigned long t1,t2; asm ("mulq %3" : "=a"(t1),"=d"(t2) : "a"(a[0]),"m"(b[0]) : "cc"); asm ("addq %3,%0; adcq %4,%1; adcq %5,%2" : "+r"(c1),"+r"(c2),"+r"(c3) : "r"(t1),"r"(t2),"g"(0) : "cc"); } while (0);-
259 r[0] = c1;-
260 c1 = 0;-
261 do { unsigned long t1,t2; asm ("mulq %3" : "=a"(t1),"=d"(t2) : "a"(a[0]),"m"(b[1]) : "cc"); asm ("addq %3,%0; adcq %4,%1; adcq %5,%2" : "+r"(c2),"+r"(c3),"+r"(c1) : "r"(t1),"r"(t2),"g"(0) : "cc"); } while (0);-
262 do { unsigned long t1,t2; asm ("mulq %3" : "=a"(t1),"=d"(t2) : "a"(a[1]),"m"(b[0]) : "cc"); asm ("addq %3,%0; adcq %4,%1; adcq %5,%2" : "+r"(c2),"+r"(c3),"+r"(c1) : "r"(t1),"r"(t2),"g"(0) : "cc"); } while (0);-
263 r[1] = c2;-
264 c2 = 0;-
265 do { unsigned long t1,t2; asm ("mulq %3" : "=a"(t1),"=d"(t2) : "a"(a[2]),"m"(b[0]) : "cc"); asm ("addq %3,%0; adcq %4,%1; adcq %5,%2" : "+r"(c3),"+r"(c1),"+r"(c2) : "r"(t1),"r"(t2),"g"(0) : "cc"); } while (0);-
266 do { unsigned long t1,t2; asm ("mulq %3" : "=a"(t1),"=d"(t2) : "a"(a[1]),"m"(b[1]) : "cc"); asm ("addq %3,%0; adcq %4,%1; adcq %5,%2" : "+r"(c3),"+r"(c1),"+r"(c2) : "r"(t1),"r"(t2),"g"(0) : "cc"); } while (0);-
267 do { unsigned long t1,t2; asm ("mulq %3" : "=a"(t1),"=d"(t2) : "a"(a[0]),"m"(b[2]) : "cc"); asm ("addq %3,%0; adcq %4,%1; adcq %5,%2" : "+r"(c3),"+r"(c1),"+r"(c2) : "r"(t1),"r"(t2),"g"(0) : "cc"); } while (0);-
268 r[2] = c3;-
269 c3 = 0;-
270 do { unsigned long t1,t2; asm ("mulq %3" : "=a"(t1),"=d"(t2) : "a"(a[0]),"m"(b[3]) : "cc"); asm ("addq %3,%0; adcq %4,%1; adcq %5,%2" : "+r"(c1),"+r"(c2),"+r"(c3) : "r"(t1),"r"(t2),"g"(0) : "cc"); } while (0);-
271 do { unsigned long t1,t2; asm ("mulq %3" : "=a"(t1),"=d"(t2) : "a"(a[1]),"m"(b[2]) : "cc"); asm ("addq %3,%0; adcq %4,%1; adcq %5,%2" : "+r"(c1),"+r"(c2),"+r"(c3) : "r"(t1),"r"(t2),"g"(0) : "cc"); } while (0);-
272 do { unsigned long t1,t2; asm ("mulq %3" : "=a"(t1),"=d"(t2) : "a"(a[2]),"m"(b[1]) : "cc"); asm ("addq %3,%0; adcq %4,%1; adcq %5,%2" : "+r"(c1),"+r"(c2),"+r"(c3) : "r"(t1),"r"(t2),"g"(0) : "cc"); } while (0);-
273 do { unsigned long t1,t2; asm ("mulq %3" : "=a"(t1),"=d"(t2) : "a"(a[3]),"m"(b[0]) : "cc"); asm ("addq %3,%0; adcq %4,%1; adcq %5,%2" : "+r"(c1),"+r"(c2),"+r"(c3) : "r"(t1),"r"(t2),"g"(0) : "cc"); } while (0);-
274 r[3] = c1;-
275 c1 = 0;-
276 do { unsigned long t1,t2; asm ("mulq %3" : "=a"(t1),"=d"(t2) : "a"(a[3]),"m"(b[1]) : "cc"); asm ("addq %3,%0; adcq %4,%1; adcq %5,%2" : "+r"(c2),"+r"(c3),"+r"(c1) : "r"(t1),"r"(t2),"g"(0) : "cc"); } while (0);-
277 do { unsigned long t1,t2; asm ("mulq %3" : "=a"(t1),"=d"(t2) : "a"(a[2]),"m"(b[2]) : "cc"); asm ("addq %3,%0; adcq %4,%1; adcq %5,%2" : "+r"(c2),"+r"(c3),"+r"(c1) : "r"(t1),"r"(t2),"g"(0) : "cc"); } while (0);-
278 do { unsigned long t1,t2; asm ("mulq %3" : "=a"(t1),"=d"(t2) : "a"(a[1]),"m"(b[3]) : "cc"); asm ("addq %3,%0; adcq %4,%1; adcq %5,%2" : "+r"(c2),"+r"(c3),"+r"(c1) : "r"(t1),"r"(t2),"g"(0) : "cc"); } while (0);-
279 r[4] = c2;-
280 c2 = 0;-
281 do { unsigned long t1,t2; asm ("mulq %3" : "=a"(t1),"=d"(t2) : "a"(a[2]),"m"(b[3]) : "cc"); asm ("addq %3,%0; adcq %4,%1; adcq %5,%2" : "+r"(c3),"+r"(c1),"+r"(c2) : "r"(t1),"r"(t2),"g"(0) : "cc"); } while (0);-
282 do { unsigned long t1,t2; asm ("mulq %3" : "=a"(t1),"=d"(t2) : "a"(a[3]),"m"(b[2]) : "cc"); asm ("addq %3,%0; adcq %4,%1; adcq %5,%2" : "+r"(c3),"+r"(c1),"+r"(c2) : "r"(t1),"r"(t2),"g"(0) : "cc"); } while (0);-
283 r[5] = c3;-
284 c3 = 0;-
285 do { unsigned long t1,t2; asm ("mulq %3" : "=a"(t1),"=d"(t2) : "a"(a[3]),"m"(b[3]) : "cc"); asm ("addq %3,%0; adcq %4,%1; adcq %5,%2" : "+r"(c1),"+r"(c2),"+r"(c3) : "r"(t1),"r"(t2),"g"(0) : "cc"); } while (0);-
286 r[6] = c1;-
287 r[7] = c2;-
288}
never executed: end of block
0
289-
290void bn_sqr_comba8(unsigned long *r, const unsigned long *a)-
291{-
292 unsigned long c1, c2, c3;-
293-
294 c1 = 0;-
295 c2 = 0;-
296 c3 = 0;-
297 do { unsigned long t1,t2; asm ("mulq %2" : "=a"(t1),"=d"(t2) : "a"(a[0]) : "cc"); asm ("addq %3,%0; adcq %4,%1; adcq %5,%2" : "+r"(c1),"+r"(c2),"+r"(c3) : "r"(t1),"r"(t2),"g"(0) : "cc"); } while (0);-
298 r[0] = c1;-
299 c1 = 0;-
300 do { unsigned long t1,t2; asm ("mulq %3" : "=a"(t1),"=d"(t2) : "a"((a)[1]),"m"((a)[0]) : "cc"); asm ("addq %3,%0; adcq %4,%1; adcq %5,%2" : "+r"(c2),"+r"(c3),"+r"(c1) : "r"(t1),"r"(t2),"g"(0) : "cc"); asm ("addq %3,%0; adcq %4,%1; adcq %5,%2" : "+r"(c2),"+r"(c3),"+r"(c1) : "r"(t1),"r"(t2),"g"(0) : "cc"); } while (0);-
301 r[1] = c2;-
302 c2 = 0;-
303 do { unsigned long t1,t2; asm ("mulq %2" : "=a"(t1),"=d"(t2) : "a"(a[1]) : "cc"); asm ("addq %3,%0; adcq %4,%1; adcq %5,%2" : "+r"(c3),"+r"(c1),"+r"(c2) : "r"(t1),"r"(t2),"g"(0) : "cc"); } while (0);-
304 do { unsigned long t1,t2; asm ("mulq %3" : "=a"(t1),"=d"(t2) : "a"((a)[2]),"m"((a)[0]) : "cc"); asm ("addq %3,%0; adcq %4,%1; adcq %5,%2" : "+r"(c3),"+r"(c1),"+r"(c2) : "r"(t1),"r"(t2),"g"(0) : "cc"); asm ("addq %3,%0; adcq %4,%1; adcq %5,%2" : "+r"(c3),"+r"(c1),"+r"(c2) : "r"(t1),"r"(t2),"g"(0) : "cc"); } while (0);-
305 r[2] = c3;-
306 c3 = 0;-
307 do { unsigned long t1,t2; asm ("mulq %3" : "=a"(t1),"=d"(t2) : "a"((a)[3]),"m"((a)[0]) : "cc"); asm ("addq %3,%0; adcq %4,%1; adcq %5,%2" : "+r"(c1),"+r"(c2),"+r"(c3) : "r"(t1),"r"(t2),"g"(0) : "cc"); asm ("addq %3,%0; adcq %4,%1; adcq %5,%2" : "+r"(c1),"+r"(c2),"+r"(c3) : "r"(t1),"r"(t2),"g"(0) : "cc"); } while (0);-
308 do { unsigned long t1,t2; asm ("mulq %3" : "=a"(t1),"=d"(t2) : "a"((a)[2]),"m"((a)[1]) : "cc"); asm ("addq %3,%0; adcq %4,%1; adcq %5,%2" : "+r"(c1),"+r"(c2),"+r"(c3) : "r"(t1),"r"(t2),"g"(0) : "cc"); asm ("addq %3,%0; adcq %4,%1; adcq %5,%2" : "+r"(c1),"+r"(c2),"+r"(c3) : "r"(t1),"r"(t2),"g"(0) : "cc"); } while (0);-
309 r[3] = c1;-
310 c1 = 0;-
311 do { unsigned long t1,t2; asm ("mulq %2" : "=a"(t1),"=d"(t2) : "a"(a[2]) : "cc"); asm ("addq %3,%0; adcq %4,%1; adcq %5,%2" : "+r"(c2),"+r"(c3),"+r"(c1) : "r"(t1),"r"(t2),"g"(0) : "cc"); } while (0);-
312 do { unsigned long t1,t2; asm ("mulq %3" : "=a"(t1),"=d"(t2) : "a"((a)[3]),"m"((a)[1]) : "cc"); asm ("addq %3,%0; adcq %4,%1; adcq %5,%2" : "+r"(c2),"+r"(c3),"+r"(c1) : "r"(t1),"r"(t2),"g"(0) : "cc"); asm ("addq %3,%0; adcq %4,%1; adcq %5,%2" : "+r"(c2),"+r"(c3),"+r"(c1) : "r"(t1),"r"(t2),"g"(0) : "cc"); } while (0);-
313 do { unsigned long t1,t2; asm ("mulq %3" : "=a"(t1),"=d"(t2) : "a"((a)[4]),"m"((a)[0]) : "cc"); asm ("addq %3,%0; adcq %4,%1; adcq %5,%2" : "+r"(c2),"+r"(c3),"+r"(c1) : "r"(t1),"r"(t2),"g"(0) : "cc"); asm ("addq %3,%0; adcq %4,%1; adcq %5,%2" : "+r"(c2),"+r"(c3),"+r"(c1) : "r"(t1),"r"(t2),"g"(0) : "cc"); } while (0);-
314 r[4] = c2;-
315 c2 = 0;-
316 do { unsigned long t1,t2; asm ("mulq %3" : "=a"(t1),"=d"(t2) : "a"((a)[5]),"m"((a)[0]) : "cc"); asm ("addq %3,%0; adcq %4,%1; adcq %5,%2" : "+r"(c3),"+r"(c1),"+r"(c2) : "r"(t1),"r"(t2),"g"(0) : "cc"); asm ("addq %3,%0; adcq %4,%1; adcq %5,%2" : "+r"(c3),"+r"(c1),"+r"(c2) : "r"(t1),"r"(t2),"g"(0) : "cc"); } while (0);-
317 do { unsigned long t1,t2; asm ("mulq %3" : "=a"(t1),"=d"(t2) : "a"((a)[4]),"m"((a)[1]) : "cc"); asm ("addq %3,%0; adcq %4,%1; adcq %5,%2" : "+r"(c3),"+r"(c1),"+r"(c2) : "r"(t1),"r"(t2),"g"(0) : "cc"); asm ("addq %3,%0; adcq %4,%1; adcq %5,%2" : "+r"(c3),"+r"(c1),"+r"(c2) : "r"(t1),"r"(t2),"g"(0) : "cc"); } while (0);-
318 do { unsigned long t1,t2; asm ("mulq %3" : "=a"(t1),"=d"(t2) : "a"((a)[3]),"m"((a)[2]) : "cc"); asm ("addq %3,%0; adcq %4,%1; adcq %5,%2" : "+r"(c3),"+r"(c1),"+r"(c2) : "r"(t1),"r"(t2),"g"(0) : "cc"); asm ("addq %3,%0; adcq %4,%1; adcq %5,%2" : "+r"(c3),"+r"(c1),"+r"(c2) : "r"(t1),"r"(t2),"g"(0) : "cc"); } while (0);-
319 r[5] = c3;-
320 c3 = 0;-
321 do { unsigned long t1,t2; asm ("mulq %2" : "=a"(t1),"=d"(t2) : "a"(a[3]) : "cc"); asm ("addq %3,%0; adcq %4,%1; adcq %5,%2" : "+r"(c1),"+r"(c2),"+r"(c3) : "r"(t1),"r"(t2),"g"(0) : "cc"); } while (0);-
322 do { unsigned long t1,t2; asm ("mulq %3" : "=a"(t1),"=d"(t2) : "a"((a)[4]),"m"((a)[2]) : "cc"); asm ("addq %3,%0; adcq %4,%1; adcq %5,%2" : "+r"(c1),"+r"(c2),"+r"(c3) : "r"(t1),"r"(t2),"g"(0) : "cc"); asm ("addq %3,%0; adcq %4,%1; adcq %5,%2" : "+r"(c1),"+r"(c2),"+r"(c3) : "r"(t1),"r"(t2),"g"(0) : "cc"); } while (0);-
323 do { unsigned long t1,t2; asm ("mulq %3" : "=a"(t1),"=d"(t2) : "a"((a)[5]),"m"((a)[1]) : "cc"); asm ("addq %3,%0; adcq %4,%1; adcq %5,%2" : "+r"(c1),"+r"(c2),"+r"(c3) : "r"(t1),"r"(t2),"g"(0) : "cc"); asm ("addq %3,%0; adcq %4,%1; adcq %5,%2" : "+r"(c1),"+r"(c2),"+r"(c3) : "r"(t1),"r"(t2),"g"(0) : "cc"); } while (0);-
324 do { unsigned long t1,t2; asm ("mulq %3" : "=a"(t1),"=d"(t2) : "a"((a)[6]),"m"((a)[0]) : "cc"); asm ("addq %3,%0; adcq %4,%1; adcq %5,%2" : "+r"(c1),"+r"(c2),"+r"(c3) : "r"(t1),"r"(t2),"g"(0) : "cc"); asm ("addq %3,%0; adcq %4,%1; adcq %5,%2" : "+r"(c1),"+r"(c2),"+r"(c3) : "r"(t1),"r"(t2),"g"(0) : "cc"); } while (0);-
325 r[6] = c1;-
326 c1 = 0;-
327 do { unsigned long t1,t2; asm ("mulq %3" : "=a"(t1),"=d"(t2) : "a"((a)[7]),"m"((a)[0]) : "cc"); asm ("addq %3,%0; adcq %4,%1; adcq %5,%2" : "+r"(c2),"+r"(c3),"+r"(c1) : "r"(t1),"r"(t2),"g"(0) : "cc"); asm ("addq %3,%0; adcq %4,%1; adcq %5,%2" : "+r"(c2),"+r"(c3),"+r"(c1) : "r"(t1),"r"(t2),"g"(0) : "cc"); } while (0);-
328 do { unsigned long t1,t2; asm ("mulq %3" : "=a"(t1),"=d"(t2) : "a"((a)[6]),"m"((a)[1]) : "cc"); asm ("addq %3,%0; adcq %4,%1; adcq %5,%2" : "+r"(c2),"+r"(c3),"+r"(c1) : "r"(t1),"r"(t2),"g"(0) : "cc"); asm ("addq %3,%0; adcq %4,%1; adcq %5,%2" : "+r"(c2),"+r"(c3),"+r"(c1) : "r"(t1),"r"(t2),"g"(0) : "cc"); } while (0);-
329 do { unsigned long t1,t2; asm ("mulq %3" : "=a"(t1),"=d"(t2) : "a"((a)[5]),"m"((a)[2]) : "cc"); asm ("addq %3,%0; adcq %4,%1; adcq %5,%2" : "+r"(c2),"+r"(c3),"+r"(c1) : "r"(t1),"r"(t2),"g"(0) : "cc"); asm ("addq %3,%0; adcq %4,%1; adcq %5,%2" : "+r"(c2),"+r"(c3),"+r"(c1) : "r"(t1),"r"(t2),"g"(0) : "cc"); } while (0);-
330 do { unsigned long t1,t2; asm ("mulq %3" : "=a"(t1),"=d"(t2) : "a"((a)[4]),"m"((a)[3]) : "cc"); asm ("addq %3,%0; adcq %4,%1; adcq %5,%2" : "+r"(c2),"+r"(c3),"+r"(c1) : "r"(t1),"r"(t2),"g"(0) : "cc"); asm ("addq %3,%0; adcq %4,%1; adcq %5,%2" : "+r"(c2),"+r"(c3),"+r"(c1) : "r"(t1),"r"(t2),"g"(0) : "cc"); } while (0);-
331 r[7] = c2;-
332 c2 = 0;-
333 do { unsigned long t1,t2; asm ("mulq %2" : "=a"(t1),"=d"(t2) : "a"(a[4]) : "cc"); asm ("addq %3,%0; adcq %4,%1; adcq %5,%2" : "+r"(c3),"+r"(c1),"+r"(c2) : "r"(t1),"r"(t2),"g"(0) : "cc"); } while (0);-
334 do { unsigned long t1,t2; asm ("mulq %3" : "=a"(t1),"=d"(t2) : "a"((a)[5]),"m"((a)[3]) : "cc"); asm ("addq %3,%0; adcq %4,%1; adcq %5,%2" : "+r"(c3),"+r"(c1),"+r"(c2) : "r"(t1),"r"(t2),"g"(0) : "cc"); asm ("addq %3,%0; adcq %4,%1; adcq %5,%2" : "+r"(c3),"+r"(c1),"+r"(c2) : "r"(t1),"r"(t2),"g"(0) : "cc"); } while (0);-
335 do { unsigned long t1,t2; asm ("mulq %3" : "=a"(t1),"=d"(t2) : "a"((a)[6]),"m"((a)[2]) : "cc"); asm ("addq %3,%0; adcq %4,%1; adcq %5,%2" : "+r"(c3),"+r"(c1),"+r"(c2) : "r"(t1),"r"(t2),"g"(0) : "cc"); asm ("addq %3,%0; adcq %4,%1; adcq %5,%2" : "+r"(c3),"+r"(c1),"+r"(c2) : "r"(t1),"r"(t2),"g"(0) : "cc"); } while (0);-
336 do { unsigned long t1,t2; asm ("mulq %3" : "=a"(t1),"=d"(t2) : "a"((a)[7]),"m"((a)[1]) : "cc"); asm ("addq %3,%0; adcq %4,%1; adcq %5,%2" : "+r"(c3),"+r"(c1),"+r"(c2) : "r"(t1),"r"(t2),"g"(0) : "cc"); asm ("addq %3,%0; adcq %4,%1; adcq %5,%2" : "+r"(c3),"+r"(c1),"+r"(c2) : "r"(t1),"r"(t2),"g"(0) : "cc"); } while (0);-
337 r[8] = c3;-
338 c3 = 0;-
339 do { unsigned long t1,t2; asm ("mulq %3" : "=a"(t1),"=d"(t2) : "a"((a)[7]),"m"((a)[2]) : "cc"); asm ("addq %3,%0; adcq %4,%1; adcq %5,%2" : "+r"(c1),"+r"(c2),"+r"(c3) : "r"(t1),"r"(t2),"g"(0) : "cc"); asm ("addq %3,%0; adcq %4,%1; adcq %5,%2" : "+r"(c1),"+r"(c2),"+r"(c3) : "r"(t1),"r"(t2),"g"(0) : "cc"); } while (0);-
340 do { unsigned long t1,t2; asm ("mulq %3" : "=a"(t1),"=d"(t2) : "a"((a)[6]),"m"((a)[3]) : "cc"); asm ("addq %3,%0; adcq %4,%1; adcq %5,%2" : "+r"(c1),"+r"(c2),"+r"(c3) : "r"(t1),"r"(t2),"g"(0) : "cc"); asm ("addq %3,%0; adcq %4,%1; adcq %5,%2" : "+r"(c1),"+r"(c2),"+r"(c3) : "r"(t1),"r"(t2),"g"(0) : "cc"); } while (0);-
341 do { unsigned long t1,t2; asm ("mulq %3" : "=a"(t1),"=d"(t2) : "a"((a)[5]),"m"((a)[4]) : "cc"); asm ("addq %3,%0; adcq %4,%1; adcq %5,%2" : "+r"(c1),"+r"(c2),"+r"(c3) : "r"(t1),"r"(t2),"g"(0) : "cc"); asm ("addq %3,%0; adcq %4,%1; adcq %5,%2" : "+r"(c1),"+r"(c2),"+r"(c3) : "r"(t1),"r"(t2),"g"(0) : "cc"); } while (0);-
342 r[9] = c1;-
343 c1 = 0;-
344 do { unsigned long t1,t2; asm ("mulq %2" : "=a"(t1),"=d"(t2) : "a"(a[5]) : "cc"); asm ("addq %3,%0; adcq %4,%1; adcq %5,%2" : "+r"(c2),"+r"(c3),"+r"(c1) : "r"(t1),"r"(t2),"g"(0) : "cc"); } while (0);-
345 do { unsigned long t1,t2; asm ("mulq %3" : "=a"(t1),"=d"(t2) : "a"((a)[6]),"m"((a)[4]) : "cc"); asm ("addq %3,%0; adcq %4,%1; adcq %5,%2" : "+r"(c2),"+r"(c3),"+r"(c1) : "r"(t1),"r"(t2),"g"(0) : "cc"); asm ("addq %3,%0; adcq %4,%1; adcq %5,%2" : "+r"(c2),"+r"(c3),"+r"(c1) : "r"(t1),"r"(t2),"g"(0) : "cc"); } while (0);-
346 do { unsigned long t1,t2; asm ("mulq %3" : "=a"(t1),"=d"(t2) : "a"((a)[7]),"m"((a)[3]) : "cc"); asm ("addq %3,%0; adcq %4,%1; adcq %5,%2" : "+r"(c2),"+r"(c3),"+r"(c1) : "r"(t1),"r"(t2),"g"(0) : "cc"); asm ("addq %3,%0; adcq %4,%1; adcq %5,%2" : "+r"(c2),"+r"(c3),"+r"(c1) : "r"(t1),"r"(t2),"g"(0) : "cc"); } while (0);-
347 r[10] = c2;-
348 c2 = 0;-
349 do { unsigned long t1,t2; asm ("mulq %3" : "=a"(t1),"=d"(t2) : "a"((a)[7]),"m"((a)[4]) : "cc"); asm ("addq %3,%0; adcq %4,%1; adcq %5,%2" : "+r"(c3),"+r"(c1),"+r"(c2) : "r"(t1),"r"(t2),"g"(0) : "cc"); asm ("addq %3,%0; adcq %4,%1; adcq %5,%2" : "+r"(c3),"+r"(c1),"+r"(c2) : "r"(t1),"r"(t2),"g"(0) : "cc"); } while (0);-
350 do { unsigned long t1,t2; asm ("mulq %3" : "=a"(t1),"=d"(t2) : "a"((a)[6]),"m"((a)[5]) : "cc"); asm ("addq %3,%0; adcq %4,%1; adcq %5,%2" : "+r"(c3),"+r"(c1),"+r"(c2) : "r"(t1),"r"(t2),"g"(0) : "cc"); asm ("addq %3,%0; adcq %4,%1; adcq %5,%2" : "+r"(c3),"+r"(c1),"+r"(c2) : "r"(t1),"r"(t2),"g"(0) : "cc"); } while (0);-
351 r[11] = c3;-
352 c3 = 0;-
353 do { unsigned long t1,t2; asm ("mulq %2" : "=a"(t1),"=d"(t2) : "a"(a[6]) : "cc"); asm ("addq %3,%0; adcq %4,%1; adcq %5,%2" : "+r"(c1),"+r"(c2),"+r"(c3) : "r"(t1),"r"(t2),"g"(0) : "cc"); } while (0);-
354 do { unsigned long t1,t2; asm ("mulq %3" : "=a"(t1),"=d"(t2) : "a"((a)[7]),"m"((a)[5]) : "cc"); asm ("addq %3,%0; adcq %4,%1; adcq %5,%2" : "+r"(c1),"+r"(c2),"+r"(c3) : "r"(t1),"r"(t2),"g"(0) : "cc"); asm ("addq %3,%0; adcq %4,%1; adcq %5,%2" : "+r"(c1),"+r"(c2),"+r"(c3) : "r"(t1),"r"(t2),"g"(0) : "cc"); } while (0);-
355 r[12] = c1;-
356 c1 = 0;-
357 do { unsigned long t1,t2; asm ("mulq %3" : "=a"(t1),"=d"(t2) : "a"((a)[7]),"m"((a)[6]) : "cc"); asm ("addq %3,%0; adcq %4,%1; adcq %5,%2" : "+r"(c2),"+r"(c3),"+r"(c1) : "r"(t1),"r"(t2),"g"(0) : "cc"); asm ("addq %3,%0; adcq %4,%1; adcq %5,%2" : "+r"(c2),"+r"(c3),"+r"(c1) : "r"(t1),"r"(t2),"g"(0) : "cc"); } while (0);-
358 r[13] = c2;-
359 c2 = 0;-
360 do { unsigned long t1,t2; asm ("mulq %2" : "=a"(t1),"=d"(t2) : "a"(a[7]) : "cc"); asm ("addq %3,%0; adcq %4,%1; adcq %5,%2" : "+r"(c3),"+r"(c1),"+r"(c2) : "r"(t1),"r"(t2),"g"(0) : "cc"); } while (0);-
361 r[14] = c3;-
362 r[15] = c1;-
363}
executed 237118 times by 1 test: end of block
Executed by:
  • libcrypto.so.1.1
237118
364-
365void bn_sqr_comba4(unsigned long *r, const unsigned long *a)-
366{-
367 unsigned long c1, c2, c3;-
368-
369 c1 = 0;-
370 c2 = 0;-
371 c3 = 0;-
372 do { unsigned long t1,t2; asm ("mulq %2" : "=a"(t1),"=d"(t2) : "a"(a[0]) : "cc"); asm ("addq %3,%0; adcq %4,%1; adcq %5,%2" : "+r"(c1),"+r"(c2),"+r"(c3) : "r"(t1),"r"(t2),"g"(0) : "cc"); } while (0);-
373 r[0] = c1;-
374 c1 = 0;-
375 do { unsigned long t1,t2; asm ("mulq %3" : "=a"(t1),"=d"(t2) : "a"((a)[1]),"m"((a)[0]) : "cc"); asm ("addq %3,%0; adcq %4,%1; adcq %5,%2" : "+r"(c2),"+r"(c3),"+r"(c1) : "r"(t1),"r"(t2),"g"(0) : "cc"); asm ("addq %3,%0; adcq %4,%1; adcq %5,%2" : "+r"(c2),"+r"(c3),"+r"(c1) : "r"(t1),"r"(t2),"g"(0) : "cc"); } while (0);-
376 r[1] = c2;-
377 c2 = 0;-
378 do { unsigned long t1,t2; asm ("mulq %2" : "=a"(t1),"=d"(t2) : "a"(a[1]) : "cc"); asm ("addq %3,%0; adcq %4,%1; adcq %5,%2" : "+r"(c3),"+r"(c1),"+r"(c2) : "r"(t1),"r"(t2),"g"(0) : "cc"); } while (0);-
379 do { unsigned long t1,t2; asm ("mulq %3" : "=a"(t1),"=d"(t2) : "a"((a)[2]),"m"((a)[0]) : "cc"); asm ("addq %3,%0; adcq %4,%1; adcq %5,%2" : "+r"(c3),"+r"(c1),"+r"(c2) : "r"(t1),"r"(t2),"g"(0) : "cc"); asm ("addq %3,%0; adcq %4,%1; adcq %5,%2" : "+r"(c3),"+r"(c1),"+r"(c2) : "r"(t1),"r"(t2),"g"(0) : "cc"); } while (0);-
380 r[2] = c3;-
381 c3 = 0;-
382 do { unsigned long t1,t2; asm ("mulq %3" : "=a"(t1),"=d"(t2) : "a"((a)[3]),"m"((a)[0]) : "cc"); asm ("addq %3,%0; adcq %4,%1; adcq %5,%2" : "+r"(c1),"+r"(c2),"+r"(c3) : "r"(t1),"r"(t2),"g"(0) : "cc"); asm ("addq %3,%0; adcq %4,%1; adcq %5,%2" : "+r"(c1),"+r"(c2),"+r"(c3) : "r"(t1),"r"(t2),"g"(0) : "cc"); } while (0);-
383 do { unsigned long t1,t2; asm ("mulq %3" : "=a"(t1),"=d"(t2) : "a"((a)[2]),"m"((a)[1]) : "cc"); asm ("addq %3,%0; adcq %4,%1; adcq %5,%2" : "+r"(c1),"+r"(c2),"+r"(c3) : "r"(t1),"r"(t2),"g"(0) : "cc"); asm ("addq %3,%0; adcq %4,%1; adcq %5,%2" : "+r"(c1),"+r"(c2),"+r"(c3) : "r"(t1),"r"(t2),"g"(0) : "cc"); } while (0);-
384 r[3] = c1;-
385 c1 = 0;-
386 do { unsigned long t1,t2; asm ("mulq %2" : "=a"(t1),"=d"(t2) : "a"(a[2]) : "cc"); asm ("addq %3,%0; adcq %4,%1; adcq %5,%2" : "+r"(c2),"+r"(c3),"+r"(c1) : "r"(t1),"r"(t2),"g"(0) : "cc"); } while (0);-
387 do { unsigned long t1,t2; asm ("mulq %3" : "=a"(t1),"=d"(t2) : "a"((a)[3]),"m"((a)[1]) : "cc"); asm ("addq %3,%0; adcq %4,%1; adcq %5,%2" : "+r"(c2),"+r"(c3),"+r"(c1) : "r"(t1),"r"(t2),"g"(0) : "cc"); asm ("addq %3,%0; adcq %4,%1; adcq %5,%2" : "+r"(c2),"+r"(c3),"+r"(c1) : "r"(t1),"r"(t2),"g"(0) : "cc"); } while (0);-
388 r[4] = c2;-
389 c2 = 0;-
390 do { unsigned long t1,t2; asm ("mulq %3" : "=a"(t1),"=d"(t2) : "a"((a)[3]),"m"((a)[2]) : "cc"); asm ("addq %3,%0; adcq %4,%1; adcq %5,%2" : "+r"(c3),"+r"(c1),"+r"(c2) : "r"(t1),"r"(t2),"g"(0) : "cc"); asm ("addq %3,%0; adcq %4,%1; adcq %5,%2" : "+r"(c3),"+r"(c1),"+r"(c2) : "r"(t1),"r"(t2),"g"(0) : "cc"); } while (0);-
391 r[5] = c3;-
392 c3 = 0;-
393 do { unsigned long t1,t2; asm ("mulq %2" : "=a"(t1),"=d"(t2) : "a"(a[3]) : "cc"); asm ("addq %3,%0; adcq %4,%1; adcq %5,%2" : "+r"(c1),"+r"(c2),"+r"(c3) : "r"(t1),"r"(t2),"g"(0) : "cc"); } while (0);-
394 r[6] = c1;-
395 r[7] = c2;-
396}
executed 3585515 times by 2 tests: end of block
Executed by:
  • libcrypto.so.1.1
  • sm2_internal_test
3585515
Switch to Source codePreprocessed file

Generated by Squish Coco 4.2.2