ARM Shanghai IoT Team (Internal) / newMiniTLS-GPL

Fork of MiniTLS-GPL by Donatien Garnier

Committer:
shiyilei
Date:
Fri Feb 06 06:17:33 2015 +0000
Revision:
5:95f70ebfe61f
Parent:
0:35aa5be3b78d
change some parameters in the library to meet the needs of httpbin.org

Who changed what in which revision?

UserRevisionLine numberNew contents of line
MiniTLS 0:35aa5be3b78d 1 #define TFM_DEFINES
MiniTLS 0:35aa5be3b78d 2 #include "fp_mul_comba.c"
MiniTLS 0:35aa5be3b78d 3
MiniTLS 0:35aa5be3b78d 4 #if defined(TFM_SMALL_SET)
MiniTLS 0:35aa5be3b78d 5 void fp_mul_comba_small(fp_int *A, fp_int *B, fp_int *C)
MiniTLS 0:35aa5be3b78d 6 {
MiniTLS 0:35aa5be3b78d 7 fp_digit c0, c1, c2, at[32];
MiniTLS 0:35aa5be3b78d 8 switch (MAX(A->used, B->used)) {
MiniTLS 0:35aa5be3b78d 9
MiniTLS 0:35aa5be3b78d 10 case 1:
MiniTLS 0:35aa5be3b78d 11 memcpy(at, A->dp, 1 * sizeof(fp_digit));
MiniTLS 0:35aa5be3b78d 12 memcpy(at+1, B->dp, 1 * sizeof(fp_digit));
MiniTLS 0:35aa5be3b78d 13 COMBA_START;
MiniTLS 0:35aa5be3b78d 14
MiniTLS 0:35aa5be3b78d 15 COMBA_CLEAR;
MiniTLS 0:35aa5be3b78d 16 /* 0 */
MiniTLS 0:35aa5be3b78d 17 MULADD(at[0], at[1]);
MiniTLS 0:35aa5be3b78d 18 COMBA_STORE(C->dp[0]);
MiniTLS 0:35aa5be3b78d 19 COMBA_STORE2(C->dp[1]);
MiniTLS 0:35aa5be3b78d 20 C->used = 2;
MiniTLS 0:35aa5be3b78d 21 C->sign = A->sign ^ B->sign;
MiniTLS 0:35aa5be3b78d 22 fp_clamp(C);
MiniTLS 0:35aa5be3b78d 23 COMBA_FINI;
MiniTLS 0:35aa5be3b78d 24 break;
MiniTLS 0:35aa5be3b78d 25
MiniTLS 0:35aa5be3b78d 26 case 2:
MiniTLS 0:35aa5be3b78d 27 memcpy(at, A->dp, 2 * sizeof(fp_digit));
MiniTLS 0:35aa5be3b78d 28 memcpy(at+2, B->dp, 2 * sizeof(fp_digit));
MiniTLS 0:35aa5be3b78d 29 COMBA_START;
MiniTLS 0:35aa5be3b78d 30
MiniTLS 0:35aa5be3b78d 31 COMBA_CLEAR;
MiniTLS 0:35aa5be3b78d 32 /* 0 */
MiniTLS 0:35aa5be3b78d 33 MULADD(at[0], at[2]);
MiniTLS 0:35aa5be3b78d 34 COMBA_STORE(C->dp[0]);
MiniTLS 0:35aa5be3b78d 35 /* 1 */
MiniTLS 0:35aa5be3b78d 36 COMBA_FORWARD;
MiniTLS 0:35aa5be3b78d 37 MULADD(at[0], at[3]); MULADD(at[1], at[2]);
MiniTLS 0:35aa5be3b78d 38 COMBA_STORE(C->dp[1]);
MiniTLS 0:35aa5be3b78d 39 /* 2 */
MiniTLS 0:35aa5be3b78d 40 COMBA_FORWARD;
MiniTLS 0:35aa5be3b78d 41 MULADD(at[1], at[3]);
MiniTLS 0:35aa5be3b78d 42 COMBA_STORE(C->dp[2]);
MiniTLS 0:35aa5be3b78d 43 COMBA_STORE2(C->dp[3]);
MiniTLS 0:35aa5be3b78d 44 C->used = 4;
MiniTLS 0:35aa5be3b78d 45 C->sign = A->sign ^ B->sign;
MiniTLS 0:35aa5be3b78d 46 fp_clamp(C);
MiniTLS 0:35aa5be3b78d 47 COMBA_FINI;
MiniTLS 0:35aa5be3b78d 48 break;
MiniTLS 0:35aa5be3b78d 49
MiniTLS 0:35aa5be3b78d 50 case 3:
MiniTLS 0:35aa5be3b78d 51 memcpy(at, A->dp, 3 * sizeof(fp_digit));
MiniTLS 0:35aa5be3b78d 52 memcpy(at+3, B->dp, 3 * sizeof(fp_digit));
MiniTLS 0:35aa5be3b78d 53 COMBA_START;
MiniTLS 0:35aa5be3b78d 54
MiniTLS 0:35aa5be3b78d 55 COMBA_CLEAR;
MiniTLS 0:35aa5be3b78d 56 /* 0 */
MiniTLS 0:35aa5be3b78d 57 MULADD(at[0], at[3]);
MiniTLS 0:35aa5be3b78d 58 COMBA_STORE(C->dp[0]);
MiniTLS 0:35aa5be3b78d 59 /* 1 */
MiniTLS 0:35aa5be3b78d 60 COMBA_FORWARD;
MiniTLS 0:35aa5be3b78d 61 MULADD(at[0], at[4]); MULADD(at[1], at[3]);
MiniTLS 0:35aa5be3b78d 62 COMBA_STORE(C->dp[1]);
MiniTLS 0:35aa5be3b78d 63 /* 2 */
MiniTLS 0:35aa5be3b78d 64 COMBA_FORWARD;
MiniTLS 0:35aa5be3b78d 65 MULADD(at[0], at[5]); MULADD(at[1], at[4]); MULADD(at[2], at[3]);
MiniTLS 0:35aa5be3b78d 66 COMBA_STORE(C->dp[2]);
MiniTLS 0:35aa5be3b78d 67 /* 3 */
MiniTLS 0:35aa5be3b78d 68 COMBA_FORWARD;
MiniTLS 0:35aa5be3b78d 69 MULADD(at[1], at[5]); MULADD(at[2], at[4]);
MiniTLS 0:35aa5be3b78d 70 COMBA_STORE(C->dp[3]);
MiniTLS 0:35aa5be3b78d 71 /* 4 */
MiniTLS 0:35aa5be3b78d 72 COMBA_FORWARD;
MiniTLS 0:35aa5be3b78d 73 MULADD(at[2], at[5]);
MiniTLS 0:35aa5be3b78d 74 COMBA_STORE(C->dp[4]);
MiniTLS 0:35aa5be3b78d 75 COMBA_STORE2(C->dp[5]);
MiniTLS 0:35aa5be3b78d 76 C->used = 6;
MiniTLS 0:35aa5be3b78d 77 C->sign = A->sign ^ B->sign;
MiniTLS 0:35aa5be3b78d 78 fp_clamp(C);
MiniTLS 0:35aa5be3b78d 79 COMBA_FINI;
MiniTLS 0:35aa5be3b78d 80 break;
MiniTLS 0:35aa5be3b78d 81
MiniTLS 0:35aa5be3b78d 82 case 4:
MiniTLS 0:35aa5be3b78d 83 memcpy(at, A->dp, 4 * sizeof(fp_digit));
MiniTLS 0:35aa5be3b78d 84 memcpy(at+4, B->dp, 4 * sizeof(fp_digit));
MiniTLS 0:35aa5be3b78d 85 COMBA_START;
MiniTLS 0:35aa5be3b78d 86
MiniTLS 0:35aa5be3b78d 87 COMBA_CLEAR;
MiniTLS 0:35aa5be3b78d 88 /* 0 */
MiniTLS 0:35aa5be3b78d 89 MULADD(at[0], at[4]);
MiniTLS 0:35aa5be3b78d 90 COMBA_STORE(C->dp[0]);
MiniTLS 0:35aa5be3b78d 91 /* 1 */
MiniTLS 0:35aa5be3b78d 92 COMBA_FORWARD;
MiniTLS 0:35aa5be3b78d 93 MULADD(at[0], at[5]); MULADD(at[1], at[4]);
MiniTLS 0:35aa5be3b78d 94 COMBA_STORE(C->dp[1]);
MiniTLS 0:35aa5be3b78d 95 /* 2 */
MiniTLS 0:35aa5be3b78d 96 COMBA_FORWARD;
MiniTLS 0:35aa5be3b78d 97 MULADD(at[0], at[6]); MULADD(at[1], at[5]); MULADD(at[2], at[4]);
MiniTLS 0:35aa5be3b78d 98 COMBA_STORE(C->dp[2]);
MiniTLS 0:35aa5be3b78d 99 /* 3 */
MiniTLS 0:35aa5be3b78d 100 COMBA_FORWARD;
MiniTLS 0:35aa5be3b78d 101 MULADD(at[0], at[7]); MULADD(at[1], at[6]); MULADD(at[2], at[5]); MULADD(at[3], at[4]);
MiniTLS 0:35aa5be3b78d 102 COMBA_STORE(C->dp[3]);
MiniTLS 0:35aa5be3b78d 103 /* 4 */
MiniTLS 0:35aa5be3b78d 104 COMBA_FORWARD;
MiniTLS 0:35aa5be3b78d 105 MULADD(at[1], at[7]); MULADD(at[2], at[6]); MULADD(at[3], at[5]);
MiniTLS 0:35aa5be3b78d 106 COMBA_STORE(C->dp[4]);
MiniTLS 0:35aa5be3b78d 107 /* 5 */
MiniTLS 0:35aa5be3b78d 108 COMBA_FORWARD;
MiniTLS 0:35aa5be3b78d 109 MULADD(at[2], at[7]); MULADD(at[3], at[6]);
MiniTLS 0:35aa5be3b78d 110 COMBA_STORE(C->dp[5]);
MiniTLS 0:35aa5be3b78d 111 /* 6 */
MiniTLS 0:35aa5be3b78d 112 COMBA_FORWARD;
MiniTLS 0:35aa5be3b78d 113 MULADD(at[3], at[7]);
MiniTLS 0:35aa5be3b78d 114 COMBA_STORE(C->dp[6]);
MiniTLS 0:35aa5be3b78d 115 COMBA_STORE2(C->dp[7]);
MiniTLS 0:35aa5be3b78d 116 C->used = 8;
MiniTLS 0:35aa5be3b78d 117 C->sign = A->sign ^ B->sign;
MiniTLS 0:35aa5be3b78d 118 fp_clamp(C);
MiniTLS 0:35aa5be3b78d 119 COMBA_FINI;
MiniTLS 0:35aa5be3b78d 120 break;
MiniTLS 0:35aa5be3b78d 121
MiniTLS 0:35aa5be3b78d 122 case 5:
MiniTLS 0:35aa5be3b78d 123 memcpy(at, A->dp, 5 * sizeof(fp_digit));
MiniTLS 0:35aa5be3b78d 124 memcpy(at+5, B->dp, 5 * sizeof(fp_digit));
MiniTLS 0:35aa5be3b78d 125 COMBA_START;
MiniTLS 0:35aa5be3b78d 126
MiniTLS 0:35aa5be3b78d 127 COMBA_CLEAR;
MiniTLS 0:35aa5be3b78d 128 /* 0 */
MiniTLS 0:35aa5be3b78d 129 MULADD(at[0], at[5]);
MiniTLS 0:35aa5be3b78d 130 COMBA_STORE(C->dp[0]);
MiniTLS 0:35aa5be3b78d 131 /* 1 */
MiniTLS 0:35aa5be3b78d 132 COMBA_FORWARD;
MiniTLS 0:35aa5be3b78d 133 MULADD(at[0], at[6]); MULADD(at[1], at[5]);
MiniTLS 0:35aa5be3b78d 134 COMBA_STORE(C->dp[1]);
MiniTLS 0:35aa5be3b78d 135 /* 2 */
MiniTLS 0:35aa5be3b78d 136 COMBA_FORWARD;
MiniTLS 0:35aa5be3b78d 137 MULADD(at[0], at[7]); MULADD(at[1], at[6]); MULADD(at[2], at[5]);
MiniTLS 0:35aa5be3b78d 138 COMBA_STORE(C->dp[2]);
MiniTLS 0:35aa5be3b78d 139 /* 3 */
MiniTLS 0:35aa5be3b78d 140 COMBA_FORWARD;
MiniTLS 0:35aa5be3b78d 141 MULADD(at[0], at[8]); MULADD(at[1], at[7]); MULADD(at[2], at[6]); MULADD(at[3], at[5]);
MiniTLS 0:35aa5be3b78d 142 COMBA_STORE(C->dp[3]);
MiniTLS 0:35aa5be3b78d 143 /* 4 */
MiniTLS 0:35aa5be3b78d 144 COMBA_FORWARD;
MiniTLS 0:35aa5be3b78d 145 MULADD(at[0], at[9]); MULADD(at[1], at[8]); MULADD(at[2], at[7]); MULADD(at[3], at[6]); MULADD(at[4], at[5]);
MiniTLS 0:35aa5be3b78d 146 COMBA_STORE(C->dp[4]);
MiniTLS 0:35aa5be3b78d 147 /* 5 */
MiniTLS 0:35aa5be3b78d 148 COMBA_FORWARD;
MiniTLS 0:35aa5be3b78d 149 MULADD(at[1], at[9]); MULADD(at[2], at[8]); MULADD(at[3], at[7]); MULADD(at[4], at[6]);
MiniTLS 0:35aa5be3b78d 150 COMBA_STORE(C->dp[5]);
MiniTLS 0:35aa5be3b78d 151 /* 6 */
MiniTLS 0:35aa5be3b78d 152 COMBA_FORWARD;
MiniTLS 0:35aa5be3b78d 153 MULADD(at[2], at[9]); MULADD(at[3], at[8]); MULADD(at[4], at[7]);
MiniTLS 0:35aa5be3b78d 154 COMBA_STORE(C->dp[6]);
MiniTLS 0:35aa5be3b78d 155 /* 7 */
MiniTLS 0:35aa5be3b78d 156 COMBA_FORWARD;
MiniTLS 0:35aa5be3b78d 157 MULADD(at[3], at[9]); MULADD(at[4], at[8]);
MiniTLS 0:35aa5be3b78d 158 COMBA_STORE(C->dp[7]);
MiniTLS 0:35aa5be3b78d 159 /* 8 */
MiniTLS 0:35aa5be3b78d 160 COMBA_FORWARD;
MiniTLS 0:35aa5be3b78d 161 MULADD(at[4], at[9]);
MiniTLS 0:35aa5be3b78d 162 COMBA_STORE(C->dp[8]);
MiniTLS 0:35aa5be3b78d 163 COMBA_STORE2(C->dp[9]);
MiniTLS 0:35aa5be3b78d 164 C->used = 10;
MiniTLS 0:35aa5be3b78d 165 C->sign = A->sign ^ B->sign;
MiniTLS 0:35aa5be3b78d 166 fp_clamp(C);
MiniTLS 0:35aa5be3b78d 167 COMBA_FINI;
MiniTLS 0:35aa5be3b78d 168 break;
MiniTLS 0:35aa5be3b78d 169
MiniTLS 0:35aa5be3b78d 170 case 6:
MiniTLS 0:35aa5be3b78d 171 memcpy(at, A->dp, 6 * sizeof(fp_digit));
MiniTLS 0:35aa5be3b78d 172 memcpy(at+6, B->dp, 6 * sizeof(fp_digit));
MiniTLS 0:35aa5be3b78d 173 COMBA_START;
MiniTLS 0:35aa5be3b78d 174
MiniTLS 0:35aa5be3b78d 175 COMBA_CLEAR;
MiniTLS 0:35aa5be3b78d 176 /* 0 */
MiniTLS 0:35aa5be3b78d 177 MULADD(at[0], at[6]);
MiniTLS 0:35aa5be3b78d 178 COMBA_STORE(C->dp[0]);
MiniTLS 0:35aa5be3b78d 179 /* 1 */
MiniTLS 0:35aa5be3b78d 180 COMBA_FORWARD;
MiniTLS 0:35aa5be3b78d 181 MULADD(at[0], at[7]); MULADD(at[1], at[6]);
MiniTLS 0:35aa5be3b78d 182 COMBA_STORE(C->dp[1]);
MiniTLS 0:35aa5be3b78d 183 /* 2 */
MiniTLS 0:35aa5be3b78d 184 COMBA_FORWARD;
MiniTLS 0:35aa5be3b78d 185 MULADD(at[0], at[8]); MULADD(at[1], at[7]); MULADD(at[2], at[6]);
MiniTLS 0:35aa5be3b78d 186 COMBA_STORE(C->dp[2]);
MiniTLS 0:35aa5be3b78d 187 /* 3 */
MiniTLS 0:35aa5be3b78d 188 COMBA_FORWARD;
MiniTLS 0:35aa5be3b78d 189 MULADD(at[0], at[9]); MULADD(at[1], at[8]); MULADD(at[2], at[7]); MULADD(at[3], at[6]);
MiniTLS 0:35aa5be3b78d 190 COMBA_STORE(C->dp[3]);
MiniTLS 0:35aa5be3b78d 191 /* 4 */
MiniTLS 0:35aa5be3b78d 192 COMBA_FORWARD;
MiniTLS 0:35aa5be3b78d 193 MULADD(at[0], at[10]); MULADD(at[1], at[9]); MULADD(at[2], at[8]); MULADD(at[3], at[7]); MULADD(at[4], at[6]);
MiniTLS 0:35aa5be3b78d 194 COMBA_STORE(C->dp[4]);
MiniTLS 0:35aa5be3b78d 195 /* 5 */
MiniTLS 0:35aa5be3b78d 196 COMBA_FORWARD;
MiniTLS 0:35aa5be3b78d 197 MULADD(at[0], at[11]); MULADD(at[1], at[10]); MULADD(at[2], at[9]); MULADD(at[3], at[8]); MULADD(at[4], at[7]); MULADD(at[5], at[6]);
MiniTLS 0:35aa5be3b78d 198 COMBA_STORE(C->dp[5]);
MiniTLS 0:35aa5be3b78d 199 /* 6 */
MiniTLS 0:35aa5be3b78d 200 COMBA_FORWARD;
MiniTLS 0:35aa5be3b78d 201 MULADD(at[1], at[11]); MULADD(at[2], at[10]); MULADD(at[3], at[9]); MULADD(at[4], at[8]); MULADD(at[5], at[7]);
MiniTLS 0:35aa5be3b78d 202 COMBA_STORE(C->dp[6]);
MiniTLS 0:35aa5be3b78d 203 /* 7 */
MiniTLS 0:35aa5be3b78d 204 COMBA_FORWARD;
MiniTLS 0:35aa5be3b78d 205 MULADD(at[2], at[11]); MULADD(at[3], at[10]); MULADD(at[4], at[9]); MULADD(at[5], at[8]);
MiniTLS 0:35aa5be3b78d 206 COMBA_STORE(C->dp[7]);
MiniTLS 0:35aa5be3b78d 207 /* 8 */
MiniTLS 0:35aa5be3b78d 208 COMBA_FORWARD;
MiniTLS 0:35aa5be3b78d 209 MULADD(at[3], at[11]); MULADD(at[4], at[10]); MULADD(at[5], at[9]);
MiniTLS 0:35aa5be3b78d 210 COMBA_STORE(C->dp[8]);
MiniTLS 0:35aa5be3b78d 211 /* 9 */
MiniTLS 0:35aa5be3b78d 212 COMBA_FORWARD;
MiniTLS 0:35aa5be3b78d 213 MULADD(at[4], at[11]); MULADD(at[5], at[10]);
MiniTLS 0:35aa5be3b78d 214 COMBA_STORE(C->dp[9]);
MiniTLS 0:35aa5be3b78d 215 /* 10 */
MiniTLS 0:35aa5be3b78d 216 COMBA_FORWARD;
MiniTLS 0:35aa5be3b78d 217 MULADD(at[5], at[11]);
MiniTLS 0:35aa5be3b78d 218 COMBA_STORE(C->dp[10]);
MiniTLS 0:35aa5be3b78d 219 COMBA_STORE2(C->dp[11]);
MiniTLS 0:35aa5be3b78d 220 C->used = 12;
MiniTLS 0:35aa5be3b78d 221 C->sign = A->sign ^ B->sign;
MiniTLS 0:35aa5be3b78d 222 fp_clamp(C);
MiniTLS 0:35aa5be3b78d 223 COMBA_FINI;
MiniTLS 0:35aa5be3b78d 224 break;
MiniTLS 0:35aa5be3b78d 225
MiniTLS 0:35aa5be3b78d 226 case 7:
MiniTLS 0:35aa5be3b78d 227 memcpy(at, A->dp, 7 * sizeof(fp_digit));
MiniTLS 0:35aa5be3b78d 228 memcpy(at+7, B->dp, 7 * sizeof(fp_digit));
MiniTLS 0:35aa5be3b78d 229 COMBA_START;
MiniTLS 0:35aa5be3b78d 230
MiniTLS 0:35aa5be3b78d 231 COMBA_CLEAR;
MiniTLS 0:35aa5be3b78d 232 /* 0 */
MiniTLS 0:35aa5be3b78d 233 MULADD(at[0], at[7]);
MiniTLS 0:35aa5be3b78d 234 COMBA_STORE(C->dp[0]);
MiniTLS 0:35aa5be3b78d 235 /* 1 */
MiniTLS 0:35aa5be3b78d 236 COMBA_FORWARD;
MiniTLS 0:35aa5be3b78d 237 MULADD(at[0], at[8]); MULADD(at[1], at[7]);
MiniTLS 0:35aa5be3b78d 238 COMBA_STORE(C->dp[1]);
MiniTLS 0:35aa5be3b78d 239 /* 2 */
MiniTLS 0:35aa5be3b78d 240 COMBA_FORWARD;
MiniTLS 0:35aa5be3b78d 241 MULADD(at[0], at[9]); MULADD(at[1], at[8]); MULADD(at[2], at[7]);
MiniTLS 0:35aa5be3b78d 242 COMBA_STORE(C->dp[2]);
MiniTLS 0:35aa5be3b78d 243 /* 3 */
MiniTLS 0:35aa5be3b78d 244 COMBA_FORWARD;
MiniTLS 0:35aa5be3b78d 245 MULADD(at[0], at[10]); MULADD(at[1], at[9]); MULADD(at[2], at[8]); MULADD(at[3], at[7]);
MiniTLS 0:35aa5be3b78d 246 COMBA_STORE(C->dp[3]);
MiniTLS 0:35aa5be3b78d 247 /* 4 */
MiniTLS 0:35aa5be3b78d 248 COMBA_FORWARD;
MiniTLS 0:35aa5be3b78d 249 MULADD(at[0], at[11]); MULADD(at[1], at[10]); MULADD(at[2], at[9]); MULADD(at[3], at[8]); MULADD(at[4], at[7]);
MiniTLS 0:35aa5be3b78d 250 COMBA_STORE(C->dp[4]);
MiniTLS 0:35aa5be3b78d 251 /* 5 */
MiniTLS 0:35aa5be3b78d 252 COMBA_FORWARD;
MiniTLS 0:35aa5be3b78d 253 MULADD(at[0], at[12]); MULADD(at[1], at[11]); MULADD(at[2], at[10]); MULADD(at[3], at[9]); MULADD(at[4], at[8]); MULADD(at[5], at[7]);
MiniTLS 0:35aa5be3b78d 254 COMBA_STORE(C->dp[5]);
MiniTLS 0:35aa5be3b78d 255 /* 6 */
MiniTLS 0:35aa5be3b78d 256 COMBA_FORWARD;
MiniTLS 0:35aa5be3b78d 257 MULADD(at[0], at[13]); MULADD(at[1], at[12]); MULADD(at[2], at[11]); MULADD(at[3], at[10]); MULADD(at[4], at[9]); MULADD(at[5], at[8]); MULADD(at[6], at[7]);
MiniTLS 0:35aa5be3b78d 258 COMBA_STORE(C->dp[6]);
MiniTLS 0:35aa5be3b78d 259 /* 7 */
MiniTLS 0:35aa5be3b78d 260 COMBA_FORWARD;
MiniTLS 0:35aa5be3b78d 261 MULADD(at[1], at[13]); MULADD(at[2], at[12]); MULADD(at[3], at[11]); MULADD(at[4], at[10]); MULADD(at[5], at[9]); MULADD(at[6], at[8]);
MiniTLS 0:35aa5be3b78d 262 COMBA_STORE(C->dp[7]);
MiniTLS 0:35aa5be3b78d 263 /* 8 */
MiniTLS 0:35aa5be3b78d 264 COMBA_FORWARD;
MiniTLS 0:35aa5be3b78d 265 MULADD(at[2], at[13]); MULADD(at[3], at[12]); MULADD(at[4], at[11]); MULADD(at[5], at[10]); MULADD(at[6], at[9]);
MiniTLS 0:35aa5be3b78d 266 COMBA_STORE(C->dp[8]);
MiniTLS 0:35aa5be3b78d 267 /* 9 */
MiniTLS 0:35aa5be3b78d 268 COMBA_FORWARD;
MiniTLS 0:35aa5be3b78d 269 MULADD(at[3], at[13]); MULADD(at[4], at[12]); MULADD(at[5], at[11]); MULADD(at[6], at[10]);
MiniTLS 0:35aa5be3b78d 270 COMBA_STORE(C->dp[9]);
MiniTLS 0:35aa5be3b78d 271 /* 10 */
MiniTLS 0:35aa5be3b78d 272 COMBA_FORWARD;
MiniTLS 0:35aa5be3b78d 273 MULADD(at[4], at[13]); MULADD(at[5], at[12]); MULADD(at[6], at[11]);
MiniTLS 0:35aa5be3b78d 274 COMBA_STORE(C->dp[10]);
MiniTLS 0:35aa5be3b78d 275 /* 11 */
MiniTLS 0:35aa5be3b78d 276 COMBA_FORWARD;
MiniTLS 0:35aa5be3b78d 277 MULADD(at[5], at[13]); MULADD(at[6], at[12]);
MiniTLS 0:35aa5be3b78d 278 COMBA_STORE(C->dp[11]);
MiniTLS 0:35aa5be3b78d 279 /* 12 */
MiniTLS 0:35aa5be3b78d 280 COMBA_FORWARD;
MiniTLS 0:35aa5be3b78d 281 MULADD(at[6], at[13]);
MiniTLS 0:35aa5be3b78d 282 COMBA_STORE(C->dp[12]);
MiniTLS 0:35aa5be3b78d 283 COMBA_STORE2(C->dp[13]);
MiniTLS 0:35aa5be3b78d 284 C->used = 14;
MiniTLS 0:35aa5be3b78d 285 C->sign = A->sign ^ B->sign;
MiniTLS 0:35aa5be3b78d 286 fp_clamp(C);
MiniTLS 0:35aa5be3b78d 287 COMBA_FINI;
MiniTLS 0:35aa5be3b78d 288 break;
MiniTLS 0:35aa5be3b78d 289
MiniTLS 0:35aa5be3b78d 290 case 8:
MiniTLS 0:35aa5be3b78d 291 memcpy(at, A->dp, 8 * sizeof(fp_digit));
MiniTLS 0:35aa5be3b78d 292 memcpy(at+8, B->dp, 8 * sizeof(fp_digit));
MiniTLS 0:35aa5be3b78d 293 COMBA_START;
MiniTLS 0:35aa5be3b78d 294
MiniTLS 0:35aa5be3b78d 295 COMBA_CLEAR;
MiniTLS 0:35aa5be3b78d 296 /* 0 */
MiniTLS 0:35aa5be3b78d 297 MULADD(at[0], at[8]);
MiniTLS 0:35aa5be3b78d 298 COMBA_STORE(C->dp[0]);
MiniTLS 0:35aa5be3b78d 299 /* 1 */
MiniTLS 0:35aa5be3b78d 300 COMBA_FORWARD;
MiniTLS 0:35aa5be3b78d 301 MULADD(at[0], at[9]); MULADD(at[1], at[8]);
MiniTLS 0:35aa5be3b78d 302 COMBA_STORE(C->dp[1]);
MiniTLS 0:35aa5be3b78d 303 /* 2 */
MiniTLS 0:35aa5be3b78d 304 COMBA_FORWARD;
MiniTLS 0:35aa5be3b78d 305 MULADD(at[0], at[10]); MULADD(at[1], at[9]); MULADD(at[2], at[8]);
MiniTLS 0:35aa5be3b78d 306 COMBA_STORE(C->dp[2]);
MiniTLS 0:35aa5be3b78d 307 /* 3 */
MiniTLS 0:35aa5be3b78d 308 COMBA_FORWARD;
MiniTLS 0:35aa5be3b78d 309 MULADD(at[0], at[11]); MULADD(at[1], at[10]); MULADD(at[2], at[9]); MULADD(at[3], at[8]);
MiniTLS 0:35aa5be3b78d 310 COMBA_STORE(C->dp[3]);
MiniTLS 0:35aa5be3b78d 311 /* 4 */
MiniTLS 0:35aa5be3b78d 312 COMBA_FORWARD;
MiniTLS 0:35aa5be3b78d 313 MULADD(at[0], at[12]); MULADD(at[1], at[11]); MULADD(at[2], at[10]); MULADD(at[3], at[9]); MULADD(at[4], at[8]);
MiniTLS 0:35aa5be3b78d 314 COMBA_STORE(C->dp[4]);
MiniTLS 0:35aa5be3b78d 315 /* 5 */
MiniTLS 0:35aa5be3b78d 316 COMBA_FORWARD;
MiniTLS 0:35aa5be3b78d 317 MULADD(at[0], at[13]); MULADD(at[1], at[12]); MULADD(at[2], at[11]); MULADD(at[3], at[10]); MULADD(at[4], at[9]); MULADD(at[5], at[8]);
MiniTLS 0:35aa5be3b78d 318 COMBA_STORE(C->dp[5]);
MiniTLS 0:35aa5be3b78d 319 /* 6 */
MiniTLS 0:35aa5be3b78d 320 COMBA_FORWARD;
MiniTLS 0:35aa5be3b78d 321 MULADD(at[0], at[14]); MULADD(at[1], at[13]); MULADD(at[2], at[12]); MULADD(at[3], at[11]); MULADD(at[4], at[10]); MULADD(at[5], at[9]); MULADD(at[6], at[8]);
MiniTLS 0:35aa5be3b78d 322 COMBA_STORE(C->dp[6]);
MiniTLS 0:35aa5be3b78d 323 /* 7 */
MiniTLS 0:35aa5be3b78d 324 COMBA_FORWARD;
MiniTLS 0:35aa5be3b78d 325 MULADD(at[0], at[15]); MULADD(at[1], at[14]); MULADD(at[2], at[13]); MULADD(at[3], at[12]); MULADD(at[4], at[11]); MULADD(at[5], at[10]); MULADD(at[6], at[9]); MULADD(at[7], at[8]);
MiniTLS 0:35aa5be3b78d 326 COMBA_STORE(C->dp[7]);
MiniTLS 0:35aa5be3b78d 327 /* 8 */
MiniTLS 0:35aa5be3b78d 328 COMBA_FORWARD;
MiniTLS 0:35aa5be3b78d 329 MULADD(at[1], at[15]); MULADD(at[2], at[14]); MULADD(at[3], at[13]); MULADD(at[4], at[12]); MULADD(at[5], at[11]); MULADD(at[6], at[10]); MULADD(at[7], at[9]);
MiniTLS 0:35aa5be3b78d 330 COMBA_STORE(C->dp[8]);
MiniTLS 0:35aa5be3b78d 331 /* 9 */
MiniTLS 0:35aa5be3b78d 332 COMBA_FORWARD;
MiniTLS 0:35aa5be3b78d 333 MULADD(at[2], at[15]); MULADD(at[3], at[14]); MULADD(at[4], at[13]); MULADD(at[5], at[12]); MULADD(at[6], at[11]); MULADD(at[7], at[10]);
MiniTLS 0:35aa5be3b78d 334 COMBA_STORE(C->dp[9]);
MiniTLS 0:35aa5be3b78d 335 /* 10 */
MiniTLS 0:35aa5be3b78d 336 COMBA_FORWARD;
MiniTLS 0:35aa5be3b78d 337 MULADD(at[3], at[15]); MULADD(at[4], at[14]); MULADD(at[5], at[13]); MULADD(at[6], at[12]); MULADD(at[7], at[11]);
MiniTLS 0:35aa5be3b78d 338 COMBA_STORE(C->dp[10]);
MiniTLS 0:35aa5be3b78d 339 /* 11 */
MiniTLS 0:35aa5be3b78d 340 COMBA_FORWARD;
MiniTLS 0:35aa5be3b78d 341 MULADD(at[4], at[15]); MULADD(at[5], at[14]); MULADD(at[6], at[13]); MULADD(at[7], at[12]);
MiniTLS 0:35aa5be3b78d 342 COMBA_STORE(C->dp[11]);
MiniTLS 0:35aa5be3b78d 343 /* 12 */
MiniTLS 0:35aa5be3b78d 344 COMBA_FORWARD;
MiniTLS 0:35aa5be3b78d 345 MULADD(at[5], at[15]); MULADD(at[6], at[14]); MULADD(at[7], at[13]);
MiniTLS 0:35aa5be3b78d 346 COMBA_STORE(C->dp[12]);
MiniTLS 0:35aa5be3b78d 347 /* 13 */
MiniTLS 0:35aa5be3b78d 348 COMBA_FORWARD;
MiniTLS 0:35aa5be3b78d 349 MULADD(at[6], at[15]); MULADD(at[7], at[14]);
MiniTLS 0:35aa5be3b78d 350 COMBA_STORE(C->dp[13]);
MiniTLS 0:35aa5be3b78d 351 /* 14 */
MiniTLS 0:35aa5be3b78d 352 COMBA_FORWARD;
MiniTLS 0:35aa5be3b78d 353 MULADD(at[7], at[15]);
MiniTLS 0:35aa5be3b78d 354 COMBA_STORE(C->dp[14]);
MiniTLS 0:35aa5be3b78d 355 COMBA_STORE2(C->dp[15]);
MiniTLS 0:35aa5be3b78d 356 C->used = 16;
MiniTLS 0:35aa5be3b78d 357 C->sign = A->sign ^ B->sign;
MiniTLS 0:35aa5be3b78d 358 fp_clamp(C);
MiniTLS 0:35aa5be3b78d 359 COMBA_FINI;
MiniTLS 0:35aa5be3b78d 360 break;
MiniTLS 0:35aa5be3b78d 361
MiniTLS 0:35aa5be3b78d 362 case 9:
MiniTLS 0:35aa5be3b78d 363 memcpy(at, A->dp, 9 * sizeof(fp_digit));
MiniTLS 0:35aa5be3b78d 364 memcpy(at+9, B->dp, 9 * sizeof(fp_digit));
MiniTLS 0:35aa5be3b78d 365 COMBA_START;
MiniTLS 0:35aa5be3b78d 366
MiniTLS 0:35aa5be3b78d 367 COMBA_CLEAR;
MiniTLS 0:35aa5be3b78d 368 /* 0 */
MiniTLS 0:35aa5be3b78d 369 MULADD(at[0], at[9]);
MiniTLS 0:35aa5be3b78d 370 COMBA_STORE(C->dp[0]);
MiniTLS 0:35aa5be3b78d 371 /* 1 */
MiniTLS 0:35aa5be3b78d 372 COMBA_FORWARD;
MiniTLS 0:35aa5be3b78d 373 MULADD(at[0], at[10]); MULADD(at[1], at[9]);
MiniTLS 0:35aa5be3b78d 374 COMBA_STORE(C->dp[1]);
MiniTLS 0:35aa5be3b78d 375 /* 2 */
MiniTLS 0:35aa5be3b78d 376 COMBA_FORWARD;
MiniTLS 0:35aa5be3b78d 377 MULADD(at[0], at[11]); MULADD(at[1], at[10]); MULADD(at[2], at[9]);
MiniTLS 0:35aa5be3b78d 378 COMBA_STORE(C->dp[2]);
MiniTLS 0:35aa5be3b78d 379 /* 3 */
MiniTLS 0:35aa5be3b78d 380 COMBA_FORWARD;
MiniTLS 0:35aa5be3b78d 381 MULADD(at[0], at[12]); MULADD(at[1], at[11]); MULADD(at[2], at[10]); MULADD(at[3], at[9]);
MiniTLS 0:35aa5be3b78d 382 COMBA_STORE(C->dp[3]);
MiniTLS 0:35aa5be3b78d 383 /* 4 */
MiniTLS 0:35aa5be3b78d 384 COMBA_FORWARD;
MiniTLS 0:35aa5be3b78d 385 MULADD(at[0], at[13]); MULADD(at[1], at[12]); MULADD(at[2], at[11]); MULADD(at[3], at[10]); MULADD(at[4], at[9]);
MiniTLS 0:35aa5be3b78d 386 COMBA_STORE(C->dp[4]);
MiniTLS 0:35aa5be3b78d 387 /* 5 */
MiniTLS 0:35aa5be3b78d 388 COMBA_FORWARD;
MiniTLS 0:35aa5be3b78d 389 MULADD(at[0], at[14]); MULADD(at[1], at[13]); MULADD(at[2], at[12]); MULADD(at[3], at[11]); MULADD(at[4], at[10]); MULADD(at[5], at[9]);
MiniTLS 0:35aa5be3b78d 390 COMBA_STORE(C->dp[5]);
MiniTLS 0:35aa5be3b78d 391 /* 6 */
MiniTLS 0:35aa5be3b78d 392 COMBA_FORWARD;
MiniTLS 0:35aa5be3b78d 393 MULADD(at[0], at[15]); MULADD(at[1], at[14]); MULADD(at[2], at[13]); MULADD(at[3], at[12]); MULADD(at[4], at[11]); MULADD(at[5], at[10]); MULADD(at[6], at[9]);
MiniTLS 0:35aa5be3b78d 394 COMBA_STORE(C->dp[6]);
MiniTLS 0:35aa5be3b78d 395 /* 7 */
MiniTLS 0:35aa5be3b78d 396 COMBA_FORWARD;
MiniTLS 0:35aa5be3b78d 397 MULADD(at[0], at[16]); MULADD(at[1], at[15]); MULADD(at[2], at[14]); MULADD(at[3], at[13]); MULADD(at[4], at[12]); MULADD(at[5], at[11]); MULADD(at[6], at[10]); MULADD(at[7], at[9]);
MiniTLS 0:35aa5be3b78d 398 COMBA_STORE(C->dp[7]);
MiniTLS 0:35aa5be3b78d 399 /* 8 */
MiniTLS 0:35aa5be3b78d 400 COMBA_FORWARD;
MiniTLS 0:35aa5be3b78d 401 MULADD(at[0], at[17]); MULADD(at[1], at[16]); MULADD(at[2], at[15]); MULADD(at[3], at[14]); MULADD(at[4], at[13]); MULADD(at[5], at[12]); MULADD(at[6], at[11]); MULADD(at[7], at[10]); MULADD(at[8], at[9]);
MiniTLS 0:35aa5be3b78d 402 COMBA_STORE(C->dp[8]);
MiniTLS 0:35aa5be3b78d 403 /* 9 */
MiniTLS 0:35aa5be3b78d 404 COMBA_FORWARD;
MiniTLS 0:35aa5be3b78d 405 MULADD(at[1], at[17]); MULADD(at[2], at[16]); MULADD(at[3], at[15]); MULADD(at[4], at[14]); MULADD(at[5], at[13]); MULADD(at[6], at[12]); MULADD(at[7], at[11]); MULADD(at[8], at[10]);
MiniTLS 0:35aa5be3b78d 406 COMBA_STORE(C->dp[9]);
MiniTLS 0:35aa5be3b78d 407 /* 10 */
MiniTLS 0:35aa5be3b78d 408 COMBA_FORWARD;
MiniTLS 0:35aa5be3b78d 409 MULADD(at[2], at[17]); MULADD(at[3], at[16]); MULADD(at[4], at[15]); MULADD(at[5], at[14]); MULADD(at[6], at[13]); MULADD(at[7], at[12]); MULADD(at[8], at[11]);
MiniTLS 0:35aa5be3b78d 410 COMBA_STORE(C->dp[10]);
MiniTLS 0:35aa5be3b78d 411 /* 11 */
MiniTLS 0:35aa5be3b78d 412 COMBA_FORWARD;
MiniTLS 0:35aa5be3b78d 413 MULADD(at[3], at[17]); MULADD(at[4], at[16]); MULADD(at[5], at[15]); MULADD(at[6], at[14]); MULADD(at[7], at[13]); MULADD(at[8], at[12]);
MiniTLS 0:35aa5be3b78d 414 COMBA_STORE(C->dp[11]);
MiniTLS 0:35aa5be3b78d 415 /* 12 */
MiniTLS 0:35aa5be3b78d 416 COMBA_FORWARD;
MiniTLS 0:35aa5be3b78d 417 MULADD(at[4], at[17]); MULADD(at[5], at[16]); MULADD(at[6], at[15]); MULADD(at[7], at[14]); MULADD(at[8], at[13]);
MiniTLS 0:35aa5be3b78d 418 COMBA_STORE(C->dp[12]);
MiniTLS 0:35aa5be3b78d 419 /* 13 */
MiniTLS 0:35aa5be3b78d 420 COMBA_FORWARD;
MiniTLS 0:35aa5be3b78d 421 MULADD(at[5], at[17]); MULADD(at[6], at[16]); MULADD(at[7], at[15]); MULADD(at[8], at[14]);
MiniTLS 0:35aa5be3b78d 422 COMBA_STORE(C->dp[13]);
MiniTLS 0:35aa5be3b78d 423 /* 14 */
MiniTLS 0:35aa5be3b78d 424 COMBA_FORWARD;
MiniTLS 0:35aa5be3b78d 425 MULADD(at[6], at[17]); MULADD(at[7], at[16]); MULADD(at[8], at[15]);
MiniTLS 0:35aa5be3b78d 426 COMBA_STORE(C->dp[14]);
MiniTLS 0:35aa5be3b78d 427 /* 15 */
MiniTLS 0:35aa5be3b78d 428 COMBA_FORWARD;
MiniTLS 0:35aa5be3b78d 429 MULADD(at[7], at[17]); MULADD(at[8], at[16]);
MiniTLS 0:35aa5be3b78d 430 COMBA_STORE(C->dp[15]);
MiniTLS 0:35aa5be3b78d 431 /* 16 */
MiniTLS 0:35aa5be3b78d 432 COMBA_FORWARD;
MiniTLS 0:35aa5be3b78d 433 MULADD(at[8], at[17]);
MiniTLS 0:35aa5be3b78d 434 COMBA_STORE(C->dp[16]);
MiniTLS 0:35aa5be3b78d 435 COMBA_STORE2(C->dp[17]);
MiniTLS 0:35aa5be3b78d 436 C->used = 18;
MiniTLS 0:35aa5be3b78d 437 C->sign = A->sign ^ B->sign;
MiniTLS 0:35aa5be3b78d 438 fp_clamp(C);
MiniTLS 0:35aa5be3b78d 439 COMBA_FINI;
MiniTLS 0:35aa5be3b78d 440 break;
MiniTLS 0:35aa5be3b78d 441
MiniTLS 0:35aa5be3b78d 442 case 10:
MiniTLS 0:35aa5be3b78d 443 memcpy(at, A->dp, 10 * sizeof(fp_digit));
MiniTLS 0:35aa5be3b78d 444 memcpy(at+10, B->dp, 10 * sizeof(fp_digit));
MiniTLS 0:35aa5be3b78d 445 COMBA_START;
MiniTLS 0:35aa5be3b78d 446
MiniTLS 0:35aa5be3b78d 447 COMBA_CLEAR;
MiniTLS 0:35aa5be3b78d 448 /* 0 */
MiniTLS 0:35aa5be3b78d 449 MULADD(at[0], at[10]);
MiniTLS 0:35aa5be3b78d 450 COMBA_STORE(C->dp[0]);
MiniTLS 0:35aa5be3b78d 451 /* 1 */
MiniTLS 0:35aa5be3b78d 452 COMBA_FORWARD;
MiniTLS 0:35aa5be3b78d 453 MULADD(at[0], at[11]); MULADD(at[1], at[10]);
MiniTLS 0:35aa5be3b78d 454 COMBA_STORE(C->dp[1]);
MiniTLS 0:35aa5be3b78d 455 /* 2 */
MiniTLS 0:35aa5be3b78d 456 COMBA_FORWARD;
MiniTLS 0:35aa5be3b78d 457 MULADD(at[0], at[12]); MULADD(at[1], at[11]); MULADD(at[2], at[10]);
MiniTLS 0:35aa5be3b78d 458 COMBA_STORE(C->dp[2]);
MiniTLS 0:35aa5be3b78d 459 /* 3 */
MiniTLS 0:35aa5be3b78d 460 COMBA_FORWARD;
MiniTLS 0:35aa5be3b78d 461 MULADD(at[0], at[13]); MULADD(at[1], at[12]); MULADD(at[2], at[11]); MULADD(at[3], at[10]);
MiniTLS 0:35aa5be3b78d 462 COMBA_STORE(C->dp[3]);
MiniTLS 0:35aa5be3b78d 463 /* 4 */
MiniTLS 0:35aa5be3b78d 464 COMBA_FORWARD;
MiniTLS 0:35aa5be3b78d 465 MULADD(at[0], at[14]); MULADD(at[1], at[13]); MULADD(at[2], at[12]); MULADD(at[3], at[11]); MULADD(at[4], at[10]);
MiniTLS 0:35aa5be3b78d 466 COMBA_STORE(C->dp[4]);
MiniTLS 0:35aa5be3b78d 467 /* 5 */
MiniTLS 0:35aa5be3b78d 468 COMBA_FORWARD;
MiniTLS 0:35aa5be3b78d 469 MULADD(at[0], at[15]); MULADD(at[1], at[14]); MULADD(at[2], at[13]); MULADD(at[3], at[12]); MULADD(at[4], at[11]); MULADD(at[5], at[10]);
MiniTLS 0:35aa5be3b78d 470 COMBA_STORE(C->dp[5]);
MiniTLS 0:35aa5be3b78d 471 /* 6 */
MiniTLS 0:35aa5be3b78d 472 COMBA_FORWARD;
MiniTLS 0:35aa5be3b78d 473 MULADD(at[0], at[16]); MULADD(at[1], at[15]); MULADD(at[2], at[14]); MULADD(at[3], at[13]); MULADD(at[4], at[12]); MULADD(at[5], at[11]); MULADD(at[6], at[10]);
MiniTLS 0:35aa5be3b78d 474 COMBA_STORE(C->dp[6]);
MiniTLS 0:35aa5be3b78d 475 /* 7 */
MiniTLS 0:35aa5be3b78d 476 COMBA_FORWARD;
MiniTLS 0:35aa5be3b78d 477 MULADD(at[0], at[17]); MULADD(at[1], at[16]); MULADD(at[2], at[15]); MULADD(at[3], at[14]); MULADD(at[4], at[13]); MULADD(at[5], at[12]); MULADD(at[6], at[11]); MULADD(at[7], at[10]);
MiniTLS 0:35aa5be3b78d 478 COMBA_STORE(C->dp[7]);
MiniTLS 0:35aa5be3b78d 479 /* 8 */
MiniTLS 0:35aa5be3b78d 480 COMBA_FORWARD;
MiniTLS 0:35aa5be3b78d 481 MULADD(at[0], at[18]); MULADD(at[1], at[17]); MULADD(at[2], at[16]); MULADD(at[3], at[15]); MULADD(at[4], at[14]); MULADD(at[5], at[13]); MULADD(at[6], at[12]); MULADD(at[7], at[11]); MULADD(at[8], at[10]);
MiniTLS 0:35aa5be3b78d 482 COMBA_STORE(C->dp[8]);
MiniTLS 0:35aa5be3b78d 483 /* 9 */
MiniTLS 0:35aa5be3b78d 484 COMBA_FORWARD;
MiniTLS 0:35aa5be3b78d 485 MULADD(at[0], at[19]); MULADD(at[1], at[18]); MULADD(at[2], at[17]); MULADD(at[3], at[16]); MULADD(at[4], at[15]); MULADD(at[5], at[14]); MULADD(at[6], at[13]); MULADD(at[7], at[12]); MULADD(at[8], at[11]); MULADD(at[9], at[10]);
MiniTLS 0:35aa5be3b78d 486 COMBA_STORE(C->dp[9]);
MiniTLS 0:35aa5be3b78d 487 /* 10 */
MiniTLS 0:35aa5be3b78d 488 COMBA_FORWARD;
MiniTLS 0:35aa5be3b78d 489 MULADD(at[1], at[19]); MULADD(at[2], at[18]); MULADD(at[3], at[17]); MULADD(at[4], at[16]); MULADD(at[5], at[15]); MULADD(at[6], at[14]); MULADD(at[7], at[13]); MULADD(at[8], at[12]); MULADD(at[9], at[11]);
MiniTLS 0:35aa5be3b78d 490 COMBA_STORE(C->dp[10]);
MiniTLS 0:35aa5be3b78d 491 /* 11 */
MiniTLS 0:35aa5be3b78d 492 COMBA_FORWARD;
MiniTLS 0:35aa5be3b78d 493 MULADD(at[2], at[19]); MULADD(at[3], at[18]); MULADD(at[4], at[17]); MULADD(at[5], at[16]); MULADD(at[6], at[15]); MULADD(at[7], at[14]); MULADD(at[8], at[13]); MULADD(at[9], at[12]);
MiniTLS 0:35aa5be3b78d 494 COMBA_STORE(C->dp[11]);
MiniTLS 0:35aa5be3b78d 495 /* 12 */
MiniTLS 0:35aa5be3b78d 496 COMBA_FORWARD;
MiniTLS 0:35aa5be3b78d 497 MULADD(at[3], at[19]); MULADD(at[4], at[18]); MULADD(at[5], at[17]); MULADD(at[6], at[16]); MULADD(at[7], at[15]); MULADD(at[8], at[14]); MULADD(at[9], at[13]);
MiniTLS 0:35aa5be3b78d 498 COMBA_STORE(C->dp[12]);
MiniTLS 0:35aa5be3b78d 499 /* 13 */
MiniTLS 0:35aa5be3b78d 500 COMBA_FORWARD;
MiniTLS 0:35aa5be3b78d 501 MULADD(at[4], at[19]); MULADD(at[5], at[18]); MULADD(at[6], at[17]); MULADD(at[7], at[16]); MULADD(at[8], at[15]); MULADD(at[9], at[14]);
MiniTLS 0:35aa5be3b78d 502 COMBA_STORE(C->dp[13]);
MiniTLS 0:35aa5be3b78d 503 /* 14 */
MiniTLS 0:35aa5be3b78d 504 COMBA_FORWARD;
MiniTLS 0:35aa5be3b78d 505 MULADD(at[5], at[19]); MULADD(at[6], at[18]); MULADD(at[7], at[17]); MULADD(at[8], at[16]); MULADD(at[9], at[15]);
MiniTLS 0:35aa5be3b78d 506 COMBA_STORE(C->dp[14]);
MiniTLS 0:35aa5be3b78d 507 /* 15 */
MiniTLS 0:35aa5be3b78d 508 COMBA_FORWARD;
MiniTLS 0:35aa5be3b78d 509 MULADD(at[6], at[19]); MULADD(at[7], at[18]); MULADD(at[8], at[17]); MULADD(at[9], at[16]);
MiniTLS 0:35aa5be3b78d 510 COMBA_STORE(C->dp[15]);
MiniTLS 0:35aa5be3b78d 511 /* 16 */
MiniTLS 0:35aa5be3b78d 512 COMBA_FORWARD;
MiniTLS 0:35aa5be3b78d 513 MULADD(at[7], at[19]); MULADD(at[8], at[18]); MULADD(at[9], at[17]);
MiniTLS 0:35aa5be3b78d 514 COMBA_STORE(C->dp[16]);
MiniTLS 0:35aa5be3b78d 515 /* 17 */
MiniTLS 0:35aa5be3b78d 516 COMBA_FORWARD;
MiniTLS 0:35aa5be3b78d 517 MULADD(at[8], at[19]); MULADD(at[9], at[18]);
MiniTLS 0:35aa5be3b78d 518 COMBA_STORE(C->dp[17]);
MiniTLS 0:35aa5be3b78d 519 /* 18 */
MiniTLS 0:35aa5be3b78d 520 COMBA_FORWARD;
MiniTLS 0:35aa5be3b78d 521 MULADD(at[9], at[19]);
MiniTLS 0:35aa5be3b78d 522 COMBA_STORE(C->dp[18]);
MiniTLS 0:35aa5be3b78d 523 COMBA_STORE2(C->dp[19]);
MiniTLS 0:35aa5be3b78d 524 C->used = 20;
MiniTLS 0:35aa5be3b78d 525 C->sign = A->sign ^ B->sign;
MiniTLS 0:35aa5be3b78d 526 fp_clamp(C);
MiniTLS 0:35aa5be3b78d 527 COMBA_FINI;
MiniTLS 0:35aa5be3b78d 528 break;
MiniTLS 0:35aa5be3b78d 529
MiniTLS 0:35aa5be3b78d 530 case 11:
MiniTLS 0:35aa5be3b78d 531 memcpy(at, A->dp, 11 * sizeof(fp_digit));
MiniTLS 0:35aa5be3b78d 532 memcpy(at+11, B->dp, 11 * sizeof(fp_digit));
MiniTLS 0:35aa5be3b78d 533 COMBA_START;
MiniTLS 0:35aa5be3b78d 534
MiniTLS 0:35aa5be3b78d 535 COMBA_CLEAR;
MiniTLS 0:35aa5be3b78d 536 /* 0 */
MiniTLS 0:35aa5be3b78d 537 MULADD(at[0], at[11]);
MiniTLS 0:35aa5be3b78d 538 COMBA_STORE(C->dp[0]);
MiniTLS 0:35aa5be3b78d 539 /* 1 */
MiniTLS 0:35aa5be3b78d 540 COMBA_FORWARD;
MiniTLS 0:35aa5be3b78d 541 MULADD(at[0], at[12]); MULADD(at[1], at[11]);
MiniTLS 0:35aa5be3b78d 542 COMBA_STORE(C->dp[1]);
MiniTLS 0:35aa5be3b78d 543 /* 2 */
MiniTLS 0:35aa5be3b78d 544 COMBA_FORWARD;
MiniTLS 0:35aa5be3b78d 545 MULADD(at[0], at[13]); MULADD(at[1], at[12]); MULADD(at[2], at[11]);
MiniTLS 0:35aa5be3b78d 546 COMBA_STORE(C->dp[2]);
MiniTLS 0:35aa5be3b78d 547 /* 3 */
MiniTLS 0:35aa5be3b78d 548 COMBA_FORWARD;
MiniTLS 0:35aa5be3b78d 549 MULADD(at[0], at[14]); MULADD(at[1], at[13]); MULADD(at[2], at[12]); MULADD(at[3], at[11]);
MiniTLS 0:35aa5be3b78d 550 COMBA_STORE(C->dp[3]);
MiniTLS 0:35aa5be3b78d 551 /* 4 */
MiniTLS 0:35aa5be3b78d 552 COMBA_FORWARD;
MiniTLS 0:35aa5be3b78d 553 MULADD(at[0], at[15]); MULADD(at[1], at[14]); MULADD(at[2], at[13]); MULADD(at[3], at[12]); MULADD(at[4], at[11]);
MiniTLS 0:35aa5be3b78d 554 COMBA_STORE(C->dp[4]);
MiniTLS 0:35aa5be3b78d 555 /* 5 */
MiniTLS 0:35aa5be3b78d 556 COMBA_FORWARD;
MiniTLS 0:35aa5be3b78d 557 MULADD(at[0], at[16]); MULADD(at[1], at[15]); MULADD(at[2], at[14]); MULADD(at[3], at[13]); MULADD(at[4], at[12]); MULADD(at[5], at[11]);
MiniTLS 0:35aa5be3b78d 558 COMBA_STORE(C->dp[5]);
MiniTLS 0:35aa5be3b78d 559 /* 6 */
MiniTLS 0:35aa5be3b78d 560 COMBA_FORWARD;
MiniTLS 0:35aa5be3b78d 561 MULADD(at[0], at[17]); MULADD(at[1], at[16]); MULADD(at[2], at[15]); MULADD(at[3], at[14]); MULADD(at[4], at[13]); MULADD(at[5], at[12]); MULADD(at[6], at[11]);
MiniTLS 0:35aa5be3b78d 562 COMBA_STORE(C->dp[6]);
MiniTLS 0:35aa5be3b78d 563 /* 7 */
MiniTLS 0:35aa5be3b78d 564 COMBA_FORWARD;
MiniTLS 0:35aa5be3b78d 565 MULADD(at[0], at[18]); MULADD(at[1], at[17]); MULADD(at[2], at[16]); MULADD(at[3], at[15]); MULADD(at[4], at[14]); MULADD(at[5], at[13]); MULADD(at[6], at[12]); MULADD(at[7], at[11]);
MiniTLS 0:35aa5be3b78d 566 COMBA_STORE(C->dp[7]);
MiniTLS 0:35aa5be3b78d 567 /* 8 */
MiniTLS 0:35aa5be3b78d 568 COMBA_FORWARD;
MiniTLS 0:35aa5be3b78d 569 MULADD(at[0], at[19]); MULADD(at[1], at[18]); MULADD(at[2], at[17]); MULADD(at[3], at[16]); MULADD(at[4], at[15]); MULADD(at[5], at[14]); MULADD(at[6], at[13]); MULADD(at[7], at[12]); MULADD(at[8], at[11]);
MiniTLS 0:35aa5be3b78d 570 COMBA_STORE(C->dp[8]);
MiniTLS 0:35aa5be3b78d 571 /* 9 */
MiniTLS 0:35aa5be3b78d 572 COMBA_FORWARD;
MiniTLS 0:35aa5be3b78d 573 MULADD(at[0], at[20]); MULADD(at[1], at[19]); MULADD(at[2], at[18]); MULADD(at[3], at[17]); MULADD(at[4], at[16]); MULADD(at[5], at[15]); MULADD(at[6], at[14]); MULADD(at[7], at[13]); MULADD(at[8], at[12]); MULADD(at[9], at[11]);
MiniTLS 0:35aa5be3b78d 574 COMBA_STORE(C->dp[9]);
MiniTLS 0:35aa5be3b78d 575 /* 10 */
MiniTLS 0:35aa5be3b78d 576 COMBA_FORWARD;
MiniTLS 0:35aa5be3b78d 577 MULADD(at[0], at[21]); MULADD(at[1], at[20]); MULADD(at[2], at[19]); MULADD(at[3], at[18]); MULADD(at[4], at[17]); MULADD(at[5], at[16]); MULADD(at[6], at[15]); MULADD(at[7], at[14]); MULADD(at[8], at[13]); MULADD(at[9], at[12]); MULADD(at[10], at[11]);
MiniTLS 0:35aa5be3b78d 578 COMBA_STORE(C->dp[10]);
MiniTLS 0:35aa5be3b78d 579 /* 11 */
MiniTLS 0:35aa5be3b78d 580 COMBA_FORWARD;
MiniTLS 0:35aa5be3b78d 581 MULADD(at[1], at[21]); MULADD(at[2], at[20]); MULADD(at[3], at[19]); MULADD(at[4], at[18]); MULADD(at[5], at[17]); MULADD(at[6], at[16]); MULADD(at[7], at[15]); MULADD(at[8], at[14]); MULADD(at[9], at[13]); MULADD(at[10], at[12]);
MiniTLS 0:35aa5be3b78d 582 COMBA_STORE(C->dp[11]);
MiniTLS 0:35aa5be3b78d 583 /* 12 */
MiniTLS 0:35aa5be3b78d 584 COMBA_FORWARD;
MiniTLS 0:35aa5be3b78d 585 MULADD(at[2], at[21]); MULADD(at[3], at[20]); MULADD(at[4], at[19]); MULADD(at[5], at[18]); MULADD(at[6], at[17]); MULADD(at[7], at[16]); MULADD(at[8], at[15]); MULADD(at[9], at[14]); MULADD(at[10], at[13]);
MiniTLS 0:35aa5be3b78d 586 COMBA_STORE(C->dp[12]);
MiniTLS 0:35aa5be3b78d 587 /* 13 */
MiniTLS 0:35aa5be3b78d 588 COMBA_FORWARD;
MiniTLS 0:35aa5be3b78d 589 MULADD(at[3], at[21]); MULADD(at[4], at[20]); MULADD(at[5], at[19]); MULADD(at[6], at[18]); MULADD(at[7], at[17]); MULADD(at[8], at[16]); MULADD(at[9], at[15]); MULADD(at[10], at[14]);
MiniTLS 0:35aa5be3b78d 590 COMBA_STORE(C->dp[13]);
MiniTLS 0:35aa5be3b78d 591 /* 14 */
MiniTLS 0:35aa5be3b78d 592 COMBA_FORWARD;
MiniTLS 0:35aa5be3b78d 593 MULADD(at[4], at[21]); MULADD(at[5], at[20]); MULADD(at[6], at[19]); MULADD(at[7], at[18]); MULADD(at[8], at[17]); MULADD(at[9], at[16]); MULADD(at[10], at[15]);
MiniTLS 0:35aa5be3b78d 594 COMBA_STORE(C->dp[14]);
MiniTLS 0:35aa5be3b78d 595 /* 15 */
MiniTLS 0:35aa5be3b78d 596 COMBA_FORWARD;
MiniTLS 0:35aa5be3b78d 597 MULADD(at[5], at[21]); MULADD(at[6], at[20]); MULADD(at[7], at[19]); MULADD(at[8], at[18]); MULADD(at[9], at[17]); MULADD(at[10], at[16]);
MiniTLS 0:35aa5be3b78d 598 COMBA_STORE(C->dp[15]);
MiniTLS 0:35aa5be3b78d 599 /* 16 */
MiniTLS 0:35aa5be3b78d 600 COMBA_FORWARD;
MiniTLS 0:35aa5be3b78d 601 MULADD(at[6], at[21]); MULADD(at[7], at[20]); MULADD(at[8], at[19]); MULADD(at[9], at[18]); MULADD(at[10], at[17]);
MiniTLS 0:35aa5be3b78d 602 COMBA_STORE(C->dp[16]);
MiniTLS 0:35aa5be3b78d 603 /* 17 */
MiniTLS 0:35aa5be3b78d 604 COMBA_FORWARD;
MiniTLS 0:35aa5be3b78d 605 MULADD(at[7], at[21]); MULADD(at[8], at[20]); MULADD(at[9], at[19]); MULADD(at[10], at[18]);
MiniTLS 0:35aa5be3b78d 606 COMBA_STORE(C->dp[17]);
MiniTLS 0:35aa5be3b78d 607 /* 18 */
MiniTLS 0:35aa5be3b78d 608 COMBA_FORWARD;
MiniTLS 0:35aa5be3b78d 609 MULADD(at[8], at[21]); MULADD(at[9], at[20]); MULADD(at[10], at[19]);
MiniTLS 0:35aa5be3b78d 610 COMBA_STORE(C->dp[18]);
MiniTLS 0:35aa5be3b78d 611 /* 19 */
MiniTLS 0:35aa5be3b78d 612 COMBA_FORWARD;
MiniTLS 0:35aa5be3b78d 613 MULADD(at[9], at[21]); MULADD(at[10], at[20]);
MiniTLS 0:35aa5be3b78d 614 COMBA_STORE(C->dp[19]);
MiniTLS 0:35aa5be3b78d 615 /* 20 */
MiniTLS 0:35aa5be3b78d 616 COMBA_FORWARD;
MiniTLS 0:35aa5be3b78d 617 MULADD(at[10], at[21]);
MiniTLS 0:35aa5be3b78d 618 COMBA_STORE(C->dp[20]);
MiniTLS 0:35aa5be3b78d 619 COMBA_STORE2(C->dp[21]);
MiniTLS 0:35aa5be3b78d 620 C->used = 22;
MiniTLS 0:35aa5be3b78d 621 C->sign = A->sign ^ B->sign;
MiniTLS 0:35aa5be3b78d 622 fp_clamp(C);
MiniTLS 0:35aa5be3b78d 623 COMBA_FINI;
MiniTLS 0:35aa5be3b78d 624 break;
MiniTLS 0:35aa5be3b78d 625
MiniTLS 0:35aa5be3b78d 626 case 12:
MiniTLS 0:35aa5be3b78d 627 memcpy(at, A->dp, 12 * sizeof(fp_digit));
MiniTLS 0:35aa5be3b78d 628 memcpy(at+12, B->dp, 12 * sizeof(fp_digit));
MiniTLS 0:35aa5be3b78d 629 COMBA_START;
MiniTLS 0:35aa5be3b78d 630
MiniTLS 0:35aa5be3b78d 631 COMBA_CLEAR;
MiniTLS 0:35aa5be3b78d 632 /* 0 */
MiniTLS 0:35aa5be3b78d 633 MULADD(at[0], at[12]);
MiniTLS 0:35aa5be3b78d 634 COMBA_STORE(C->dp[0]);
MiniTLS 0:35aa5be3b78d 635 /* 1 */
MiniTLS 0:35aa5be3b78d 636 COMBA_FORWARD;
MiniTLS 0:35aa5be3b78d 637 MULADD(at[0], at[13]); MULADD(at[1], at[12]);
MiniTLS 0:35aa5be3b78d 638 COMBA_STORE(C->dp[1]);
MiniTLS 0:35aa5be3b78d 639 /* 2 */
MiniTLS 0:35aa5be3b78d 640 COMBA_FORWARD;
MiniTLS 0:35aa5be3b78d 641 MULADD(at[0], at[14]); MULADD(at[1], at[13]); MULADD(at[2], at[12]);
MiniTLS 0:35aa5be3b78d 642 COMBA_STORE(C->dp[2]);
MiniTLS 0:35aa5be3b78d 643 /* 3 */
MiniTLS 0:35aa5be3b78d 644 COMBA_FORWARD;
MiniTLS 0:35aa5be3b78d 645 MULADD(at[0], at[15]); MULADD(at[1], at[14]); MULADD(at[2], at[13]); MULADD(at[3], at[12]);
MiniTLS 0:35aa5be3b78d 646 COMBA_STORE(C->dp[3]);
MiniTLS 0:35aa5be3b78d 647 /* 4 */
MiniTLS 0:35aa5be3b78d 648 COMBA_FORWARD;
MiniTLS 0:35aa5be3b78d 649 MULADD(at[0], at[16]); MULADD(at[1], at[15]); MULADD(at[2], at[14]); MULADD(at[3], at[13]); MULADD(at[4], at[12]);
MiniTLS 0:35aa5be3b78d 650 COMBA_STORE(C->dp[4]);
MiniTLS 0:35aa5be3b78d 651 /* 5 */
MiniTLS 0:35aa5be3b78d 652 COMBA_FORWARD;
MiniTLS 0:35aa5be3b78d 653 MULADD(at[0], at[17]); MULADD(at[1], at[16]); MULADD(at[2], at[15]); MULADD(at[3], at[14]); MULADD(at[4], at[13]); MULADD(at[5], at[12]);
MiniTLS 0:35aa5be3b78d 654 COMBA_STORE(C->dp[5]);
MiniTLS 0:35aa5be3b78d 655 /* 6 */
MiniTLS 0:35aa5be3b78d 656 COMBA_FORWARD;
MiniTLS 0:35aa5be3b78d 657 MULADD(at[0], at[18]); MULADD(at[1], at[17]); MULADD(at[2], at[16]); MULADD(at[3], at[15]); MULADD(at[4], at[14]); MULADD(at[5], at[13]); MULADD(at[6], at[12]);
MiniTLS 0:35aa5be3b78d 658 COMBA_STORE(C->dp[6]);
MiniTLS 0:35aa5be3b78d 659 /* 7 */
MiniTLS 0:35aa5be3b78d 660 COMBA_FORWARD;
MiniTLS 0:35aa5be3b78d 661 MULADD(at[0], at[19]); MULADD(at[1], at[18]); MULADD(at[2], at[17]); MULADD(at[3], at[16]); MULADD(at[4], at[15]); MULADD(at[5], at[14]); MULADD(at[6], at[13]); MULADD(at[7], at[12]);
MiniTLS 0:35aa5be3b78d 662 COMBA_STORE(C->dp[7]);
MiniTLS 0:35aa5be3b78d 663 /* 8 */
MiniTLS 0:35aa5be3b78d 664 COMBA_FORWARD;
MiniTLS 0:35aa5be3b78d 665 MULADD(at[0], at[20]); MULADD(at[1], at[19]); MULADD(at[2], at[18]); MULADD(at[3], at[17]); MULADD(at[4], at[16]); MULADD(at[5], at[15]); MULADD(at[6], at[14]); MULADD(at[7], at[13]); MULADD(at[8], at[12]);
MiniTLS 0:35aa5be3b78d 666 COMBA_STORE(C->dp[8]);
MiniTLS 0:35aa5be3b78d 667 /* 9 */
MiniTLS 0:35aa5be3b78d 668 COMBA_FORWARD;
MiniTLS 0:35aa5be3b78d 669 MULADD(at[0], at[21]); MULADD(at[1], at[20]); MULADD(at[2], at[19]); MULADD(at[3], at[18]); MULADD(at[4], at[17]); MULADD(at[5], at[16]); MULADD(at[6], at[15]); MULADD(at[7], at[14]); MULADD(at[8], at[13]); MULADD(at[9], at[12]);
MiniTLS 0:35aa5be3b78d 670 COMBA_STORE(C->dp[9]);
MiniTLS 0:35aa5be3b78d 671 /* 10 */
MiniTLS 0:35aa5be3b78d 672 COMBA_FORWARD;
MiniTLS 0:35aa5be3b78d 673 MULADD(at[0], at[22]); MULADD(at[1], at[21]); MULADD(at[2], at[20]); MULADD(at[3], at[19]); MULADD(at[4], at[18]); MULADD(at[5], at[17]); MULADD(at[6], at[16]); MULADD(at[7], at[15]); MULADD(at[8], at[14]); MULADD(at[9], at[13]); MULADD(at[10], at[12]);
MiniTLS 0:35aa5be3b78d 674 COMBA_STORE(C->dp[10]);
MiniTLS 0:35aa5be3b78d 675 /* 11 */
MiniTLS 0:35aa5be3b78d 676 COMBA_FORWARD;
MiniTLS 0:35aa5be3b78d 677 MULADD(at[0], at[23]); MULADD(at[1], at[22]); MULADD(at[2], at[21]); MULADD(at[3], at[20]); MULADD(at[4], at[19]); MULADD(at[5], at[18]); MULADD(at[6], at[17]); MULADD(at[7], at[16]); MULADD(at[8], at[15]); MULADD(at[9], at[14]); MULADD(at[10], at[13]); MULADD(at[11], at[12]);
MiniTLS 0:35aa5be3b78d 678 COMBA_STORE(C->dp[11]);
MiniTLS 0:35aa5be3b78d 679 /* 12 */
MiniTLS 0:35aa5be3b78d 680 COMBA_FORWARD;
MiniTLS 0:35aa5be3b78d 681 MULADD(at[1], at[23]); MULADD(at[2], at[22]); MULADD(at[3], at[21]); MULADD(at[4], at[20]); MULADD(at[5], at[19]); MULADD(at[6], at[18]); MULADD(at[7], at[17]); MULADD(at[8], at[16]); MULADD(at[9], at[15]); MULADD(at[10], at[14]); MULADD(at[11], at[13]);
MiniTLS 0:35aa5be3b78d 682 COMBA_STORE(C->dp[12]);
MiniTLS 0:35aa5be3b78d 683 /* 13 */
MiniTLS 0:35aa5be3b78d 684 COMBA_FORWARD;
MiniTLS 0:35aa5be3b78d 685 MULADD(at[2], at[23]); MULADD(at[3], at[22]); MULADD(at[4], at[21]); MULADD(at[5], at[20]); MULADD(at[6], at[19]); MULADD(at[7], at[18]); MULADD(at[8], at[17]); MULADD(at[9], at[16]); MULADD(at[10], at[15]); MULADD(at[11], at[14]);
MiniTLS 0:35aa5be3b78d 686 COMBA_STORE(C->dp[13]);
MiniTLS 0:35aa5be3b78d 687 /* 14 */
MiniTLS 0:35aa5be3b78d 688 COMBA_FORWARD;
MiniTLS 0:35aa5be3b78d 689 MULADD(at[3], at[23]); MULADD(at[4], at[22]); MULADD(at[5], at[21]); MULADD(at[6], at[20]); MULADD(at[7], at[19]); MULADD(at[8], at[18]); MULADD(at[9], at[17]); MULADD(at[10], at[16]); MULADD(at[11], at[15]);
MiniTLS 0:35aa5be3b78d 690 COMBA_STORE(C->dp[14]);
MiniTLS 0:35aa5be3b78d 691 /* 15 */
MiniTLS 0:35aa5be3b78d 692 COMBA_FORWARD;
MiniTLS 0:35aa5be3b78d 693 MULADD(at[4], at[23]); MULADD(at[5], at[22]); MULADD(at[6], at[21]); MULADD(at[7], at[20]); MULADD(at[8], at[19]); MULADD(at[9], at[18]); MULADD(at[10], at[17]); MULADD(at[11], at[16]);
MiniTLS 0:35aa5be3b78d 694 COMBA_STORE(C->dp[15]);
MiniTLS 0:35aa5be3b78d 695 /* 16 */
MiniTLS 0:35aa5be3b78d 696 COMBA_FORWARD;
MiniTLS 0:35aa5be3b78d 697 MULADD(at[5], at[23]); MULADD(at[6], at[22]); MULADD(at[7], at[21]); MULADD(at[8], at[20]); MULADD(at[9], at[19]); MULADD(at[10], at[18]); MULADD(at[11], at[17]);
MiniTLS 0:35aa5be3b78d 698 COMBA_STORE(C->dp[16]);
MiniTLS 0:35aa5be3b78d 699 /* 17 */
MiniTLS 0:35aa5be3b78d 700 COMBA_FORWARD;
MiniTLS 0:35aa5be3b78d 701 MULADD(at[6], at[23]); MULADD(at[7], at[22]); MULADD(at[8], at[21]); MULADD(at[9], at[20]); MULADD(at[10], at[19]); MULADD(at[11], at[18]);
MiniTLS 0:35aa5be3b78d 702 COMBA_STORE(C->dp[17]);
MiniTLS 0:35aa5be3b78d 703 /* 18 */
MiniTLS 0:35aa5be3b78d 704 COMBA_FORWARD;
MiniTLS 0:35aa5be3b78d 705 MULADD(at[7], at[23]); MULADD(at[8], at[22]); MULADD(at[9], at[21]); MULADD(at[10], at[20]); MULADD(at[11], at[19]);
MiniTLS 0:35aa5be3b78d 706 COMBA_STORE(C->dp[18]);
MiniTLS 0:35aa5be3b78d 707 /* 19 */
MiniTLS 0:35aa5be3b78d 708 COMBA_FORWARD;
MiniTLS 0:35aa5be3b78d 709 MULADD(at[8], at[23]); MULADD(at[9], at[22]); MULADD(at[10], at[21]); MULADD(at[11], at[20]);
MiniTLS 0:35aa5be3b78d 710 COMBA_STORE(C->dp[19]);
MiniTLS 0:35aa5be3b78d 711 /* 20 */
MiniTLS 0:35aa5be3b78d 712 COMBA_FORWARD;
MiniTLS 0:35aa5be3b78d 713 MULADD(at[9], at[23]); MULADD(at[10], at[22]); MULADD(at[11], at[21]);
MiniTLS 0:35aa5be3b78d 714 COMBA_STORE(C->dp[20]);
MiniTLS 0:35aa5be3b78d 715 /* 21 */
MiniTLS 0:35aa5be3b78d 716 COMBA_FORWARD;
MiniTLS 0:35aa5be3b78d 717 MULADD(at[10], at[23]); MULADD(at[11], at[22]);
MiniTLS 0:35aa5be3b78d 718 COMBA_STORE(C->dp[21]);
MiniTLS 0:35aa5be3b78d 719 /* 22 */
MiniTLS 0:35aa5be3b78d 720 COMBA_FORWARD;
MiniTLS 0:35aa5be3b78d 721 MULADD(at[11], at[23]);
MiniTLS 0:35aa5be3b78d 722 COMBA_STORE(C->dp[22]);
MiniTLS 0:35aa5be3b78d 723 COMBA_STORE2(C->dp[23]);
MiniTLS 0:35aa5be3b78d 724 C->used = 24;
MiniTLS 0:35aa5be3b78d 725 C->sign = A->sign ^ B->sign;
MiniTLS 0:35aa5be3b78d 726 fp_clamp(C);
MiniTLS 0:35aa5be3b78d 727 COMBA_FINI;
MiniTLS 0:35aa5be3b78d 728 break;
MiniTLS 0:35aa5be3b78d 729
MiniTLS 0:35aa5be3b78d 730 case 13:
MiniTLS 0:35aa5be3b78d 731 memcpy(at, A->dp, 13 * sizeof(fp_digit));
MiniTLS 0:35aa5be3b78d 732 memcpy(at+13, B->dp, 13 * sizeof(fp_digit));
MiniTLS 0:35aa5be3b78d 733 COMBA_START;
MiniTLS 0:35aa5be3b78d 734
MiniTLS 0:35aa5be3b78d 735 COMBA_CLEAR;
MiniTLS 0:35aa5be3b78d 736 /* 0 */
MiniTLS 0:35aa5be3b78d 737 MULADD(at[0], at[13]);
MiniTLS 0:35aa5be3b78d 738 COMBA_STORE(C->dp[0]);
MiniTLS 0:35aa5be3b78d 739 /* 1 */
MiniTLS 0:35aa5be3b78d 740 COMBA_FORWARD;
MiniTLS 0:35aa5be3b78d 741 MULADD(at[0], at[14]); MULADD(at[1], at[13]);
MiniTLS 0:35aa5be3b78d 742 COMBA_STORE(C->dp[1]);
MiniTLS 0:35aa5be3b78d 743 /* 2 */
MiniTLS 0:35aa5be3b78d 744 COMBA_FORWARD;
MiniTLS 0:35aa5be3b78d 745 MULADD(at[0], at[15]); MULADD(at[1], at[14]); MULADD(at[2], at[13]);
MiniTLS 0:35aa5be3b78d 746 COMBA_STORE(C->dp[2]);
MiniTLS 0:35aa5be3b78d 747 /* 3 */
MiniTLS 0:35aa5be3b78d 748 COMBA_FORWARD;
MiniTLS 0:35aa5be3b78d 749 MULADD(at[0], at[16]); MULADD(at[1], at[15]); MULADD(at[2], at[14]); MULADD(at[3], at[13]);
MiniTLS 0:35aa5be3b78d 750 COMBA_STORE(C->dp[3]);
MiniTLS 0:35aa5be3b78d 751 /* 4 */
MiniTLS 0:35aa5be3b78d 752 COMBA_FORWARD;
MiniTLS 0:35aa5be3b78d 753 MULADD(at[0], at[17]); MULADD(at[1], at[16]); MULADD(at[2], at[15]); MULADD(at[3], at[14]); MULADD(at[4], at[13]);
MiniTLS 0:35aa5be3b78d 754 COMBA_STORE(C->dp[4]);
MiniTLS 0:35aa5be3b78d 755 /* 5 */
MiniTLS 0:35aa5be3b78d 756 COMBA_FORWARD;
MiniTLS 0:35aa5be3b78d 757 MULADD(at[0], at[18]); MULADD(at[1], at[17]); MULADD(at[2], at[16]); MULADD(at[3], at[15]); MULADD(at[4], at[14]); MULADD(at[5], at[13]);
MiniTLS 0:35aa5be3b78d 758 COMBA_STORE(C->dp[5]);
MiniTLS 0:35aa5be3b78d 759 /* 6 */
MiniTLS 0:35aa5be3b78d 760 COMBA_FORWARD;
MiniTLS 0:35aa5be3b78d 761 MULADD(at[0], at[19]); MULADD(at[1], at[18]); MULADD(at[2], at[17]); MULADD(at[3], at[16]); MULADD(at[4], at[15]); MULADD(at[5], at[14]); MULADD(at[6], at[13]);
MiniTLS 0:35aa5be3b78d 762 COMBA_STORE(C->dp[6]);
MiniTLS 0:35aa5be3b78d 763 /* 7 */
MiniTLS 0:35aa5be3b78d 764 COMBA_FORWARD;
MiniTLS 0:35aa5be3b78d 765 MULADD(at[0], at[20]); MULADD(at[1], at[19]); MULADD(at[2], at[18]); MULADD(at[3], at[17]); MULADD(at[4], at[16]); MULADD(at[5], at[15]); MULADD(at[6], at[14]); MULADD(at[7], at[13]);
MiniTLS 0:35aa5be3b78d 766 COMBA_STORE(C->dp[7]);
MiniTLS 0:35aa5be3b78d 767 /* 8 */
MiniTLS 0:35aa5be3b78d 768 COMBA_FORWARD;
MiniTLS 0:35aa5be3b78d 769 MULADD(at[0], at[21]); MULADD(at[1], at[20]); MULADD(at[2], at[19]); MULADD(at[3], at[18]); MULADD(at[4], at[17]); MULADD(at[5], at[16]); MULADD(at[6], at[15]); MULADD(at[7], at[14]); MULADD(at[8], at[13]);
MiniTLS 0:35aa5be3b78d 770 COMBA_STORE(C->dp[8]);
MiniTLS 0:35aa5be3b78d 771 /* 9 */
MiniTLS 0:35aa5be3b78d 772 COMBA_FORWARD;
MiniTLS 0:35aa5be3b78d 773 MULADD(at[0], at[22]); MULADD(at[1], at[21]); MULADD(at[2], at[20]); MULADD(at[3], at[19]); MULADD(at[4], at[18]); MULADD(at[5], at[17]); MULADD(at[6], at[16]); MULADD(at[7], at[15]); MULADD(at[8], at[14]); MULADD(at[9], at[13]);
MiniTLS 0:35aa5be3b78d 774 COMBA_STORE(C->dp[9]);
MiniTLS 0:35aa5be3b78d 775 /* 10 */
MiniTLS 0:35aa5be3b78d 776 COMBA_FORWARD;
MiniTLS 0:35aa5be3b78d 777 MULADD(at[0], at[23]); MULADD(at[1], at[22]); MULADD(at[2], at[21]); MULADD(at[3], at[20]); MULADD(at[4], at[19]); MULADD(at[5], at[18]); MULADD(at[6], at[17]); MULADD(at[7], at[16]); MULADD(at[8], at[15]); MULADD(at[9], at[14]); MULADD(at[10], at[13]);
MiniTLS 0:35aa5be3b78d 778 COMBA_STORE(C->dp[10]);
MiniTLS 0:35aa5be3b78d 779 /* 11 */
MiniTLS 0:35aa5be3b78d 780 COMBA_FORWARD;
MiniTLS 0:35aa5be3b78d 781 MULADD(at[0], at[24]); MULADD(at[1], at[23]); MULADD(at[2], at[22]); MULADD(at[3], at[21]); MULADD(at[4], at[20]); MULADD(at[5], at[19]); MULADD(at[6], at[18]); MULADD(at[7], at[17]); MULADD(at[8], at[16]); MULADD(at[9], at[15]); MULADD(at[10], at[14]); MULADD(at[11], at[13]);
MiniTLS 0:35aa5be3b78d 782 COMBA_STORE(C->dp[11]);
MiniTLS 0:35aa5be3b78d 783 /* 12 */
MiniTLS 0:35aa5be3b78d 784 COMBA_FORWARD;
MiniTLS 0:35aa5be3b78d 785 MULADD(at[0], at[25]); MULADD(at[1], at[24]); MULADD(at[2], at[23]); MULADD(at[3], at[22]); MULADD(at[4], at[21]); MULADD(at[5], at[20]); MULADD(at[6], at[19]); MULADD(at[7], at[18]); MULADD(at[8], at[17]); MULADD(at[9], at[16]); MULADD(at[10], at[15]); MULADD(at[11], at[14]); MULADD(at[12], at[13]);
MiniTLS 0:35aa5be3b78d 786 COMBA_STORE(C->dp[12]);
MiniTLS 0:35aa5be3b78d 787 /* 13 */
MiniTLS 0:35aa5be3b78d 788 COMBA_FORWARD;
MiniTLS 0:35aa5be3b78d 789 MULADD(at[1], at[25]); MULADD(at[2], at[24]); MULADD(at[3], at[23]); MULADD(at[4], at[22]); MULADD(at[5], at[21]); MULADD(at[6], at[20]); MULADD(at[7], at[19]); MULADD(at[8], at[18]); MULADD(at[9], at[17]); MULADD(at[10], at[16]); MULADD(at[11], at[15]); MULADD(at[12], at[14]);
MiniTLS 0:35aa5be3b78d 790 COMBA_STORE(C->dp[13]);
MiniTLS 0:35aa5be3b78d 791 /* 14 */
MiniTLS 0:35aa5be3b78d 792 COMBA_FORWARD;
MiniTLS 0:35aa5be3b78d 793 MULADD(at[2], at[25]); MULADD(at[3], at[24]); MULADD(at[4], at[23]); MULADD(at[5], at[22]); MULADD(at[6], at[21]); MULADD(at[7], at[20]); MULADD(at[8], at[19]); MULADD(at[9], at[18]); MULADD(at[10], at[17]); MULADD(at[11], at[16]); MULADD(at[12], at[15]);
MiniTLS 0:35aa5be3b78d 794 COMBA_STORE(C->dp[14]);
MiniTLS 0:35aa5be3b78d 795 /* 15 */
MiniTLS 0:35aa5be3b78d 796 COMBA_FORWARD;
MiniTLS 0:35aa5be3b78d 797 MULADD(at[3], at[25]); MULADD(at[4], at[24]); MULADD(at[5], at[23]); MULADD(at[6], at[22]); MULADD(at[7], at[21]); MULADD(at[8], at[20]); MULADD(at[9], at[19]); MULADD(at[10], at[18]); MULADD(at[11], at[17]); MULADD(at[12], at[16]);
MiniTLS 0:35aa5be3b78d 798 COMBA_STORE(C->dp[15]);
MiniTLS 0:35aa5be3b78d 799 /* 16 */
MiniTLS 0:35aa5be3b78d 800 COMBA_FORWARD;
MiniTLS 0:35aa5be3b78d 801 MULADD(at[4], at[25]); MULADD(at[5], at[24]); MULADD(at[6], at[23]); MULADD(at[7], at[22]); MULADD(at[8], at[21]); MULADD(at[9], at[20]); MULADD(at[10], at[19]); MULADD(at[11], at[18]); MULADD(at[12], at[17]);
MiniTLS 0:35aa5be3b78d 802 COMBA_STORE(C->dp[16]);
MiniTLS 0:35aa5be3b78d 803 /* 17 */
MiniTLS 0:35aa5be3b78d 804 COMBA_FORWARD;
MiniTLS 0:35aa5be3b78d 805 MULADD(at[5], at[25]); MULADD(at[6], at[24]); MULADD(at[7], at[23]); MULADD(at[8], at[22]); MULADD(at[9], at[21]); MULADD(at[10], at[20]); MULADD(at[11], at[19]); MULADD(at[12], at[18]);
MiniTLS 0:35aa5be3b78d 806 COMBA_STORE(C->dp[17]);
MiniTLS 0:35aa5be3b78d 807 /* 18 */
MiniTLS 0:35aa5be3b78d 808 COMBA_FORWARD;
MiniTLS 0:35aa5be3b78d 809 MULADD(at[6], at[25]); MULADD(at[7], at[24]); MULADD(at[8], at[23]); MULADD(at[9], at[22]); MULADD(at[10], at[21]); MULADD(at[11], at[20]); MULADD(at[12], at[19]);
MiniTLS 0:35aa5be3b78d 810 COMBA_STORE(C->dp[18]);
MiniTLS 0:35aa5be3b78d 811 /* 19 */
MiniTLS 0:35aa5be3b78d 812 COMBA_FORWARD;
MiniTLS 0:35aa5be3b78d 813 MULADD(at[7], at[25]); MULADD(at[8], at[24]); MULADD(at[9], at[23]); MULADD(at[10], at[22]); MULADD(at[11], at[21]); MULADD(at[12], at[20]);
MiniTLS 0:35aa5be3b78d 814 COMBA_STORE(C->dp[19]);
MiniTLS 0:35aa5be3b78d 815 /* 20 */
MiniTLS 0:35aa5be3b78d 816 COMBA_FORWARD;
MiniTLS 0:35aa5be3b78d 817 MULADD(at[8], at[25]); MULADD(at[9], at[24]); MULADD(at[10], at[23]); MULADD(at[11], at[22]); MULADD(at[12], at[21]);
MiniTLS 0:35aa5be3b78d 818 COMBA_STORE(C->dp[20]);
MiniTLS 0:35aa5be3b78d 819 /* 21 */
MiniTLS 0:35aa5be3b78d 820 COMBA_FORWARD;
MiniTLS 0:35aa5be3b78d 821 MULADD(at[9], at[25]); MULADD(at[10], at[24]); MULADD(at[11], at[23]); MULADD(at[12], at[22]);
MiniTLS 0:35aa5be3b78d 822 COMBA_STORE(C->dp[21]);
MiniTLS 0:35aa5be3b78d 823 /* 22 */
MiniTLS 0:35aa5be3b78d 824 COMBA_FORWARD;
MiniTLS 0:35aa5be3b78d 825 MULADD(at[10], at[25]); MULADD(at[11], at[24]); MULADD(at[12], at[23]);
MiniTLS 0:35aa5be3b78d 826 COMBA_STORE(C->dp[22]);
MiniTLS 0:35aa5be3b78d 827 /* 23 */
MiniTLS 0:35aa5be3b78d 828 COMBA_FORWARD;
MiniTLS 0:35aa5be3b78d 829 MULADD(at[11], at[25]); MULADD(at[12], at[24]);
MiniTLS 0:35aa5be3b78d 830 COMBA_STORE(C->dp[23]);
MiniTLS 0:35aa5be3b78d 831 /* 24 */
MiniTLS 0:35aa5be3b78d 832 COMBA_FORWARD;
MiniTLS 0:35aa5be3b78d 833 MULADD(at[12], at[25]);
MiniTLS 0:35aa5be3b78d 834 COMBA_STORE(C->dp[24]);
MiniTLS 0:35aa5be3b78d 835 COMBA_STORE2(C->dp[25]);
MiniTLS 0:35aa5be3b78d 836 C->used = 26;
MiniTLS 0:35aa5be3b78d 837 C->sign = A->sign ^ B->sign;
MiniTLS 0:35aa5be3b78d 838 fp_clamp(C);
MiniTLS 0:35aa5be3b78d 839 COMBA_FINI;
MiniTLS 0:35aa5be3b78d 840 break;
MiniTLS 0:35aa5be3b78d 841
MiniTLS 0:35aa5be3b78d 842 case 14:
MiniTLS 0:35aa5be3b78d 843 memcpy(at, A->dp, 14 * sizeof(fp_digit));
MiniTLS 0:35aa5be3b78d 844 memcpy(at+14, B->dp, 14 * sizeof(fp_digit));
MiniTLS 0:35aa5be3b78d 845 COMBA_START;
MiniTLS 0:35aa5be3b78d 846
MiniTLS 0:35aa5be3b78d 847 COMBA_CLEAR;
MiniTLS 0:35aa5be3b78d 848 /* 0 */
MiniTLS 0:35aa5be3b78d 849 MULADD(at[0], at[14]);
MiniTLS 0:35aa5be3b78d 850 COMBA_STORE(C->dp[0]);
MiniTLS 0:35aa5be3b78d 851 /* 1 */
MiniTLS 0:35aa5be3b78d 852 COMBA_FORWARD;
MiniTLS 0:35aa5be3b78d 853 MULADD(at[0], at[15]); MULADD(at[1], at[14]);
MiniTLS 0:35aa5be3b78d 854 COMBA_STORE(C->dp[1]);
MiniTLS 0:35aa5be3b78d 855 /* 2 */
MiniTLS 0:35aa5be3b78d 856 COMBA_FORWARD;
MiniTLS 0:35aa5be3b78d 857 MULADD(at[0], at[16]); MULADD(at[1], at[15]); MULADD(at[2], at[14]);
MiniTLS 0:35aa5be3b78d 858 COMBA_STORE(C->dp[2]);
MiniTLS 0:35aa5be3b78d 859 /* 3 */
MiniTLS 0:35aa5be3b78d 860 COMBA_FORWARD;
MiniTLS 0:35aa5be3b78d 861 MULADD(at[0], at[17]); MULADD(at[1], at[16]); MULADD(at[2], at[15]); MULADD(at[3], at[14]);
MiniTLS 0:35aa5be3b78d 862 COMBA_STORE(C->dp[3]);
MiniTLS 0:35aa5be3b78d 863 /* 4 */
MiniTLS 0:35aa5be3b78d 864 COMBA_FORWARD;
MiniTLS 0:35aa5be3b78d 865 MULADD(at[0], at[18]); MULADD(at[1], at[17]); MULADD(at[2], at[16]); MULADD(at[3], at[15]); MULADD(at[4], at[14]);
MiniTLS 0:35aa5be3b78d 866 COMBA_STORE(C->dp[4]);
MiniTLS 0:35aa5be3b78d 867 /* 5 */
MiniTLS 0:35aa5be3b78d 868 COMBA_FORWARD;
MiniTLS 0:35aa5be3b78d 869 MULADD(at[0], at[19]); MULADD(at[1], at[18]); MULADD(at[2], at[17]); MULADD(at[3], at[16]); MULADD(at[4], at[15]); MULADD(at[5], at[14]);
MiniTLS 0:35aa5be3b78d 870 COMBA_STORE(C->dp[5]);
MiniTLS 0:35aa5be3b78d 871 /* 6 */
MiniTLS 0:35aa5be3b78d 872 COMBA_FORWARD;
MiniTLS 0:35aa5be3b78d 873 MULADD(at[0], at[20]); MULADD(at[1], at[19]); MULADD(at[2], at[18]); MULADD(at[3], at[17]); MULADD(at[4], at[16]); MULADD(at[5], at[15]); MULADD(at[6], at[14]);
MiniTLS 0:35aa5be3b78d 874 COMBA_STORE(C->dp[6]);
MiniTLS 0:35aa5be3b78d 875 /* 7 */
MiniTLS 0:35aa5be3b78d 876 COMBA_FORWARD;
MiniTLS 0:35aa5be3b78d 877 MULADD(at[0], at[21]); MULADD(at[1], at[20]); MULADD(at[2], at[19]); MULADD(at[3], at[18]); MULADD(at[4], at[17]); MULADD(at[5], at[16]); MULADD(at[6], at[15]); MULADD(at[7], at[14]);
MiniTLS 0:35aa5be3b78d 878 COMBA_STORE(C->dp[7]);
MiniTLS 0:35aa5be3b78d 879 /* 8 */
MiniTLS 0:35aa5be3b78d 880 COMBA_FORWARD;
MiniTLS 0:35aa5be3b78d 881 MULADD(at[0], at[22]); MULADD(at[1], at[21]); MULADD(at[2], at[20]); MULADD(at[3], at[19]); MULADD(at[4], at[18]); MULADD(at[5], at[17]); MULADD(at[6], at[16]); MULADD(at[7], at[15]); MULADD(at[8], at[14]);
MiniTLS 0:35aa5be3b78d 882 COMBA_STORE(C->dp[8]);
MiniTLS 0:35aa5be3b78d 883 /* 9 */
MiniTLS 0:35aa5be3b78d 884 COMBA_FORWARD;
MiniTLS 0:35aa5be3b78d 885 MULADD(at[0], at[23]); MULADD(at[1], at[22]); MULADD(at[2], at[21]); MULADD(at[3], at[20]); MULADD(at[4], at[19]); MULADD(at[5], at[18]); MULADD(at[6], at[17]); MULADD(at[7], at[16]); MULADD(at[8], at[15]); MULADD(at[9], at[14]);
MiniTLS 0:35aa5be3b78d 886 COMBA_STORE(C->dp[9]);
MiniTLS 0:35aa5be3b78d 887 /* 10 */
MiniTLS 0:35aa5be3b78d 888 COMBA_FORWARD;
MiniTLS 0:35aa5be3b78d 889 MULADD(at[0], at[24]); MULADD(at[1], at[23]); MULADD(at[2], at[22]); MULADD(at[3], at[21]); MULADD(at[4], at[20]); MULADD(at[5], at[19]); MULADD(at[6], at[18]); MULADD(at[7], at[17]); MULADD(at[8], at[16]); MULADD(at[9], at[15]); MULADD(at[10], at[14]);
MiniTLS 0:35aa5be3b78d 890 COMBA_STORE(C->dp[10]);
MiniTLS 0:35aa5be3b78d 891 /* 11 */
MiniTLS 0:35aa5be3b78d 892 COMBA_FORWARD;
MiniTLS 0:35aa5be3b78d 893 MULADD(at[0], at[25]); MULADD(at[1], at[24]); MULADD(at[2], at[23]); MULADD(at[3], at[22]); MULADD(at[4], at[21]); MULADD(at[5], at[20]); MULADD(at[6], at[19]); MULADD(at[7], at[18]); MULADD(at[8], at[17]); MULADD(at[9], at[16]); MULADD(at[10], at[15]); MULADD(at[11], at[14]);
MiniTLS 0:35aa5be3b78d 894 COMBA_STORE(C->dp[11]);
MiniTLS 0:35aa5be3b78d 895 /* 12 */
MiniTLS 0:35aa5be3b78d 896 COMBA_FORWARD;
MiniTLS 0:35aa5be3b78d 897 MULADD(at[0], at[26]); MULADD(at[1], at[25]); MULADD(at[2], at[24]); MULADD(at[3], at[23]); MULADD(at[4], at[22]); MULADD(at[5], at[21]); MULADD(at[6], at[20]); MULADD(at[7], at[19]); MULADD(at[8], at[18]); MULADD(at[9], at[17]); MULADD(at[10], at[16]); MULADD(at[11], at[15]); MULADD(at[12], at[14]);
MiniTLS 0:35aa5be3b78d 898 COMBA_STORE(C->dp[12]);
MiniTLS 0:35aa5be3b78d 899 /* 13 */
MiniTLS 0:35aa5be3b78d 900 COMBA_FORWARD;
MiniTLS 0:35aa5be3b78d 901 MULADD(at[0], at[27]); MULADD(at[1], at[26]); MULADD(at[2], at[25]); MULADD(at[3], at[24]); MULADD(at[4], at[23]); MULADD(at[5], at[22]); MULADD(at[6], at[21]); MULADD(at[7], at[20]); MULADD(at[8], at[19]); MULADD(at[9], at[18]); MULADD(at[10], at[17]); MULADD(at[11], at[16]); MULADD(at[12], at[15]); MULADD(at[13], at[14]);
MiniTLS 0:35aa5be3b78d 902 COMBA_STORE(C->dp[13]);
MiniTLS 0:35aa5be3b78d 903 /* 14 */
MiniTLS 0:35aa5be3b78d 904 COMBA_FORWARD;
MiniTLS 0:35aa5be3b78d 905 MULADD(at[1], at[27]); MULADD(at[2], at[26]); MULADD(at[3], at[25]); MULADD(at[4], at[24]); MULADD(at[5], at[23]); MULADD(at[6], at[22]); MULADD(at[7], at[21]); MULADD(at[8], at[20]); MULADD(at[9], at[19]); MULADD(at[10], at[18]); MULADD(at[11], at[17]); MULADD(at[12], at[16]); MULADD(at[13], at[15]);
MiniTLS 0:35aa5be3b78d 906 COMBA_STORE(C->dp[14]);
MiniTLS 0:35aa5be3b78d 907 /* 15 */
MiniTLS 0:35aa5be3b78d 908 COMBA_FORWARD;
MiniTLS 0:35aa5be3b78d 909 MULADD(at[2], at[27]); MULADD(at[3], at[26]); MULADD(at[4], at[25]); MULADD(at[5], at[24]); MULADD(at[6], at[23]); MULADD(at[7], at[22]); MULADD(at[8], at[21]); MULADD(at[9], at[20]); MULADD(at[10], at[19]); MULADD(at[11], at[18]); MULADD(at[12], at[17]); MULADD(at[13], at[16]);
MiniTLS 0:35aa5be3b78d 910 COMBA_STORE(C->dp[15]);
MiniTLS 0:35aa5be3b78d 911 /* 16 */
MiniTLS 0:35aa5be3b78d 912 COMBA_FORWARD;
MiniTLS 0:35aa5be3b78d 913 MULADD(at[3], at[27]); MULADD(at[4], at[26]); MULADD(at[5], at[25]); MULADD(at[6], at[24]); MULADD(at[7], at[23]); MULADD(at[8], at[22]); MULADD(at[9], at[21]); MULADD(at[10], at[20]); MULADD(at[11], at[19]); MULADD(at[12], at[18]); MULADD(at[13], at[17]);
MiniTLS 0:35aa5be3b78d 914 COMBA_STORE(C->dp[16]);
MiniTLS 0:35aa5be3b78d 915 /* 17 */
MiniTLS 0:35aa5be3b78d 916 COMBA_FORWARD;
MiniTLS 0:35aa5be3b78d 917 MULADD(at[4], at[27]); MULADD(at[5], at[26]); MULADD(at[6], at[25]); MULADD(at[7], at[24]); MULADD(at[8], at[23]); MULADD(at[9], at[22]); MULADD(at[10], at[21]); MULADD(at[11], at[20]); MULADD(at[12], at[19]); MULADD(at[13], at[18]);
MiniTLS 0:35aa5be3b78d 918 COMBA_STORE(C->dp[17]);
MiniTLS 0:35aa5be3b78d 919 /* 18 */
MiniTLS 0:35aa5be3b78d 920 COMBA_FORWARD;
MiniTLS 0:35aa5be3b78d 921 MULADD(at[5], at[27]); MULADD(at[6], at[26]); MULADD(at[7], at[25]); MULADD(at[8], at[24]); MULADD(at[9], at[23]); MULADD(at[10], at[22]); MULADD(at[11], at[21]); MULADD(at[12], at[20]); MULADD(at[13], at[19]);
MiniTLS 0:35aa5be3b78d 922 COMBA_STORE(C->dp[18]);
MiniTLS 0:35aa5be3b78d 923 /* 19 */
MiniTLS 0:35aa5be3b78d 924 COMBA_FORWARD;
MiniTLS 0:35aa5be3b78d 925 MULADD(at[6], at[27]); MULADD(at[7], at[26]); MULADD(at[8], at[25]); MULADD(at[9], at[24]); MULADD(at[10], at[23]); MULADD(at[11], at[22]); MULADD(at[12], at[21]); MULADD(at[13], at[20]);
MiniTLS 0:35aa5be3b78d 926 COMBA_STORE(C->dp[19]);
MiniTLS 0:35aa5be3b78d 927 /* 20 */
MiniTLS 0:35aa5be3b78d 928 COMBA_FORWARD;
MiniTLS 0:35aa5be3b78d 929 MULADD(at[7], at[27]); MULADD(at[8], at[26]); MULADD(at[9], at[25]); MULADD(at[10], at[24]); MULADD(at[11], at[23]); MULADD(at[12], at[22]); MULADD(at[13], at[21]);
MiniTLS 0:35aa5be3b78d 930 COMBA_STORE(C->dp[20]);
MiniTLS 0:35aa5be3b78d 931 /* 21 */
MiniTLS 0:35aa5be3b78d 932 COMBA_FORWARD;
MiniTLS 0:35aa5be3b78d 933 MULADD(at[8], at[27]); MULADD(at[9], at[26]); MULADD(at[10], at[25]); MULADD(at[11], at[24]); MULADD(at[12], at[23]); MULADD(at[13], at[22]);
MiniTLS 0:35aa5be3b78d 934 COMBA_STORE(C->dp[21]);
MiniTLS 0:35aa5be3b78d 935 /* 22 */
MiniTLS 0:35aa5be3b78d 936 COMBA_FORWARD;
MiniTLS 0:35aa5be3b78d 937 MULADD(at[9], at[27]); MULADD(at[10], at[26]); MULADD(at[11], at[25]); MULADD(at[12], at[24]); MULADD(at[13], at[23]);
MiniTLS 0:35aa5be3b78d 938 COMBA_STORE(C->dp[22]);
MiniTLS 0:35aa5be3b78d 939 /* 23 */
MiniTLS 0:35aa5be3b78d 940 COMBA_FORWARD;
MiniTLS 0:35aa5be3b78d 941 MULADD(at[10], at[27]); MULADD(at[11], at[26]); MULADD(at[12], at[25]); MULADD(at[13], at[24]);
MiniTLS 0:35aa5be3b78d 942 COMBA_STORE(C->dp[23]);
MiniTLS 0:35aa5be3b78d 943 /* 24 */
MiniTLS 0:35aa5be3b78d 944 COMBA_FORWARD;
MiniTLS 0:35aa5be3b78d 945 MULADD(at[11], at[27]); MULADD(at[12], at[26]); MULADD(at[13], at[25]);
MiniTLS 0:35aa5be3b78d 946 COMBA_STORE(C->dp[24]);
MiniTLS 0:35aa5be3b78d 947 /* 25 */
MiniTLS 0:35aa5be3b78d 948 COMBA_FORWARD;
MiniTLS 0:35aa5be3b78d 949 MULADD(at[12], at[27]); MULADD(at[13], at[26]);
MiniTLS 0:35aa5be3b78d 950 COMBA_STORE(C->dp[25]);
MiniTLS 0:35aa5be3b78d 951 /* 26 */
MiniTLS 0:35aa5be3b78d 952 COMBA_FORWARD;
MiniTLS 0:35aa5be3b78d 953 MULADD(at[13], at[27]);
MiniTLS 0:35aa5be3b78d 954 COMBA_STORE(C->dp[26]);
MiniTLS 0:35aa5be3b78d 955 COMBA_STORE2(C->dp[27]);
MiniTLS 0:35aa5be3b78d 956 C->used = 28;
MiniTLS 0:35aa5be3b78d 957 C->sign = A->sign ^ B->sign;
MiniTLS 0:35aa5be3b78d 958 fp_clamp(C);
MiniTLS 0:35aa5be3b78d 959 COMBA_FINI;
MiniTLS 0:35aa5be3b78d 960 break;
MiniTLS 0:35aa5be3b78d 961
MiniTLS 0:35aa5be3b78d 962 case 15:
MiniTLS 0:35aa5be3b78d 963 memcpy(at, A->dp, 15 * sizeof(fp_digit));
MiniTLS 0:35aa5be3b78d 964 memcpy(at+15, B->dp, 15 * sizeof(fp_digit));
MiniTLS 0:35aa5be3b78d 965 COMBA_START;
MiniTLS 0:35aa5be3b78d 966
MiniTLS 0:35aa5be3b78d 967 COMBA_CLEAR;
MiniTLS 0:35aa5be3b78d 968 /* 0 */
MiniTLS 0:35aa5be3b78d 969 MULADD(at[0], at[15]);
MiniTLS 0:35aa5be3b78d 970 COMBA_STORE(C->dp[0]);
MiniTLS 0:35aa5be3b78d 971 /* 1 */
MiniTLS 0:35aa5be3b78d 972 COMBA_FORWARD;
MiniTLS 0:35aa5be3b78d 973 MULADD(at[0], at[16]); MULADD(at[1], at[15]);
MiniTLS 0:35aa5be3b78d 974 COMBA_STORE(C->dp[1]);
MiniTLS 0:35aa5be3b78d 975 /* 2 */
MiniTLS 0:35aa5be3b78d 976 COMBA_FORWARD;
MiniTLS 0:35aa5be3b78d 977 MULADD(at[0], at[17]); MULADD(at[1], at[16]); MULADD(at[2], at[15]);
MiniTLS 0:35aa5be3b78d 978 COMBA_STORE(C->dp[2]);
MiniTLS 0:35aa5be3b78d 979 /* 3 */
MiniTLS 0:35aa5be3b78d 980 COMBA_FORWARD;
MiniTLS 0:35aa5be3b78d 981 MULADD(at[0], at[18]); MULADD(at[1], at[17]); MULADD(at[2], at[16]); MULADD(at[3], at[15]);
MiniTLS 0:35aa5be3b78d 982 COMBA_STORE(C->dp[3]);
MiniTLS 0:35aa5be3b78d 983 /* 4 */
MiniTLS 0:35aa5be3b78d 984 COMBA_FORWARD;
MiniTLS 0:35aa5be3b78d 985 MULADD(at[0], at[19]); MULADD(at[1], at[18]); MULADD(at[2], at[17]); MULADD(at[3], at[16]); MULADD(at[4], at[15]);
MiniTLS 0:35aa5be3b78d 986 COMBA_STORE(C->dp[4]);
MiniTLS 0:35aa5be3b78d 987 /* 5 */
MiniTLS 0:35aa5be3b78d 988 COMBA_FORWARD;
MiniTLS 0:35aa5be3b78d 989 MULADD(at[0], at[20]); MULADD(at[1], at[19]); MULADD(at[2], at[18]); MULADD(at[3], at[17]); MULADD(at[4], at[16]); MULADD(at[5], at[15]);
MiniTLS 0:35aa5be3b78d 990 COMBA_STORE(C->dp[5]);
MiniTLS 0:35aa5be3b78d 991 /* 6 */
MiniTLS 0:35aa5be3b78d 992 COMBA_FORWARD;
MiniTLS 0:35aa5be3b78d 993 MULADD(at[0], at[21]); MULADD(at[1], at[20]); MULADD(at[2], at[19]); MULADD(at[3], at[18]); MULADD(at[4], at[17]); MULADD(at[5], at[16]); MULADD(at[6], at[15]);
MiniTLS 0:35aa5be3b78d 994 COMBA_STORE(C->dp[6]);
MiniTLS 0:35aa5be3b78d 995 /* 7 */
MiniTLS 0:35aa5be3b78d 996 COMBA_FORWARD;
MiniTLS 0:35aa5be3b78d 997 MULADD(at[0], at[22]); MULADD(at[1], at[21]); MULADD(at[2], at[20]); MULADD(at[3], at[19]); MULADD(at[4], at[18]); MULADD(at[5], at[17]); MULADD(at[6], at[16]); MULADD(at[7], at[15]);
MiniTLS 0:35aa5be3b78d 998 COMBA_STORE(C->dp[7]);
MiniTLS 0:35aa5be3b78d 999 /* 8 */
MiniTLS 0:35aa5be3b78d 1000 COMBA_FORWARD;
MiniTLS 0:35aa5be3b78d 1001 MULADD(at[0], at[23]); MULADD(at[1], at[22]); MULADD(at[2], at[21]); MULADD(at[3], at[20]); MULADD(at[4], at[19]); MULADD(at[5], at[18]); MULADD(at[6], at[17]); MULADD(at[7], at[16]); MULADD(at[8], at[15]);
MiniTLS 0:35aa5be3b78d 1002 COMBA_STORE(C->dp[8]);
MiniTLS 0:35aa5be3b78d 1003 /* 9 */
MiniTLS 0:35aa5be3b78d 1004 COMBA_FORWARD;
MiniTLS 0:35aa5be3b78d 1005 MULADD(at[0], at[24]); MULADD(at[1], at[23]); MULADD(at[2], at[22]); MULADD(at[3], at[21]); MULADD(at[4], at[20]); MULADD(at[5], at[19]); MULADD(at[6], at[18]); MULADD(at[7], at[17]); MULADD(at[8], at[16]); MULADD(at[9], at[15]);
MiniTLS 0:35aa5be3b78d 1006 COMBA_STORE(C->dp[9]);
MiniTLS 0:35aa5be3b78d 1007 /* 10 */
MiniTLS 0:35aa5be3b78d 1008 COMBA_FORWARD;
MiniTLS 0:35aa5be3b78d 1009 MULADD(at[0], at[25]); MULADD(at[1], at[24]); MULADD(at[2], at[23]); MULADD(at[3], at[22]); MULADD(at[4], at[21]); MULADD(at[5], at[20]); MULADD(at[6], at[19]); MULADD(at[7], at[18]); MULADD(at[8], at[17]); MULADD(at[9], at[16]); MULADD(at[10], at[15]);
MiniTLS 0:35aa5be3b78d 1010 COMBA_STORE(C->dp[10]);
MiniTLS 0:35aa5be3b78d 1011 /* 11 */
MiniTLS 0:35aa5be3b78d 1012 COMBA_FORWARD;
MiniTLS 0:35aa5be3b78d 1013 MULADD(at[0], at[26]); MULADD(at[1], at[25]); MULADD(at[2], at[24]); MULADD(at[3], at[23]); MULADD(at[4], at[22]); MULADD(at[5], at[21]); MULADD(at[6], at[20]); MULADD(at[7], at[19]); MULADD(at[8], at[18]); MULADD(at[9], at[17]); MULADD(at[10], at[16]); MULADD(at[11], at[15]);
MiniTLS 0:35aa5be3b78d 1014 COMBA_STORE(C->dp[11]);
MiniTLS 0:35aa5be3b78d 1015 /* 12 */
MiniTLS 0:35aa5be3b78d 1016 COMBA_FORWARD;
MiniTLS 0:35aa5be3b78d 1017 MULADD(at[0], at[27]); MULADD(at[1], at[26]); MULADD(at[2], at[25]); MULADD(at[3], at[24]); MULADD(at[4], at[23]); MULADD(at[5], at[22]); MULADD(at[6], at[21]); MULADD(at[7], at[20]); MULADD(at[8], at[19]); MULADD(at[9], at[18]); MULADD(at[10], at[17]); MULADD(at[11], at[16]); MULADD(at[12], at[15]);
MiniTLS 0:35aa5be3b78d 1018 COMBA_STORE(C->dp[12]);
MiniTLS 0:35aa5be3b78d 1019 /* 13 */
MiniTLS 0:35aa5be3b78d 1020 COMBA_FORWARD;
MiniTLS 0:35aa5be3b78d 1021 MULADD(at[0], at[28]); MULADD(at[1], at[27]); MULADD(at[2], at[26]); MULADD(at[3], at[25]); MULADD(at[4], at[24]); MULADD(at[5], at[23]); MULADD(at[6], at[22]); MULADD(at[7], at[21]); MULADD(at[8], at[20]); MULADD(at[9], at[19]); MULADD(at[10], at[18]); MULADD(at[11], at[17]); MULADD(at[12], at[16]); MULADD(at[13], at[15]);
MiniTLS 0:35aa5be3b78d 1022 COMBA_STORE(C->dp[13]);
MiniTLS 0:35aa5be3b78d 1023 /* 14 */
MiniTLS 0:35aa5be3b78d 1024 COMBA_FORWARD;
MiniTLS 0:35aa5be3b78d 1025 MULADD(at[0], at[29]); MULADD(at[1], at[28]); MULADD(at[2], at[27]); MULADD(at[3], at[26]); MULADD(at[4], at[25]); MULADD(at[5], at[24]); MULADD(at[6], at[23]); MULADD(at[7], at[22]); MULADD(at[8], at[21]); MULADD(at[9], at[20]); MULADD(at[10], at[19]); MULADD(at[11], at[18]); MULADD(at[12], at[17]); MULADD(at[13], at[16]); MULADD(at[14], at[15]);
MiniTLS 0:35aa5be3b78d 1026 COMBA_STORE(C->dp[14]);
MiniTLS 0:35aa5be3b78d 1027 /* 15 */
MiniTLS 0:35aa5be3b78d 1028 COMBA_FORWARD;
MiniTLS 0:35aa5be3b78d 1029 MULADD(at[1], at[29]); MULADD(at[2], at[28]); MULADD(at[3], at[27]); MULADD(at[4], at[26]); MULADD(at[5], at[25]); MULADD(at[6], at[24]); MULADD(at[7], at[23]); MULADD(at[8], at[22]); MULADD(at[9], at[21]); MULADD(at[10], at[20]); MULADD(at[11], at[19]); MULADD(at[12], at[18]); MULADD(at[13], at[17]); MULADD(at[14], at[16]);
MiniTLS 0:35aa5be3b78d 1030 COMBA_STORE(C->dp[15]);
MiniTLS 0:35aa5be3b78d 1031 /* 16 */
MiniTLS 0:35aa5be3b78d 1032 COMBA_FORWARD;
MiniTLS 0:35aa5be3b78d 1033 MULADD(at[2], at[29]); MULADD(at[3], at[28]); MULADD(at[4], at[27]); MULADD(at[5], at[26]); MULADD(at[6], at[25]); MULADD(at[7], at[24]); MULADD(at[8], at[23]); MULADD(at[9], at[22]); MULADD(at[10], at[21]); MULADD(at[11], at[20]); MULADD(at[12], at[19]); MULADD(at[13], at[18]); MULADD(at[14], at[17]);
MiniTLS 0:35aa5be3b78d 1034 COMBA_STORE(C->dp[16]);
MiniTLS 0:35aa5be3b78d 1035 /* 17 */
MiniTLS 0:35aa5be3b78d 1036 COMBA_FORWARD;
MiniTLS 0:35aa5be3b78d 1037 MULADD(at[3], at[29]); MULADD(at[4], at[28]); MULADD(at[5], at[27]); MULADD(at[6], at[26]); MULADD(at[7], at[25]); MULADD(at[8], at[24]); MULADD(at[9], at[23]); MULADD(at[10], at[22]); MULADD(at[11], at[21]); MULADD(at[12], at[20]); MULADD(at[13], at[19]); MULADD(at[14], at[18]);
MiniTLS 0:35aa5be3b78d 1038 COMBA_STORE(C->dp[17]);
MiniTLS 0:35aa5be3b78d 1039 /* 18 */
MiniTLS 0:35aa5be3b78d 1040 COMBA_FORWARD;
MiniTLS 0:35aa5be3b78d 1041 MULADD(at[4], at[29]); MULADD(at[5], at[28]); MULADD(at[6], at[27]); MULADD(at[7], at[26]); MULADD(at[8], at[25]); MULADD(at[9], at[24]); MULADD(at[10], at[23]); MULADD(at[11], at[22]); MULADD(at[12], at[21]); MULADD(at[13], at[20]); MULADD(at[14], at[19]);
MiniTLS 0:35aa5be3b78d 1042 COMBA_STORE(C->dp[18]);
MiniTLS 0:35aa5be3b78d 1043 /* 19 */
MiniTLS 0:35aa5be3b78d 1044 COMBA_FORWARD;
MiniTLS 0:35aa5be3b78d 1045 MULADD(at[5], at[29]); MULADD(at[6], at[28]); MULADD(at[7], at[27]); MULADD(at[8], at[26]); MULADD(at[9], at[25]); MULADD(at[10], at[24]); MULADD(at[11], at[23]); MULADD(at[12], at[22]); MULADD(at[13], at[21]); MULADD(at[14], at[20]);
MiniTLS 0:35aa5be3b78d 1046 COMBA_STORE(C->dp[19]);
MiniTLS 0:35aa5be3b78d 1047 /* 20 */
MiniTLS 0:35aa5be3b78d 1048 COMBA_FORWARD;
MiniTLS 0:35aa5be3b78d 1049 MULADD(at[6], at[29]); MULADD(at[7], at[28]); MULADD(at[8], at[27]); MULADD(at[9], at[26]); MULADD(at[10], at[25]); MULADD(at[11], at[24]); MULADD(at[12], at[23]); MULADD(at[13], at[22]); MULADD(at[14], at[21]);
MiniTLS 0:35aa5be3b78d 1050 COMBA_STORE(C->dp[20]);
MiniTLS 0:35aa5be3b78d 1051 /* 21 */
MiniTLS 0:35aa5be3b78d 1052 COMBA_FORWARD;
MiniTLS 0:35aa5be3b78d 1053 MULADD(at[7], at[29]); MULADD(at[8], at[28]); MULADD(at[9], at[27]); MULADD(at[10], at[26]); MULADD(at[11], at[25]); MULADD(at[12], at[24]); MULADD(at[13], at[23]); MULADD(at[14], at[22]);
MiniTLS 0:35aa5be3b78d 1054 COMBA_STORE(C->dp[21]);
MiniTLS 0:35aa5be3b78d 1055 /* 22 */
MiniTLS 0:35aa5be3b78d 1056 COMBA_FORWARD;
MiniTLS 0:35aa5be3b78d 1057 MULADD(at[8], at[29]); MULADD(at[9], at[28]); MULADD(at[10], at[27]); MULADD(at[11], at[26]); MULADD(at[12], at[25]); MULADD(at[13], at[24]); MULADD(at[14], at[23]);
MiniTLS 0:35aa5be3b78d 1058 COMBA_STORE(C->dp[22]);
MiniTLS 0:35aa5be3b78d 1059 /* 23 */
MiniTLS 0:35aa5be3b78d 1060 COMBA_FORWARD;
MiniTLS 0:35aa5be3b78d 1061 MULADD(at[9], at[29]); MULADD(at[10], at[28]); MULADD(at[11], at[27]); MULADD(at[12], at[26]); MULADD(at[13], at[25]); MULADD(at[14], at[24]);
MiniTLS 0:35aa5be3b78d 1062 COMBA_STORE(C->dp[23]);
MiniTLS 0:35aa5be3b78d 1063 /* 24 */
MiniTLS 0:35aa5be3b78d 1064 COMBA_FORWARD;
MiniTLS 0:35aa5be3b78d 1065 MULADD(at[10], at[29]); MULADD(at[11], at[28]); MULADD(at[12], at[27]); MULADD(at[13], at[26]); MULADD(at[14], at[25]);
MiniTLS 0:35aa5be3b78d 1066 COMBA_STORE(C->dp[24]);
MiniTLS 0:35aa5be3b78d 1067 /* 25 */
MiniTLS 0:35aa5be3b78d 1068 COMBA_FORWARD;
MiniTLS 0:35aa5be3b78d 1069 MULADD(at[11], at[29]); MULADD(at[12], at[28]); MULADD(at[13], at[27]); MULADD(at[14], at[26]);
MiniTLS 0:35aa5be3b78d 1070 COMBA_STORE(C->dp[25]);
MiniTLS 0:35aa5be3b78d 1071 /* 26 */
MiniTLS 0:35aa5be3b78d 1072 COMBA_FORWARD;
MiniTLS 0:35aa5be3b78d 1073 MULADD(at[12], at[29]); MULADD(at[13], at[28]); MULADD(at[14], at[27]);
MiniTLS 0:35aa5be3b78d 1074 COMBA_STORE(C->dp[26]);
MiniTLS 0:35aa5be3b78d 1075 /* 27 */
MiniTLS 0:35aa5be3b78d 1076 COMBA_FORWARD;
MiniTLS 0:35aa5be3b78d 1077 MULADD(at[13], at[29]); MULADD(at[14], at[28]);
MiniTLS 0:35aa5be3b78d 1078 COMBA_STORE(C->dp[27]);
MiniTLS 0:35aa5be3b78d 1079 /* 28 */
MiniTLS 0:35aa5be3b78d 1080 COMBA_FORWARD;
MiniTLS 0:35aa5be3b78d 1081 MULADD(at[14], at[29]);
MiniTLS 0:35aa5be3b78d 1082 COMBA_STORE(C->dp[28]);
MiniTLS 0:35aa5be3b78d 1083 COMBA_STORE2(C->dp[29]);
MiniTLS 0:35aa5be3b78d 1084 C->used = 30;
MiniTLS 0:35aa5be3b78d 1085 C->sign = A->sign ^ B->sign;
MiniTLS 0:35aa5be3b78d 1086 fp_clamp(C);
MiniTLS 0:35aa5be3b78d 1087 COMBA_FINI;
MiniTLS 0:35aa5be3b78d 1088 break;
MiniTLS 0:35aa5be3b78d 1089
MiniTLS 0:35aa5be3b78d 1090 case 16:
MiniTLS 0:35aa5be3b78d 1091 memcpy(at, A->dp, 16 * sizeof(fp_digit));
MiniTLS 0:35aa5be3b78d 1092 memcpy(at+16, B->dp, 16 * sizeof(fp_digit));
MiniTLS 0:35aa5be3b78d 1093 COMBA_START;
MiniTLS 0:35aa5be3b78d 1094
MiniTLS 0:35aa5be3b78d 1095 COMBA_CLEAR;
MiniTLS 0:35aa5be3b78d 1096 /* 0 */
MiniTLS 0:35aa5be3b78d 1097 MULADD(at[0], at[16]);
MiniTLS 0:35aa5be3b78d 1098 COMBA_STORE(C->dp[0]);
MiniTLS 0:35aa5be3b78d 1099 /* 1 */
MiniTLS 0:35aa5be3b78d 1100 COMBA_FORWARD;
MiniTLS 0:35aa5be3b78d 1101 MULADD(at[0], at[17]); MULADD(at[1], at[16]);
MiniTLS 0:35aa5be3b78d 1102 COMBA_STORE(C->dp[1]);
MiniTLS 0:35aa5be3b78d 1103 /* 2 */
MiniTLS 0:35aa5be3b78d 1104 COMBA_FORWARD;
MiniTLS 0:35aa5be3b78d 1105 MULADD(at[0], at[18]); MULADD(at[1], at[17]); MULADD(at[2], at[16]);
MiniTLS 0:35aa5be3b78d 1106 COMBA_STORE(C->dp[2]);
MiniTLS 0:35aa5be3b78d 1107 /* 3 */
MiniTLS 0:35aa5be3b78d 1108 COMBA_FORWARD;
MiniTLS 0:35aa5be3b78d 1109 MULADD(at[0], at[19]); MULADD(at[1], at[18]); MULADD(at[2], at[17]); MULADD(at[3], at[16]);
MiniTLS 0:35aa5be3b78d 1110 COMBA_STORE(C->dp[3]);
MiniTLS 0:35aa5be3b78d 1111 /* 4 */
MiniTLS 0:35aa5be3b78d 1112 COMBA_FORWARD;
MiniTLS 0:35aa5be3b78d 1113 MULADD(at[0], at[20]); MULADD(at[1], at[19]); MULADD(at[2], at[18]); MULADD(at[3], at[17]); MULADD(at[4], at[16]);
MiniTLS 0:35aa5be3b78d 1114 COMBA_STORE(C->dp[4]);
MiniTLS 0:35aa5be3b78d 1115 /* 5 */
MiniTLS 0:35aa5be3b78d 1116 COMBA_FORWARD;
MiniTLS 0:35aa5be3b78d 1117 MULADD(at[0], at[21]); MULADD(at[1], at[20]); MULADD(at[2], at[19]); MULADD(at[3], at[18]); MULADD(at[4], at[17]); MULADD(at[5], at[16]);
MiniTLS 0:35aa5be3b78d 1118 COMBA_STORE(C->dp[5]);
MiniTLS 0:35aa5be3b78d 1119 /* 6 */
MiniTLS 0:35aa5be3b78d 1120 COMBA_FORWARD;
MiniTLS 0:35aa5be3b78d 1121 MULADD(at[0], at[22]); MULADD(at[1], at[21]); MULADD(at[2], at[20]); MULADD(at[3], at[19]); MULADD(at[4], at[18]); MULADD(at[5], at[17]); MULADD(at[6], at[16]);
MiniTLS 0:35aa5be3b78d 1122 COMBA_STORE(C->dp[6]);
MiniTLS 0:35aa5be3b78d 1123 /* 7 */
MiniTLS 0:35aa5be3b78d 1124 COMBA_FORWARD;
MiniTLS 0:35aa5be3b78d 1125 MULADD(at[0], at[23]); MULADD(at[1], at[22]); MULADD(at[2], at[21]); MULADD(at[3], at[20]); MULADD(at[4], at[19]); MULADD(at[5], at[18]); MULADD(at[6], at[17]); MULADD(at[7], at[16]);
MiniTLS 0:35aa5be3b78d 1126 COMBA_STORE(C->dp[7]);
MiniTLS 0:35aa5be3b78d 1127 /* 8 */
MiniTLS 0:35aa5be3b78d 1128 COMBA_FORWARD;
MiniTLS 0:35aa5be3b78d 1129 MULADD(at[0], at[24]); MULADD(at[1], at[23]); MULADD(at[2], at[22]); MULADD(at[3], at[21]); MULADD(at[4], at[20]); MULADD(at[5], at[19]); MULADD(at[6], at[18]); MULADD(at[7], at[17]); MULADD(at[8], at[16]);
MiniTLS 0:35aa5be3b78d 1130 COMBA_STORE(C->dp[8]);
MiniTLS 0:35aa5be3b78d 1131 /* 9 */
MiniTLS 0:35aa5be3b78d 1132 COMBA_FORWARD;
MiniTLS 0:35aa5be3b78d 1133 MULADD(at[0], at[25]); MULADD(at[1], at[24]); MULADD(at[2], at[23]); MULADD(at[3], at[22]); MULADD(at[4], at[21]); MULADD(at[5], at[20]); MULADD(at[6], at[19]); MULADD(at[7], at[18]); MULADD(at[8], at[17]); MULADD(at[9], at[16]);
MiniTLS 0:35aa5be3b78d 1134 COMBA_STORE(C->dp[9]);
MiniTLS 0:35aa5be3b78d 1135 /* 10 */
MiniTLS 0:35aa5be3b78d 1136 COMBA_FORWARD;
MiniTLS 0:35aa5be3b78d 1137 MULADD(at[0], at[26]); MULADD(at[1], at[25]); MULADD(at[2], at[24]); MULADD(at[3], at[23]); MULADD(at[4], at[22]); MULADD(at[5], at[21]); MULADD(at[6], at[20]); MULADD(at[7], at[19]); MULADD(at[8], at[18]); MULADD(at[9], at[17]); MULADD(at[10], at[16]);
MiniTLS 0:35aa5be3b78d 1138 COMBA_STORE(C->dp[10]);
MiniTLS 0:35aa5be3b78d 1139 /* 11 */
MiniTLS 0:35aa5be3b78d 1140 COMBA_FORWARD;
MiniTLS 0:35aa5be3b78d 1141 MULADD(at[0], at[27]); MULADD(at[1], at[26]); MULADD(at[2], at[25]); MULADD(at[3], at[24]); MULADD(at[4], at[23]); MULADD(at[5], at[22]); MULADD(at[6], at[21]); MULADD(at[7], at[20]); MULADD(at[8], at[19]); MULADD(at[9], at[18]); MULADD(at[10], at[17]); MULADD(at[11], at[16]);
MiniTLS 0:35aa5be3b78d 1142 COMBA_STORE(C->dp[11]);
MiniTLS 0:35aa5be3b78d 1143 /* 12 */
MiniTLS 0:35aa5be3b78d 1144 COMBA_FORWARD;
MiniTLS 0:35aa5be3b78d 1145 MULADD(at[0], at[28]); MULADD(at[1], at[27]); MULADD(at[2], at[26]); MULADD(at[3], at[25]); MULADD(at[4], at[24]); MULADD(at[5], at[23]); MULADD(at[6], at[22]); MULADD(at[7], at[21]); MULADD(at[8], at[20]); MULADD(at[9], at[19]); MULADD(at[10], at[18]); MULADD(at[11], at[17]); MULADD(at[12], at[16]);
MiniTLS 0:35aa5be3b78d 1146 COMBA_STORE(C->dp[12]);
MiniTLS 0:35aa5be3b78d 1147 /* 13 */
MiniTLS 0:35aa5be3b78d 1148 COMBA_FORWARD;
MiniTLS 0:35aa5be3b78d 1149 MULADD(at[0], at[29]); MULADD(at[1], at[28]); MULADD(at[2], at[27]); MULADD(at[3], at[26]); MULADD(at[4], at[25]); MULADD(at[5], at[24]); MULADD(at[6], at[23]); MULADD(at[7], at[22]); MULADD(at[8], at[21]); MULADD(at[9], at[20]); MULADD(at[10], at[19]); MULADD(at[11], at[18]); MULADD(at[12], at[17]); MULADD(at[13], at[16]);
MiniTLS 0:35aa5be3b78d 1150 COMBA_STORE(C->dp[13]);
MiniTLS 0:35aa5be3b78d 1151 /* 14 */
MiniTLS 0:35aa5be3b78d 1152 COMBA_FORWARD;
MiniTLS 0:35aa5be3b78d 1153 MULADD(at[0], at[30]); MULADD(at[1], at[29]); MULADD(at[2], at[28]); MULADD(at[3], at[27]); MULADD(at[4], at[26]); MULADD(at[5], at[25]); MULADD(at[6], at[24]); MULADD(at[7], at[23]); MULADD(at[8], at[22]); MULADD(at[9], at[21]); MULADD(at[10], at[20]); MULADD(at[11], at[19]); MULADD(at[12], at[18]); MULADD(at[13], at[17]); MULADD(at[14], at[16]);
MiniTLS 0:35aa5be3b78d 1154 COMBA_STORE(C->dp[14]);
MiniTLS 0:35aa5be3b78d 1155 /* 15 */
MiniTLS 0:35aa5be3b78d 1156 COMBA_FORWARD;
MiniTLS 0:35aa5be3b78d 1157 MULADD(at[0], at[31]); MULADD(at[1], at[30]); MULADD(at[2], at[29]); MULADD(at[3], at[28]); MULADD(at[4], at[27]); MULADD(at[5], at[26]); MULADD(at[6], at[25]); MULADD(at[7], at[24]); MULADD(at[8], at[23]); MULADD(at[9], at[22]); MULADD(at[10], at[21]); MULADD(at[11], at[20]); MULADD(at[12], at[19]); MULADD(at[13], at[18]); MULADD(at[14], at[17]); MULADD(at[15], at[16]);
MiniTLS 0:35aa5be3b78d 1158 COMBA_STORE(C->dp[15]);
MiniTLS 0:35aa5be3b78d 1159 /* 16 */
MiniTLS 0:35aa5be3b78d 1160 COMBA_FORWARD;
MiniTLS 0:35aa5be3b78d 1161 MULADD(at[1], at[31]); MULADD(at[2], at[30]); MULADD(at[3], at[29]); MULADD(at[4], at[28]); MULADD(at[5], at[27]); MULADD(at[6], at[26]); MULADD(at[7], at[25]); MULADD(at[8], at[24]); MULADD(at[9], at[23]); MULADD(at[10], at[22]); MULADD(at[11], at[21]); MULADD(at[12], at[20]); MULADD(at[13], at[19]); MULADD(at[14], at[18]); MULADD(at[15], at[17]);
MiniTLS 0:35aa5be3b78d 1162 COMBA_STORE(C->dp[16]);
MiniTLS 0:35aa5be3b78d 1163 /* 17 */
MiniTLS 0:35aa5be3b78d 1164 COMBA_FORWARD;
MiniTLS 0:35aa5be3b78d 1165 MULADD(at[2], at[31]); MULADD(at[3], at[30]); MULADD(at[4], at[29]); MULADD(at[5], at[28]); MULADD(at[6], at[27]); MULADD(at[7], at[26]); MULADD(at[8], at[25]); MULADD(at[9], at[24]); MULADD(at[10], at[23]); MULADD(at[11], at[22]); MULADD(at[12], at[21]); MULADD(at[13], at[20]); MULADD(at[14], at[19]); MULADD(at[15], at[18]);
MiniTLS 0:35aa5be3b78d 1166 COMBA_STORE(C->dp[17]);
MiniTLS 0:35aa5be3b78d 1167 /* 18 */
MiniTLS 0:35aa5be3b78d 1168 COMBA_FORWARD;
MiniTLS 0:35aa5be3b78d 1169 MULADD(at[3], at[31]); MULADD(at[4], at[30]); MULADD(at[5], at[29]); MULADD(at[6], at[28]); MULADD(at[7], at[27]); MULADD(at[8], at[26]); MULADD(at[9], at[25]); MULADD(at[10], at[24]); MULADD(at[11], at[23]); MULADD(at[12], at[22]); MULADD(at[13], at[21]); MULADD(at[14], at[20]); MULADD(at[15], at[19]);
MiniTLS 0:35aa5be3b78d 1170 COMBA_STORE(C->dp[18]);
MiniTLS 0:35aa5be3b78d 1171 /* 19 */
MiniTLS 0:35aa5be3b78d 1172 COMBA_FORWARD;
MiniTLS 0:35aa5be3b78d 1173 MULADD(at[4], at[31]); MULADD(at[5], at[30]); MULADD(at[6], at[29]); MULADD(at[7], at[28]); MULADD(at[8], at[27]); MULADD(at[9], at[26]); MULADD(at[10], at[25]); MULADD(at[11], at[24]); MULADD(at[12], at[23]); MULADD(at[13], at[22]); MULADD(at[14], at[21]); MULADD(at[15], at[20]);
MiniTLS 0:35aa5be3b78d 1174 COMBA_STORE(C->dp[19]);
MiniTLS 0:35aa5be3b78d 1175 /* 20 */
MiniTLS 0:35aa5be3b78d 1176 COMBA_FORWARD;
MiniTLS 0:35aa5be3b78d 1177 MULADD(at[5], at[31]); MULADD(at[6], at[30]); MULADD(at[7], at[29]); MULADD(at[8], at[28]); MULADD(at[9], at[27]); MULADD(at[10], at[26]); MULADD(at[11], at[25]); MULADD(at[12], at[24]); MULADD(at[13], at[23]); MULADD(at[14], at[22]); MULADD(at[15], at[21]);
MiniTLS 0:35aa5be3b78d 1178 COMBA_STORE(C->dp[20]);
MiniTLS 0:35aa5be3b78d 1179 /* 21 */
MiniTLS 0:35aa5be3b78d 1180 COMBA_FORWARD;
MiniTLS 0:35aa5be3b78d 1181 MULADD(at[6], at[31]); MULADD(at[7], at[30]); MULADD(at[8], at[29]); MULADD(at[9], at[28]); MULADD(at[10], at[27]); MULADD(at[11], at[26]); MULADD(at[12], at[25]); MULADD(at[13], at[24]); MULADD(at[14], at[23]); MULADD(at[15], at[22]);
MiniTLS 0:35aa5be3b78d 1182 COMBA_STORE(C->dp[21]);
MiniTLS 0:35aa5be3b78d 1183 /* 22 */
MiniTLS 0:35aa5be3b78d 1184 COMBA_FORWARD;
MiniTLS 0:35aa5be3b78d 1185 MULADD(at[7], at[31]); MULADD(at[8], at[30]); MULADD(at[9], at[29]); MULADD(at[10], at[28]); MULADD(at[11], at[27]); MULADD(at[12], at[26]); MULADD(at[13], at[25]); MULADD(at[14], at[24]); MULADD(at[15], at[23]);
MiniTLS 0:35aa5be3b78d 1186 COMBA_STORE(C->dp[22]);
MiniTLS 0:35aa5be3b78d 1187 /* 23 */
MiniTLS 0:35aa5be3b78d 1188 COMBA_FORWARD;
MiniTLS 0:35aa5be3b78d 1189 MULADD(at[8], at[31]); MULADD(at[9], at[30]); MULADD(at[10], at[29]); MULADD(at[11], at[28]); MULADD(at[12], at[27]); MULADD(at[13], at[26]); MULADD(at[14], at[25]); MULADD(at[15], at[24]);
MiniTLS 0:35aa5be3b78d 1190 COMBA_STORE(C->dp[23]);
MiniTLS 0:35aa5be3b78d 1191 /* 24 */
MiniTLS 0:35aa5be3b78d 1192 COMBA_FORWARD;
MiniTLS 0:35aa5be3b78d 1193 MULADD(at[9], at[31]); MULADD(at[10], at[30]); MULADD(at[11], at[29]); MULADD(at[12], at[28]); MULADD(at[13], at[27]); MULADD(at[14], at[26]); MULADD(at[15], at[25]);
MiniTLS 0:35aa5be3b78d 1194 COMBA_STORE(C->dp[24]);
MiniTLS 0:35aa5be3b78d 1195 /* 25 */
MiniTLS 0:35aa5be3b78d 1196 COMBA_FORWARD;
MiniTLS 0:35aa5be3b78d 1197 MULADD(at[10], at[31]); MULADD(at[11], at[30]); MULADD(at[12], at[29]); MULADD(at[13], at[28]); MULADD(at[14], at[27]); MULADD(at[15], at[26]);
MiniTLS 0:35aa5be3b78d 1198 COMBA_STORE(C->dp[25]);
MiniTLS 0:35aa5be3b78d 1199 /* 26 */
MiniTLS 0:35aa5be3b78d 1200 COMBA_FORWARD;
MiniTLS 0:35aa5be3b78d 1201 MULADD(at[11], at[31]); MULADD(at[12], at[30]); MULADD(at[13], at[29]); MULADD(at[14], at[28]); MULADD(at[15], at[27]);
MiniTLS 0:35aa5be3b78d 1202 COMBA_STORE(C->dp[26]);
MiniTLS 0:35aa5be3b78d 1203 /* 27 */
MiniTLS 0:35aa5be3b78d 1204 COMBA_FORWARD;
MiniTLS 0:35aa5be3b78d 1205 MULADD(at[12], at[31]); MULADD(at[13], at[30]); MULADD(at[14], at[29]); MULADD(at[15], at[28]);
MiniTLS 0:35aa5be3b78d 1206 COMBA_STORE(C->dp[27]);
MiniTLS 0:35aa5be3b78d 1207 /* 28 */
MiniTLS 0:35aa5be3b78d 1208 COMBA_FORWARD;
MiniTLS 0:35aa5be3b78d 1209 MULADD(at[13], at[31]); MULADD(at[14], at[30]); MULADD(at[15], at[29]);
MiniTLS 0:35aa5be3b78d 1210 COMBA_STORE(C->dp[28]);
MiniTLS 0:35aa5be3b78d 1211 /* 29 */
MiniTLS 0:35aa5be3b78d 1212 COMBA_FORWARD;
MiniTLS 0:35aa5be3b78d 1213 MULADD(at[14], at[31]); MULADD(at[15], at[30]);
MiniTLS 0:35aa5be3b78d 1214 COMBA_STORE(C->dp[29]);
MiniTLS 0:35aa5be3b78d 1215 /* 30 */
MiniTLS 0:35aa5be3b78d 1216 COMBA_FORWARD;
MiniTLS 0:35aa5be3b78d 1217 MULADD(at[15], at[31]);
MiniTLS 0:35aa5be3b78d 1218 COMBA_STORE(C->dp[30]);
MiniTLS 0:35aa5be3b78d 1219 COMBA_STORE2(C->dp[31]);
MiniTLS 0:35aa5be3b78d 1220 C->used = 32;
MiniTLS 0:35aa5be3b78d 1221 C->sign = A->sign ^ B->sign;
MiniTLS 0:35aa5be3b78d 1222 fp_clamp(C);
MiniTLS 0:35aa5be3b78d 1223 COMBA_FINI;
MiniTLS 0:35aa5be3b78d 1224 break;
MiniTLS 0:35aa5be3b78d 1225 }
MiniTLS 0:35aa5be3b78d 1226 }
MiniTLS 0:35aa5be3b78d 1227
MiniTLS 0:35aa5be3b78d 1228 #endif