Absolute File Name: | /home/opencoverage/opencoverage/guest-scripts/openssl/src/crypto/bn/asm/x86_64-gcc.c |
Switch to Source code | Preprocessed file |
Line | Source | Count | ||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
1 | unsigned 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
| 0-5682694 | ||||||||||||
7 | return never executed: c1;return c1; never executed: return c1; | 0 | ||||||||||||
8 | - | |||||||||||||
9 | while (num & ~3
| 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:
| 33447085 | ||||||||||||
18 | if (num
| 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 (--
| 1490206-1930117 | ||||||||||||
21 | return executed 1930117 times by 1 test: c1;return c1; Executed by:
executed 1930117 times by 1 test: return c1; Executed by:
| 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 (--
| 664534-825672 | ||||||||||||
24 | return executed 664534 times by 1 test: c1;return c1; Executed by:
executed 664534 times by 1 test: return c1; Executed by:
| 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: c1;return c1; Executed by:
executed 825672 times by 1 test: return c1; Executed by:
| 825672 | ||||||||||||
27 | } | - | ||||||||||||
28 | - | |||||||||||||
29 | return executed 2262371 times by 2 tests: c1;return c1; Executed by:
executed 2262371 times by 2 tests: return c1; Executed by:
| 2262371 | ||||||||||||
30 | } | - | ||||||||||||
31 | - | |||||||||||||
32 | unsigned 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
| 0-25981325 | ||||||||||||
37 | return never executed: c1;return c1; never executed: return c1; | 0 | ||||||||||||
38 | - | |||||||||||||
39 | while (num & ~3
| 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:
| 85045232 | ||||||||||||
48 | if (num
| 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 (--
| 3933168-4007626 | ||||||||||||
51 | return executed 4007626 times by 2 tests: c1;return c1; Executed by:
executed 4007626 times by 2 tests: return c1; Executed by:
| 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 (--
| 1682021-2251147 | ||||||||||||
54 | return executed 2251147 times by 1 test: c1;return c1; Executed by:
executed 2251147 times by 1 test: return c1; Executed by:
| 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:
| 1682021 | ||||||||||||
57 | return executed 19722552 times by 2 tests: c1;return c1; Executed by:
executed 19722552 times by 2 tests: return c1; Executed by:
| 19722552 | ||||||||||||
58 | } | - | ||||||||||||
59 | - | |||||||||||||
60 | void bn_sqr_words(unsigned long *r, const unsigned long *a, int n) | - | ||||||||||||
61 | { | - | ||||||||||||
62 | if (n <= 0
| 0-213797 | ||||||||||||
63 | return; never executed: return; | 0 | ||||||||||||
64 | - | |||||||||||||
65 | while (n & ~3
| 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:
| 427862 | ||||||||||||
74 | if (n
| 6566-207231 | ||||||||||||
75 | asm ("mulq %2" : "=a"(r[0]),"=d"(r[1]) : "a"(a[0]) : "cc");; | - | ||||||||||||
76 | if (--
| 38977-168254 | ||||||||||||
77 | return; executed 168254 times by 1 test: return; Executed by:
| 168254 | ||||||||||||
78 | asm ("mulq %2" : "=a"(r[2]),"=d"(r[3]) : "a"(a[1]) : "cc");; | - | ||||||||||||
79 | if (--
| 19195-19782 | ||||||||||||
80 | return; executed 19195 times by 1 test: return; Executed by:
| 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:
| 19782 | ||||||||||||
83 | } executed 26348 times by 1 test: end of block Executed by:
| 26348 | ||||||||||||
84 | - | |||||||||||||
85 | unsigned 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: ret;return ret; Executed by:
executed 95669 times by 1 test: return ret; Executed by:
| 95669 | ||||||||||||
94 | } | - | ||||||||||||
95 | - | |||||||||||||
96 | unsigned 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
| 81166-11877289 | ||||||||||||
103 | return executed 81166 times by 2 tests: 0;return 0; Executed by:
executed 81166 times by 2 tests: return 0; Executed by:
| 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: ret & 1;return ret & 1; Executed by:
executed 11877289 times by 2 tests: return ret & 1; Executed by:
| 11877289 | ||||||||||||
120 | } | - | ||||||||||||
121 | - | |||||||||||||
122 | - | |||||||||||||
123 | unsigned 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
| 51011-42279231 | ||||||||||||
130 | return executed 51011 times by 1 test: 0;return 0; Executed by:
executed 51011 times by 1 test: return 0; Executed by:
| 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: ret & 1;return ret & 1; Executed by:
executed 42279231 times by 2 tests: return ret & 1; Executed by:
| 42279231 | ||||||||||||
147 | } | - | ||||||||||||
148 | void 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:
| 858373 | ||||||||||||
250 | - | |||||||||||||
251 | void 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 | - | |||||||||||||
290 | void 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:
| 237118 | ||||||||||||
364 | - | |||||||||||||
365 | void 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:
| 3585515 | ||||||||||||
Switch to Source code | Preprocessed file |