ARM Shanghai IoT Team (Internal) / newMiniTLS-GPL

Fork of MiniTLS-GPL by Donatien Garnier

Committer:
MiniTLS
Date:
Tue Jun 10 14:23:09 2014 +0000
Revision:
4:cbaf466d717d
Parent:
0:35aa5be3b78d
Fixes for mbed

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 #ifdef TFM_MUL32
MiniTLS 0:35aa5be3b78d 5 void fp_mul_comba32(fp_int *A, fp_int *B, fp_int *C)
MiniTLS 0:35aa5be3b78d 6 {
MiniTLS 0:35aa5be3b78d 7 fp_digit c0, c1, c2, at[64];
MiniTLS 0:35aa5be3b78d 8 int out_size;
MiniTLS 0:35aa5be3b78d 9
MiniTLS 0:35aa5be3b78d 10 out_size = A->used + B->used;
MiniTLS 0:35aa5be3b78d 11 memcpy(at, A->dp, 32 * sizeof(fp_digit));
MiniTLS 0:35aa5be3b78d 12 memcpy(at+32, B->dp, 32 * 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[32]);
MiniTLS 0:35aa5be3b78d 18 COMBA_STORE(C->dp[0]);
MiniTLS 0:35aa5be3b78d 19 /* 1 */
MiniTLS 0:35aa5be3b78d 20 COMBA_FORWARD;
MiniTLS 0:35aa5be3b78d 21 MULADD(at[0], at[33]); MULADD(at[1], at[32]);
MiniTLS 0:35aa5be3b78d 22 COMBA_STORE(C->dp[1]);
MiniTLS 0:35aa5be3b78d 23 /* 2 */
MiniTLS 0:35aa5be3b78d 24 COMBA_FORWARD;
MiniTLS 0:35aa5be3b78d 25 MULADD(at[0], at[34]); MULADD(at[1], at[33]); MULADD(at[2], at[32]);
MiniTLS 0:35aa5be3b78d 26 COMBA_STORE(C->dp[2]);
MiniTLS 0:35aa5be3b78d 27 /* 3 */
MiniTLS 0:35aa5be3b78d 28 COMBA_FORWARD;
MiniTLS 0:35aa5be3b78d 29 MULADD(at[0], at[35]); MULADD(at[1], at[34]); MULADD(at[2], at[33]); MULADD(at[3], at[32]);
MiniTLS 0:35aa5be3b78d 30 COMBA_STORE(C->dp[3]);
MiniTLS 0:35aa5be3b78d 31 /* 4 */
MiniTLS 0:35aa5be3b78d 32 COMBA_FORWARD;
MiniTLS 0:35aa5be3b78d 33 MULADD(at[0], at[36]); MULADD(at[1], at[35]); MULADD(at[2], at[34]); MULADD(at[3], at[33]); MULADD(at[4], at[32]);
MiniTLS 0:35aa5be3b78d 34 COMBA_STORE(C->dp[4]);
MiniTLS 0:35aa5be3b78d 35 /* 5 */
MiniTLS 0:35aa5be3b78d 36 COMBA_FORWARD;
MiniTLS 0:35aa5be3b78d 37 MULADD(at[0], at[37]); MULADD(at[1], at[36]); MULADD(at[2], at[35]); MULADD(at[3], at[34]); MULADD(at[4], at[33]); MULADD(at[5], at[32]);
MiniTLS 0:35aa5be3b78d 38 COMBA_STORE(C->dp[5]);
MiniTLS 0:35aa5be3b78d 39 /* 6 */
MiniTLS 0:35aa5be3b78d 40 COMBA_FORWARD;
MiniTLS 0:35aa5be3b78d 41 MULADD(at[0], at[38]); MULADD(at[1], at[37]); MULADD(at[2], at[36]); MULADD(at[3], at[35]); MULADD(at[4], at[34]); MULADD(at[5], at[33]); MULADD(at[6], at[32]);
MiniTLS 0:35aa5be3b78d 42 COMBA_STORE(C->dp[6]);
MiniTLS 0:35aa5be3b78d 43 /* 7 */
MiniTLS 0:35aa5be3b78d 44 COMBA_FORWARD;
MiniTLS 0:35aa5be3b78d 45 MULADD(at[0], at[39]); MULADD(at[1], at[38]); MULADD(at[2], at[37]); MULADD(at[3], at[36]); MULADD(at[4], at[35]); MULADD(at[5], at[34]); MULADD(at[6], at[33]); MULADD(at[7], at[32]);
MiniTLS 0:35aa5be3b78d 46 COMBA_STORE(C->dp[7]);
MiniTLS 0:35aa5be3b78d 47 /* 8 */
MiniTLS 0:35aa5be3b78d 48 COMBA_FORWARD;
MiniTLS 0:35aa5be3b78d 49 MULADD(at[0], at[40]); MULADD(at[1], at[39]); MULADD(at[2], at[38]); MULADD(at[3], at[37]); MULADD(at[4], at[36]); MULADD(at[5], at[35]); MULADD(at[6], at[34]); MULADD(at[7], at[33]); MULADD(at[8], at[32]);
MiniTLS 0:35aa5be3b78d 50 COMBA_STORE(C->dp[8]);
MiniTLS 0:35aa5be3b78d 51 /* 9 */
MiniTLS 0:35aa5be3b78d 52 COMBA_FORWARD;
MiniTLS 0:35aa5be3b78d 53 MULADD(at[0], at[41]); MULADD(at[1], at[40]); MULADD(at[2], at[39]); MULADD(at[3], at[38]); MULADD(at[4], at[37]); MULADD(at[5], at[36]); MULADD(at[6], at[35]); MULADD(at[7], at[34]); MULADD(at[8], at[33]); MULADD(at[9], at[32]);
MiniTLS 0:35aa5be3b78d 54 COMBA_STORE(C->dp[9]);
MiniTLS 0:35aa5be3b78d 55 /* 10 */
MiniTLS 0:35aa5be3b78d 56 COMBA_FORWARD;
MiniTLS 0:35aa5be3b78d 57 MULADD(at[0], at[42]); MULADD(at[1], at[41]); MULADD(at[2], at[40]); MULADD(at[3], at[39]); MULADD(at[4], at[38]); MULADD(at[5], at[37]); MULADD(at[6], at[36]); MULADD(at[7], at[35]); MULADD(at[8], at[34]); MULADD(at[9], at[33]); MULADD(at[10], at[32]);
MiniTLS 0:35aa5be3b78d 58 COMBA_STORE(C->dp[10]);
MiniTLS 0:35aa5be3b78d 59 /* 11 */
MiniTLS 0:35aa5be3b78d 60 COMBA_FORWARD;
MiniTLS 0:35aa5be3b78d 61 MULADD(at[0], at[43]); MULADD(at[1], at[42]); MULADD(at[2], at[41]); MULADD(at[3], at[40]); MULADD(at[4], at[39]); MULADD(at[5], at[38]); MULADD(at[6], at[37]); MULADD(at[7], at[36]); MULADD(at[8], at[35]); MULADD(at[9], at[34]); MULADD(at[10], at[33]); MULADD(at[11], at[32]);
MiniTLS 0:35aa5be3b78d 62 COMBA_STORE(C->dp[11]);
MiniTLS 0:35aa5be3b78d 63 /* 12 */
MiniTLS 0:35aa5be3b78d 64 COMBA_FORWARD;
MiniTLS 0:35aa5be3b78d 65 MULADD(at[0], at[44]); MULADD(at[1], at[43]); MULADD(at[2], at[42]); MULADD(at[3], at[41]); MULADD(at[4], at[40]); MULADD(at[5], at[39]); MULADD(at[6], at[38]); MULADD(at[7], at[37]); MULADD(at[8], at[36]); MULADD(at[9], at[35]); MULADD(at[10], at[34]); MULADD(at[11], at[33]); MULADD(at[12], at[32]);
MiniTLS 0:35aa5be3b78d 66 COMBA_STORE(C->dp[12]);
MiniTLS 0:35aa5be3b78d 67 /* 13 */
MiniTLS 0:35aa5be3b78d 68 COMBA_FORWARD;
MiniTLS 0:35aa5be3b78d 69 MULADD(at[0], at[45]); MULADD(at[1], at[44]); MULADD(at[2], at[43]); MULADD(at[3], at[42]); MULADD(at[4], at[41]); MULADD(at[5], at[40]); MULADD(at[6], at[39]); MULADD(at[7], at[38]); MULADD(at[8], at[37]); MULADD(at[9], at[36]); MULADD(at[10], at[35]); MULADD(at[11], at[34]); MULADD(at[12], at[33]); MULADD(at[13], at[32]);
MiniTLS 0:35aa5be3b78d 70 COMBA_STORE(C->dp[13]);
MiniTLS 0:35aa5be3b78d 71 /* 14 */
MiniTLS 0:35aa5be3b78d 72 COMBA_FORWARD;
MiniTLS 0:35aa5be3b78d 73 MULADD(at[0], at[46]); MULADD(at[1], at[45]); MULADD(at[2], at[44]); MULADD(at[3], at[43]); MULADD(at[4], at[42]); MULADD(at[5], at[41]); MULADD(at[6], at[40]); MULADD(at[7], at[39]); MULADD(at[8], at[38]); MULADD(at[9], at[37]); MULADD(at[10], at[36]); MULADD(at[11], at[35]); MULADD(at[12], at[34]); MULADD(at[13], at[33]); MULADD(at[14], at[32]);
MiniTLS 0:35aa5be3b78d 74 COMBA_STORE(C->dp[14]);
MiniTLS 0:35aa5be3b78d 75 /* 15 */
MiniTLS 0:35aa5be3b78d 76 COMBA_FORWARD;
MiniTLS 0:35aa5be3b78d 77 MULADD(at[0], at[47]); MULADD(at[1], at[46]); MULADD(at[2], at[45]); MULADD(at[3], at[44]); MULADD(at[4], at[43]); MULADD(at[5], at[42]); MULADD(at[6], at[41]); MULADD(at[7], at[40]); MULADD(at[8], at[39]); MULADD(at[9], at[38]); MULADD(at[10], at[37]); MULADD(at[11], at[36]); MULADD(at[12], at[35]); MULADD(at[13], at[34]); MULADD(at[14], at[33]); MULADD(at[15], at[32]);
MiniTLS 0:35aa5be3b78d 78 COMBA_STORE(C->dp[15]);
MiniTLS 0:35aa5be3b78d 79 /* 16 */
MiniTLS 0:35aa5be3b78d 80 COMBA_FORWARD;
MiniTLS 0:35aa5be3b78d 81 MULADD(at[0], at[48]); MULADD(at[1], at[47]); MULADD(at[2], at[46]); MULADD(at[3], at[45]); MULADD(at[4], at[44]); MULADD(at[5], at[43]); MULADD(at[6], at[42]); MULADD(at[7], at[41]); MULADD(at[8], at[40]); MULADD(at[9], at[39]); MULADD(at[10], at[38]); MULADD(at[11], at[37]); MULADD(at[12], at[36]); MULADD(at[13], at[35]); MULADD(at[14], at[34]); MULADD(at[15], at[33]); MULADD(at[16], at[32]);
MiniTLS 0:35aa5be3b78d 82 COMBA_STORE(C->dp[16]);
MiniTLS 0:35aa5be3b78d 83 /* 17 */
MiniTLS 0:35aa5be3b78d 84 COMBA_FORWARD;
MiniTLS 0:35aa5be3b78d 85 MULADD(at[0], at[49]); MULADD(at[1], at[48]); MULADD(at[2], at[47]); MULADD(at[3], at[46]); MULADD(at[4], at[45]); MULADD(at[5], at[44]); MULADD(at[6], at[43]); MULADD(at[7], at[42]); MULADD(at[8], at[41]); MULADD(at[9], at[40]); MULADD(at[10], at[39]); MULADD(at[11], at[38]); MULADD(at[12], at[37]); MULADD(at[13], at[36]); MULADD(at[14], at[35]); MULADD(at[15], at[34]); MULADD(at[16], at[33]); MULADD(at[17], at[32]);
MiniTLS 0:35aa5be3b78d 86 COMBA_STORE(C->dp[17]);
MiniTLS 0:35aa5be3b78d 87 /* 18 */
MiniTLS 0:35aa5be3b78d 88 COMBA_FORWARD;
MiniTLS 0:35aa5be3b78d 89 MULADD(at[0], at[50]); MULADD(at[1], at[49]); MULADD(at[2], at[48]); MULADD(at[3], at[47]); MULADD(at[4], at[46]); MULADD(at[5], at[45]); MULADD(at[6], at[44]); MULADD(at[7], at[43]); MULADD(at[8], at[42]); MULADD(at[9], at[41]); MULADD(at[10], at[40]); MULADD(at[11], at[39]); MULADD(at[12], at[38]); MULADD(at[13], at[37]); MULADD(at[14], at[36]); MULADD(at[15], at[35]); MULADD(at[16], at[34]); MULADD(at[17], at[33]); MULADD(at[18], at[32]);
MiniTLS 0:35aa5be3b78d 90 COMBA_STORE(C->dp[18]);
MiniTLS 0:35aa5be3b78d 91 /* 19 */
MiniTLS 0:35aa5be3b78d 92 COMBA_FORWARD;
MiniTLS 0:35aa5be3b78d 93 MULADD(at[0], at[51]); MULADD(at[1], at[50]); MULADD(at[2], at[49]); MULADD(at[3], at[48]); MULADD(at[4], at[47]); MULADD(at[5], at[46]); MULADD(at[6], at[45]); MULADD(at[7], at[44]); MULADD(at[8], at[43]); MULADD(at[9], at[42]); MULADD(at[10], at[41]); MULADD(at[11], at[40]); MULADD(at[12], at[39]); MULADD(at[13], at[38]); MULADD(at[14], at[37]); MULADD(at[15], at[36]); MULADD(at[16], at[35]); MULADD(at[17], at[34]); MULADD(at[18], at[33]); MULADD(at[19], at[32]);
MiniTLS 0:35aa5be3b78d 94 COMBA_STORE(C->dp[19]);
MiniTLS 0:35aa5be3b78d 95 /* 20 */
MiniTLS 0:35aa5be3b78d 96 COMBA_FORWARD;
MiniTLS 0:35aa5be3b78d 97 MULADD(at[0], at[52]); MULADD(at[1], at[51]); MULADD(at[2], at[50]); MULADD(at[3], at[49]); MULADD(at[4], at[48]); MULADD(at[5], at[47]); MULADD(at[6], at[46]); MULADD(at[7], at[45]); MULADD(at[8], at[44]); MULADD(at[9], at[43]); MULADD(at[10], at[42]); MULADD(at[11], at[41]); MULADD(at[12], at[40]); MULADD(at[13], at[39]); MULADD(at[14], at[38]); MULADD(at[15], at[37]); MULADD(at[16], at[36]); MULADD(at[17], at[35]); MULADD(at[18], at[34]); MULADD(at[19], at[33]); MULADD(at[20], at[32]);
MiniTLS 0:35aa5be3b78d 98 COMBA_STORE(C->dp[20]);
MiniTLS 0:35aa5be3b78d 99 /* 21 */
MiniTLS 0:35aa5be3b78d 100 COMBA_FORWARD;
MiniTLS 0:35aa5be3b78d 101 MULADD(at[0], at[53]); MULADD(at[1], at[52]); MULADD(at[2], at[51]); MULADD(at[3], at[50]); MULADD(at[4], at[49]); MULADD(at[5], at[48]); MULADD(at[6], at[47]); MULADD(at[7], at[46]); MULADD(at[8], at[45]); MULADD(at[9], at[44]); MULADD(at[10], at[43]); MULADD(at[11], at[42]); MULADD(at[12], at[41]); MULADD(at[13], at[40]); MULADD(at[14], at[39]); MULADD(at[15], at[38]); MULADD(at[16], at[37]); MULADD(at[17], at[36]); MULADD(at[18], at[35]); MULADD(at[19], at[34]); MULADD(at[20], at[33]); MULADD(at[21], at[32]);
MiniTLS 0:35aa5be3b78d 102 COMBA_STORE(C->dp[21]);
MiniTLS 0:35aa5be3b78d 103 /* 22 */
MiniTLS 0:35aa5be3b78d 104 COMBA_FORWARD;
MiniTLS 0:35aa5be3b78d 105 MULADD(at[0], at[54]); MULADD(at[1], at[53]); MULADD(at[2], at[52]); MULADD(at[3], at[51]); MULADD(at[4], at[50]); MULADD(at[5], at[49]); MULADD(at[6], at[48]); MULADD(at[7], at[47]); MULADD(at[8], at[46]); MULADD(at[9], at[45]); MULADD(at[10], at[44]); MULADD(at[11], at[43]); MULADD(at[12], at[42]); MULADD(at[13], at[41]); MULADD(at[14], at[40]); MULADD(at[15], at[39]); MULADD(at[16], at[38]); MULADD(at[17], at[37]); MULADD(at[18], at[36]); MULADD(at[19], at[35]); MULADD(at[20], at[34]); MULADD(at[21], at[33]); MULADD(at[22], at[32]);
MiniTLS 0:35aa5be3b78d 106 COMBA_STORE(C->dp[22]);
MiniTLS 0:35aa5be3b78d 107 /* 23 */
MiniTLS 0:35aa5be3b78d 108 COMBA_FORWARD;
MiniTLS 0:35aa5be3b78d 109 MULADD(at[0], at[55]); MULADD(at[1], at[54]); MULADD(at[2], at[53]); MULADD(at[3], at[52]); MULADD(at[4], at[51]); MULADD(at[5], at[50]); MULADD(at[6], at[49]); MULADD(at[7], at[48]); MULADD(at[8], at[47]); MULADD(at[9], at[46]); MULADD(at[10], at[45]); MULADD(at[11], at[44]); MULADD(at[12], at[43]); MULADD(at[13], at[42]); MULADD(at[14], at[41]); MULADD(at[15], at[40]); MULADD(at[16], at[39]); MULADD(at[17], at[38]); MULADD(at[18], at[37]); MULADD(at[19], at[36]); MULADD(at[20], at[35]); MULADD(at[21], at[34]); MULADD(at[22], at[33]); MULADD(at[23], at[32]);
MiniTLS 0:35aa5be3b78d 110 COMBA_STORE(C->dp[23]);
MiniTLS 0:35aa5be3b78d 111 /* 24 */
MiniTLS 0:35aa5be3b78d 112 COMBA_FORWARD;
MiniTLS 0:35aa5be3b78d 113 MULADD(at[0], at[56]); MULADD(at[1], at[55]); MULADD(at[2], at[54]); MULADD(at[3], at[53]); MULADD(at[4], at[52]); MULADD(at[5], at[51]); MULADD(at[6], at[50]); MULADD(at[7], at[49]); MULADD(at[8], at[48]); MULADD(at[9], at[47]); MULADD(at[10], at[46]); MULADD(at[11], at[45]); MULADD(at[12], at[44]); MULADD(at[13], at[43]); MULADD(at[14], at[42]); MULADD(at[15], at[41]); MULADD(at[16], at[40]); MULADD(at[17], at[39]); MULADD(at[18], at[38]); MULADD(at[19], at[37]); MULADD(at[20], at[36]); MULADD(at[21], at[35]); MULADD(at[22], at[34]); MULADD(at[23], at[33]); MULADD(at[24], at[32]);
MiniTLS 0:35aa5be3b78d 114 COMBA_STORE(C->dp[24]);
MiniTLS 0:35aa5be3b78d 115 /* 25 */
MiniTLS 0:35aa5be3b78d 116 COMBA_FORWARD;
MiniTLS 0:35aa5be3b78d 117 MULADD(at[0], at[57]); MULADD(at[1], at[56]); MULADD(at[2], at[55]); MULADD(at[3], at[54]); MULADD(at[4], at[53]); MULADD(at[5], at[52]); MULADD(at[6], at[51]); MULADD(at[7], at[50]); MULADD(at[8], at[49]); MULADD(at[9], at[48]); MULADD(at[10], at[47]); MULADD(at[11], at[46]); MULADD(at[12], at[45]); MULADD(at[13], at[44]); MULADD(at[14], at[43]); MULADD(at[15], at[42]); MULADD(at[16], at[41]); MULADD(at[17], at[40]); MULADD(at[18], at[39]); MULADD(at[19], at[38]); MULADD(at[20], at[37]); MULADD(at[21], at[36]); MULADD(at[22], at[35]); MULADD(at[23], at[34]); MULADD(at[24], at[33]); MULADD(at[25], at[32]);
MiniTLS 0:35aa5be3b78d 118 COMBA_STORE(C->dp[25]);
MiniTLS 0:35aa5be3b78d 119 /* 26 */
MiniTLS 0:35aa5be3b78d 120 COMBA_FORWARD;
MiniTLS 0:35aa5be3b78d 121 MULADD(at[0], at[58]); MULADD(at[1], at[57]); MULADD(at[2], at[56]); MULADD(at[3], at[55]); MULADD(at[4], at[54]); MULADD(at[5], at[53]); MULADD(at[6], at[52]); MULADD(at[7], at[51]); MULADD(at[8], at[50]); MULADD(at[9], at[49]); MULADD(at[10], at[48]); MULADD(at[11], at[47]); MULADD(at[12], at[46]); MULADD(at[13], at[45]); MULADD(at[14], at[44]); MULADD(at[15], at[43]); MULADD(at[16], at[42]); MULADD(at[17], at[41]); MULADD(at[18], at[40]); MULADD(at[19], at[39]); MULADD(at[20], at[38]); MULADD(at[21], at[37]); MULADD(at[22], at[36]); MULADD(at[23], at[35]); MULADD(at[24], at[34]); MULADD(at[25], at[33]); MULADD(at[26], at[32]);
MiniTLS 0:35aa5be3b78d 122 COMBA_STORE(C->dp[26]);
MiniTLS 0:35aa5be3b78d 123 /* 27 */
MiniTLS 0:35aa5be3b78d 124 COMBA_FORWARD;
MiniTLS 0:35aa5be3b78d 125 MULADD(at[0], at[59]); MULADD(at[1], at[58]); MULADD(at[2], at[57]); MULADD(at[3], at[56]); MULADD(at[4], at[55]); MULADD(at[5], at[54]); MULADD(at[6], at[53]); MULADD(at[7], at[52]); MULADD(at[8], at[51]); MULADD(at[9], at[50]); MULADD(at[10], at[49]); MULADD(at[11], at[48]); MULADD(at[12], at[47]); MULADD(at[13], at[46]); MULADD(at[14], at[45]); MULADD(at[15], at[44]); MULADD(at[16], at[43]); MULADD(at[17], at[42]); MULADD(at[18], at[41]); MULADD(at[19], at[40]); MULADD(at[20], at[39]); MULADD(at[21], at[38]); MULADD(at[22], at[37]); MULADD(at[23], at[36]); MULADD(at[24], at[35]); MULADD(at[25], at[34]); MULADD(at[26], at[33]); MULADD(at[27], at[32]);
MiniTLS 0:35aa5be3b78d 126 COMBA_STORE(C->dp[27]);
MiniTLS 0:35aa5be3b78d 127 /* 28 */
MiniTLS 0:35aa5be3b78d 128 COMBA_FORWARD;
MiniTLS 0:35aa5be3b78d 129 MULADD(at[0], at[60]); MULADD(at[1], at[59]); MULADD(at[2], at[58]); MULADD(at[3], at[57]); MULADD(at[4], at[56]); MULADD(at[5], at[55]); MULADD(at[6], at[54]); MULADD(at[7], at[53]); MULADD(at[8], at[52]); MULADD(at[9], at[51]); MULADD(at[10], at[50]); MULADD(at[11], at[49]); MULADD(at[12], at[48]); MULADD(at[13], at[47]); MULADD(at[14], at[46]); MULADD(at[15], at[45]); MULADD(at[16], at[44]); MULADD(at[17], at[43]); MULADD(at[18], at[42]); MULADD(at[19], at[41]); MULADD(at[20], at[40]); MULADD(at[21], at[39]); MULADD(at[22], at[38]); MULADD(at[23], at[37]); MULADD(at[24], at[36]); MULADD(at[25], at[35]); MULADD(at[26], at[34]); MULADD(at[27], at[33]); MULADD(at[28], at[32]);
MiniTLS 0:35aa5be3b78d 130 COMBA_STORE(C->dp[28]);
MiniTLS 0:35aa5be3b78d 131 /* 29 */
MiniTLS 0:35aa5be3b78d 132 COMBA_FORWARD;
MiniTLS 0:35aa5be3b78d 133 MULADD(at[0], at[61]); MULADD(at[1], at[60]); MULADD(at[2], at[59]); MULADD(at[3], at[58]); MULADD(at[4], at[57]); MULADD(at[5], at[56]); MULADD(at[6], at[55]); MULADD(at[7], at[54]); MULADD(at[8], at[53]); MULADD(at[9], at[52]); MULADD(at[10], at[51]); MULADD(at[11], at[50]); MULADD(at[12], at[49]); MULADD(at[13], at[48]); MULADD(at[14], at[47]); MULADD(at[15], at[46]); MULADD(at[16], at[45]); MULADD(at[17], at[44]); MULADD(at[18], at[43]); MULADD(at[19], at[42]); MULADD(at[20], at[41]); MULADD(at[21], at[40]); MULADD(at[22], at[39]); MULADD(at[23], at[38]); MULADD(at[24], at[37]); MULADD(at[25], at[36]); MULADD(at[26], at[35]); MULADD(at[27], at[34]); MULADD(at[28], at[33]); MULADD(at[29], at[32]);
MiniTLS 0:35aa5be3b78d 134 COMBA_STORE(C->dp[29]);
MiniTLS 0:35aa5be3b78d 135 /* 30 */
MiniTLS 0:35aa5be3b78d 136 COMBA_FORWARD;
MiniTLS 0:35aa5be3b78d 137 MULADD(at[0], at[62]); MULADD(at[1], at[61]); MULADD(at[2], at[60]); MULADD(at[3], at[59]); MULADD(at[4], at[58]); MULADD(at[5], at[57]); MULADD(at[6], at[56]); MULADD(at[7], at[55]); MULADD(at[8], at[54]); MULADD(at[9], at[53]); MULADD(at[10], at[52]); MULADD(at[11], at[51]); MULADD(at[12], at[50]); MULADD(at[13], at[49]); MULADD(at[14], at[48]); MULADD(at[15], at[47]); MULADD(at[16], at[46]); MULADD(at[17], at[45]); MULADD(at[18], at[44]); MULADD(at[19], at[43]); MULADD(at[20], at[42]); MULADD(at[21], at[41]); MULADD(at[22], at[40]); MULADD(at[23], at[39]); MULADD(at[24], at[38]); MULADD(at[25], at[37]); MULADD(at[26], at[36]); MULADD(at[27], at[35]); MULADD(at[28], at[34]); MULADD(at[29], at[33]); MULADD(at[30], at[32]);
MiniTLS 0:35aa5be3b78d 138 COMBA_STORE(C->dp[30]);
MiniTLS 0:35aa5be3b78d 139 /* 31 */
MiniTLS 0:35aa5be3b78d 140 COMBA_FORWARD;
MiniTLS 0:35aa5be3b78d 141 MULADD(at[0], at[63]); MULADD(at[1], at[62]); MULADD(at[2], at[61]); MULADD(at[3], at[60]); MULADD(at[4], at[59]); MULADD(at[5], at[58]); MULADD(at[6], at[57]); MULADD(at[7], at[56]); MULADD(at[8], at[55]); MULADD(at[9], at[54]); MULADD(at[10], at[53]); MULADD(at[11], at[52]); MULADD(at[12], at[51]); MULADD(at[13], at[50]); MULADD(at[14], at[49]); MULADD(at[15], at[48]); MULADD(at[16], at[47]); MULADD(at[17], at[46]); MULADD(at[18], at[45]); MULADD(at[19], at[44]); MULADD(at[20], at[43]); MULADD(at[21], at[42]); MULADD(at[22], at[41]); MULADD(at[23], at[40]); MULADD(at[24], at[39]); MULADD(at[25], at[38]); MULADD(at[26], at[37]); MULADD(at[27], at[36]); MULADD(at[28], at[35]); MULADD(at[29], at[34]); MULADD(at[30], at[33]); MULADD(at[31], at[32]);
MiniTLS 0:35aa5be3b78d 142 COMBA_STORE(C->dp[31]);
MiniTLS 0:35aa5be3b78d 143 /* 32 */
MiniTLS 0:35aa5be3b78d 144 COMBA_FORWARD;
MiniTLS 0:35aa5be3b78d 145 MULADD(at[1], at[63]); MULADD(at[2], at[62]); MULADD(at[3], at[61]); MULADD(at[4], at[60]); MULADD(at[5], at[59]); MULADD(at[6], at[58]); MULADD(at[7], at[57]); MULADD(at[8], at[56]); MULADD(at[9], at[55]); MULADD(at[10], at[54]); MULADD(at[11], at[53]); MULADD(at[12], at[52]); MULADD(at[13], at[51]); MULADD(at[14], at[50]); MULADD(at[15], at[49]); MULADD(at[16], at[48]); MULADD(at[17], at[47]); MULADD(at[18], at[46]); MULADD(at[19], at[45]); MULADD(at[20], at[44]); MULADD(at[21], at[43]); MULADD(at[22], at[42]); MULADD(at[23], at[41]); MULADD(at[24], at[40]); MULADD(at[25], at[39]); MULADD(at[26], at[38]); MULADD(at[27], at[37]); MULADD(at[28], at[36]); MULADD(at[29], at[35]); MULADD(at[30], at[34]); MULADD(at[31], at[33]);
MiniTLS 0:35aa5be3b78d 146 COMBA_STORE(C->dp[32]);
MiniTLS 0:35aa5be3b78d 147 /* 33 */
MiniTLS 0:35aa5be3b78d 148 COMBA_FORWARD;
MiniTLS 0:35aa5be3b78d 149 MULADD(at[2], at[63]); MULADD(at[3], at[62]); MULADD(at[4], at[61]); MULADD(at[5], at[60]); MULADD(at[6], at[59]); MULADD(at[7], at[58]); MULADD(at[8], at[57]); MULADD(at[9], at[56]); MULADD(at[10], at[55]); MULADD(at[11], at[54]); MULADD(at[12], at[53]); MULADD(at[13], at[52]); MULADD(at[14], at[51]); MULADD(at[15], at[50]); MULADD(at[16], at[49]); MULADD(at[17], at[48]); MULADD(at[18], at[47]); MULADD(at[19], at[46]); MULADD(at[20], at[45]); MULADD(at[21], at[44]); MULADD(at[22], at[43]); MULADD(at[23], at[42]); MULADD(at[24], at[41]); MULADD(at[25], at[40]); MULADD(at[26], at[39]); MULADD(at[27], at[38]); MULADD(at[28], at[37]); MULADD(at[29], at[36]); MULADD(at[30], at[35]); MULADD(at[31], at[34]);
MiniTLS 0:35aa5be3b78d 150 COMBA_STORE(C->dp[33]);
MiniTLS 0:35aa5be3b78d 151 /* 34 */
MiniTLS 0:35aa5be3b78d 152 COMBA_FORWARD;
MiniTLS 0:35aa5be3b78d 153 MULADD(at[3], at[63]); MULADD(at[4], at[62]); MULADD(at[5], at[61]); MULADD(at[6], at[60]); MULADD(at[7], at[59]); MULADD(at[8], at[58]); MULADD(at[9], at[57]); MULADD(at[10], at[56]); MULADD(at[11], at[55]); MULADD(at[12], at[54]); MULADD(at[13], at[53]); MULADD(at[14], at[52]); MULADD(at[15], at[51]); MULADD(at[16], at[50]); MULADD(at[17], at[49]); MULADD(at[18], at[48]); MULADD(at[19], at[47]); MULADD(at[20], at[46]); MULADD(at[21], at[45]); MULADD(at[22], at[44]); MULADD(at[23], at[43]); MULADD(at[24], at[42]); MULADD(at[25], at[41]); MULADD(at[26], at[40]); MULADD(at[27], at[39]); MULADD(at[28], at[38]); MULADD(at[29], at[37]); MULADD(at[30], at[36]); MULADD(at[31], at[35]);
MiniTLS 0:35aa5be3b78d 154 COMBA_STORE(C->dp[34]);
MiniTLS 0:35aa5be3b78d 155 /* 35 */
MiniTLS 0:35aa5be3b78d 156 COMBA_FORWARD;
MiniTLS 0:35aa5be3b78d 157 MULADD(at[4], at[63]); MULADD(at[5], at[62]); MULADD(at[6], at[61]); MULADD(at[7], at[60]); MULADD(at[8], at[59]); MULADD(at[9], at[58]); MULADD(at[10], at[57]); MULADD(at[11], at[56]); MULADD(at[12], at[55]); MULADD(at[13], at[54]); MULADD(at[14], at[53]); MULADD(at[15], at[52]); MULADD(at[16], at[51]); MULADD(at[17], at[50]); MULADD(at[18], at[49]); MULADD(at[19], at[48]); MULADD(at[20], at[47]); MULADD(at[21], at[46]); MULADD(at[22], at[45]); MULADD(at[23], at[44]); MULADD(at[24], at[43]); MULADD(at[25], at[42]); MULADD(at[26], at[41]); MULADD(at[27], at[40]); MULADD(at[28], at[39]); MULADD(at[29], at[38]); MULADD(at[30], at[37]); MULADD(at[31], at[36]);
MiniTLS 0:35aa5be3b78d 158 COMBA_STORE(C->dp[35]);
MiniTLS 0:35aa5be3b78d 159 /* 36 */
MiniTLS 0:35aa5be3b78d 160 COMBA_FORWARD;
MiniTLS 0:35aa5be3b78d 161 MULADD(at[5], at[63]); MULADD(at[6], at[62]); MULADD(at[7], at[61]); MULADD(at[8], at[60]); MULADD(at[9], at[59]); MULADD(at[10], at[58]); MULADD(at[11], at[57]); MULADD(at[12], at[56]); MULADD(at[13], at[55]); MULADD(at[14], at[54]); MULADD(at[15], at[53]); MULADD(at[16], at[52]); MULADD(at[17], at[51]); MULADD(at[18], at[50]); MULADD(at[19], at[49]); MULADD(at[20], at[48]); MULADD(at[21], at[47]); MULADD(at[22], at[46]); MULADD(at[23], at[45]); MULADD(at[24], at[44]); MULADD(at[25], at[43]); MULADD(at[26], at[42]); MULADD(at[27], at[41]); MULADD(at[28], at[40]); MULADD(at[29], at[39]); MULADD(at[30], at[38]); MULADD(at[31], at[37]);
MiniTLS 0:35aa5be3b78d 162 COMBA_STORE(C->dp[36]);
MiniTLS 0:35aa5be3b78d 163 /* 37 */
MiniTLS 0:35aa5be3b78d 164 COMBA_FORWARD;
MiniTLS 0:35aa5be3b78d 165 MULADD(at[6], at[63]); MULADD(at[7], at[62]); MULADD(at[8], at[61]); MULADD(at[9], at[60]); MULADD(at[10], at[59]); MULADD(at[11], at[58]); MULADD(at[12], at[57]); MULADD(at[13], at[56]); MULADD(at[14], at[55]); MULADD(at[15], at[54]); MULADD(at[16], at[53]); MULADD(at[17], at[52]); MULADD(at[18], at[51]); MULADD(at[19], at[50]); MULADD(at[20], at[49]); MULADD(at[21], at[48]); MULADD(at[22], at[47]); MULADD(at[23], at[46]); MULADD(at[24], at[45]); MULADD(at[25], at[44]); MULADD(at[26], at[43]); MULADD(at[27], at[42]); MULADD(at[28], at[41]); MULADD(at[29], at[40]); MULADD(at[30], at[39]); MULADD(at[31], at[38]);
MiniTLS 0:35aa5be3b78d 166 COMBA_STORE(C->dp[37]);
MiniTLS 0:35aa5be3b78d 167 /* 38 */
MiniTLS 0:35aa5be3b78d 168 COMBA_FORWARD;
MiniTLS 0:35aa5be3b78d 169 MULADD(at[7], at[63]); MULADD(at[8], at[62]); MULADD(at[9], at[61]); MULADD(at[10], at[60]); MULADD(at[11], at[59]); MULADD(at[12], at[58]); MULADD(at[13], at[57]); MULADD(at[14], at[56]); MULADD(at[15], at[55]); MULADD(at[16], at[54]); MULADD(at[17], at[53]); MULADD(at[18], at[52]); MULADD(at[19], at[51]); MULADD(at[20], at[50]); MULADD(at[21], at[49]); MULADD(at[22], at[48]); MULADD(at[23], at[47]); MULADD(at[24], at[46]); MULADD(at[25], at[45]); MULADD(at[26], at[44]); MULADD(at[27], at[43]); MULADD(at[28], at[42]); MULADD(at[29], at[41]); MULADD(at[30], at[40]); MULADD(at[31], at[39]);
MiniTLS 0:35aa5be3b78d 170 COMBA_STORE(C->dp[38]);
MiniTLS 0:35aa5be3b78d 171
MiniTLS 0:35aa5be3b78d 172 /* early out at 40 digits, 40*32==1280, or two 640 bit operands */
MiniTLS 0:35aa5be3b78d 173 if (out_size <= 40) { COMBA_STORE2(C->dp[39]); C->used = 40; C->sign = A->sign ^ B->sign; fp_clamp(C); COMBA_FINI; return; }
MiniTLS 0:35aa5be3b78d 174
MiniTLS 0:35aa5be3b78d 175 /* 39 */
MiniTLS 0:35aa5be3b78d 176 COMBA_FORWARD;
MiniTLS 0:35aa5be3b78d 177 MULADD(at[8], at[63]); MULADD(at[9], at[62]); MULADD(at[10], at[61]); MULADD(at[11], at[60]); MULADD(at[12], at[59]); MULADD(at[13], at[58]); MULADD(at[14], at[57]); MULADD(at[15], at[56]); MULADD(at[16], at[55]); MULADD(at[17], at[54]); MULADD(at[18], at[53]); MULADD(at[19], at[52]); MULADD(at[20], at[51]); MULADD(at[21], at[50]); MULADD(at[22], at[49]); MULADD(at[23], at[48]); MULADD(at[24], at[47]); MULADD(at[25], at[46]); MULADD(at[26], at[45]); MULADD(at[27], at[44]); MULADD(at[28], at[43]); MULADD(at[29], at[42]); MULADD(at[30], at[41]); MULADD(at[31], at[40]);
MiniTLS 0:35aa5be3b78d 178 COMBA_STORE(C->dp[39]);
MiniTLS 0:35aa5be3b78d 179 /* 40 */
MiniTLS 0:35aa5be3b78d 180 COMBA_FORWARD;
MiniTLS 0:35aa5be3b78d 181 MULADD(at[9], at[63]); MULADD(at[10], at[62]); MULADD(at[11], at[61]); MULADD(at[12], at[60]); MULADD(at[13], at[59]); MULADD(at[14], at[58]); MULADD(at[15], at[57]); MULADD(at[16], at[56]); MULADD(at[17], at[55]); MULADD(at[18], at[54]); MULADD(at[19], at[53]); MULADD(at[20], at[52]); MULADD(at[21], at[51]); MULADD(at[22], at[50]); MULADD(at[23], at[49]); MULADD(at[24], at[48]); MULADD(at[25], at[47]); MULADD(at[26], at[46]); MULADD(at[27], at[45]); MULADD(at[28], at[44]); MULADD(at[29], at[43]); MULADD(at[30], at[42]); MULADD(at[31], at[41]);
MiniTLS 0:35aa5be3b78d 182 COMBA_STORE(C->dp[40]);
MiniTLS 0:35aa5be3b78d 183 /* 41 */
MiniTLS 0:35aa5be3b78d 184 COMBA_FORWARD;
MiniTLS 0:35aa5be3b78d 185 MULADD(at[10], at[63]); MULADD(at[11], at[62]); MULADD(at[12], at[61]); MULADD(at[13], at[60]); MULADD(at[14], at[59]); MULADD(at[15], at[58]); MULADD(at[16], at[57]); MULADD(at[17], at[56]); MULADD(at[18], at[55]); MULADD(at[19], at[54]); MULADD(at[20], at[53]); MULADD(at[21], at[52]); MULADD(at[22], at[51]); MULADD(at[23], at[50]); MULADD(at[24], at[49]); MULADD(at[25], at[48]); MULADD(at[26], at[47]); MULADD(at[27], at[46]); MULADD(at[28], at[45]); MULADD(at[29], at[44]); MULADD(at[30], at[43]); MULADD(at[31], at[42]);
MiniTLS 0:35aa5be3b78d 186 COMBA_STORE(C->dp[41]);
MiniTLS 0:35aa5be3b78d 187 /* 42 */
MiniTLS 0:35aa5be3b78d 188 COMBA_FORWARD;
MiniTLS 0:35aa5be3b78d 189 MULADD(at[11], at[63]); MULADD(at[12], at[62]); MULADD(at[13], at[61]); MULADD(at[14], at[60]); MULADD(at[15], at[59]); MULADD(at[16], at[58]); MULADD(at[17], at[57]); MULADD(at[18], at[56]); MULADD(at[19], at[55]); MULADD(at[20], at[54]); MULADD(at[21], at[53]); MULADD(at[22], at[52]); MULADD(at[23], at[51]); MULADD(at[24], at[50]); MULADD(at[25], at[49]); MULADD(at[26], at[48]); MULADD(at[27], at[47]); MULADD(at[28], at[46]); MULADD(at[29], at[45]); MULADD(at[30], at[44]); MULADD(at[31], at[43]);
MiniTLS 0:35aa5be3b78d 190 COMBA_STORE(C->dp[42]);
MiniTLS 0:35aa5be3b78d 191 /* 43 */
MiniTLS 0:35aa5be3b78d 192 COMBA_FORWARD;
MiniTLS 0:35aa5be3b78d 193 MULADD(at[12], at[63]); MULADD(at[13], at[62]); MULADD(at[14], at[61]); MULADD(at[15], at[60]); MULADD(at[16], at[59]); MULADD(at[17], at[58]); MULADD(at[18], at[57]); MULADD(at[19], at[56]); MULADD(at[20], at[55]); MULADD(at[21], at[54]); MULADD(at[22], at[53]); MULADD(at[23], at[52]); MULADD(at[24], at[51]); MULADD(at[25], at[50]); MULADD(at[26], at[49]); MULADD(at[27], at[48]); MULADD(at[28], at[47]); MULADD(at[29], at[46]); MULADD(at[30], at[45]); MULADD(at[31], at[44]);
MiniTLS 0:35aa5be3b78d 194 COMBA_STORE(C->dp[43]);
MiniTLS 0:35aa5be3b78d 195 /* 44 */
MiniTLS 0:35aa5be3b78d 196 COMBA_FORWARD;
MiniTLS 0:35aa5be3b78d 197 MULADD(at[13], at[63]); MULADD(at[14], at[62]); MULADD(at[15], at[61]); MULADD(at[16], at[60]); MULADD(at[17], at[59]); MULADD(at[18], at[58]); MULADD(at[19], at[57]); MULADD(at[20], at[56]); MULADD(at[21], at[55]); MULADD(at[22], at[54]); MULADD(at[23], at[53]); MULADD(at[24], at[52]); MULADD(at[25], at[51]); MULADD(at[26], at[50]); MULADD(at[27], at[49]); MULADD(at[28], at[48]); MULADD(at[29], at[47]); MULADD(at[30], at[46]); MULADD(at[31], at[45]);
MiniTLS 0:35aa5be3b78d 198 COMBA_STORE(C->dp[44]);
MiniTLS 0:35aa5be3b78d 199 /* 45 */
MiniTLS 0:35aa5be3b78d 200 COMBA_FORWARD;
MiniTLS 0:35aa5be3b78d 201 MULADD(at[14], at[63]); MULADD(at[15], at[62]); MULADD(at[16], at[61]); MULADD(at[17], at[60]); MULADD(at[18], at[59]); MULADD(at[19], at[58]); MULADD(at[20], at[57]); MULADD(at[21], at[56]); MULADD(at[22], at[55]); MULADD(at[23], at[54]); MULADD(at[24], at[53]); MULADD(at[25], at[52]); MULADD(at[26], at[51]); MULADD(at[27], at[50]); MULADD(at[28], at[49]); MULADD(at[29], at[48]); MULADD(at[30], at[47]); MULADD(at[31], at[46]);
MiniTLS 0:35aa5be3b78d 202 COMBA_STORE(C->dp[45]);
MiniTLS 0:35aa5be3b78d 203 /* 46 */
MiniTLS 0:35aa5be3b78d 204 COMBA_FORWARD;
MiniTLS 0:35aa5be3b78d 205 MULADD(at[15], at[63]); MULADD(at[16], at[62]); MULADD(at[17], at[61]); MULADD(at[18], at[60]); MULADD(at[19], at[59]); MULADD(at[20], at[58]); MULADD(at[21], at[57]); MULADD(at[22], at[56]); MULADD(at[23], at[55]); MULADD(at[24], at[54]); MULADD(at[25], at[53]); MULADD(at[26], at[52]); MULADD(at[27], at[51]); MULADD(at[28], at[50]); MULADD(at[29], at[49]); MULADD(at[30], at[48]); MULADD(at[31], at[47]);
MiniTLS 0:35aa5be3b78d 206 COMBA_STORE(C->dp[46]);
MiniTLS 0:35aa5be3b78d 207
MiniTLS 0:35aa5be3b78d 208 /* early out at 48 digits, 48*32==1536, or two 768 bit operands */
MiniTLS 0:35aa5be3b78d 209 if (out_size <= 48) { COMBA_STORE2(C->dp[47]); C->used = 48; C->sign = A->sign ^ B->sign; fp_clamp(C); COMBA_FINI; return; }
MiniTLS 0:35aa5be3b78d 210
MiniTLS 0:35aa5be3b78d 211 /* 47 */
MiniTLS 0:35aa5be3b78d 212 COMBA_FORWARD;
MiniTLS 0:35aa5be3b78d 213 MULADD(at[16], at[63]); MULADD(at[17], at[62]); MULADD(at[18], at[61]); MULADD(at[19], at[60]); MULADD(at[20], at[59]); MULADD(at[21], at[58]); MULADD(at[22], at[57]); MULADD(at[23], at[56]); MULADD(at[24], at[55]); MULADD(at[25], at[54]); MULADD(at[26], at[53]); MULADD(at[27], at[52]); MULADD(at[28], at[51]); MULADD(at[29], at[50]); MULADD(at[30], at[49]); MULADD(at[31], at[48]);
MiniTLS 0:35aa5be3b78d 214 COMBA_STORE(C->dp[47]);
MiniTLS 0:35aa5be3b78d 215 /* 48 */
MiniTLS 0:35aa5be3b78d 216 COMBA_FORWARD;
MiniTLS 0:35aa5be3b78d 217 MULADD(at[17], at[63]); MULADD(at[18], at[62]); MULADD(at[19], at[61]); MULADD(at[20], at[60]); MULADD(at[21], at[59]); MULADD(at[22], at[58]); MULADD(at[23], at[57]); MULADD(at[24], at[56]); MULADD(at[25], at[55]); MULADD(at[26], at[54]); MULADD(at[27], at[53]); MULADD(at[28], at[52]); MULADD(at[29], at[51]); MULADD(at[30], at[50]); MULADD(at[31], at[49]);
MiniTLS 0:35aa5be3b78d 218 COMBA_STORE(C->dp[48]);
MiniTLS 0:35aa5be3b78d 219 /* 49 */
MiniTLS 0:35aa5be3b78d 220 COMBA_FORWARD;
MiniTLS 0:35aa5be3b78d 221 MULADD(at[18], at[63]); MULADD(at[19], at[62]); MULADD(at[20], at[61]); MULADD(at[21], at[60]); MULADD(at[22], at[59]); MULADD(at[23], at[58]); MULADD(at[24], at[57]); MULADD(at[25], at[56]); MULADD(at[26], at[55]); MULADD(at[27], at[54]); MULADD(at[28], at[53]); MULADD(at[29], at[52]); MULADD(at[30], at[51]); MULADD(at[31], at[50]);
MiniTLS 0:35aa5be3b78d 222 COMBA_STORE(C->dp[49]);
MiniTLS 0:35aa5be3b78d 223 /* 50 */
MiniTLS 0:35aa5be3b78d 224 COMBA_FORWARD;
MiniTLS 0:35aa5be3b78d 225 MULADD(at[19], at[63]); MULADD(at[20], at[62]); MULADD(at[21], at[61]); MULADD(at[22], at[60]); MULADD(at[23], at[59]); MULADD(at[24], at[58]); MULADD(at[25], at[57]); MULADD(at[26], at[56]); MULADD(at[27], at[55]); MULADD(at[28], at[54]); MULADD(at[29], at[53]); MULADD(at[30], at[52]); MULADD(at[31], at[51]);
MiniTLS 0:35aa5be3b78d 226 COMBA_STORE(C->dp[50]);
MiniTLS 0:35aa5be3b78d 227 /* 51 */
MiniTLS 0:35aa5be3b78d 228 COMBA_FORWARD;
MiniTLS 0:35aa5be3b78d 229 MULADD(at[20], at[63]); MULADD(at[21], at[62]); MULADD(at[22], at[61]); MULADD(at[23], at[60]); MULADD(at[24], at[59]); MULADD(at[25], at[58]); MULADD(at[26], at[57]); MULADD(at[27], at[56]); MULADD(at[28], at[55]); MULADD(at[29], at[54]); MULADD(at[30], at[53]); MULADD(at[31], at[52]);
MiniTLS 0:35aa5be3b78d 230 COMBA_STORE(C->dp[51]);
MiniTLS 0:35aa5be3b78d 231 /* 52 */
MiniTLS 0:35aa5be3b78d 232 COMBA_FORWARD;
MiniTLS 0:35aa5be3b78d 233 MULADD(at[21], at[63]); MULADD(at[22], at[62]); MULADD(at[23], at[61]); MULADD(at[24], at[60]); MULADD(at[25], at[59]); MULADD(at[26], at[58]); MULADD(at[27], at[57]); MULADD(at[28], at[56]); MULADD(at[29], at[55]); MULADD(at[30], at[54]); MULADD(at[31], at[53]);
MiniTLS 0:35aa5be3b78d 234 COMBA_STORE(C->dp[52]);
MiniTLS 0:35aa5be3b78d 235 /* 53 */
MiniTLS 0:35aa5be3b78d 236 COMBA_FORWARD;
MiniTLS 0:35aa5be3b78d 237 MULADD(at[22], at[63]); MULADD(at[23], at[62]); MULADD(at[24], at[61]); MULADD(at[25], at[60]); MULADD(at[26], at[59]); MULADD(at[27], at[58]); MULADD(at[28], at[57]); MULADD(at[29], at[56]); MULADD(at[30], at[55]); MULADD(at[31], at[54]);
MiniTLS 0:35aa5be3b78d 238 COMBA_STORE(C->dp[53]);
MiniTLS 0:35aa5be3b78d 239 /* 54 */
MiniTLS 0:35aa5be3b78d 240 COMBA_FORWARD;
MiniTLS 0:35aa5be3b78d 241 MULADD(at[23], at[63]); MULADD(at[24], at[62]); MULADD(at[25], at[61]); MULADD(at[26], at[60]); MULADD(at[27], at[59]); MULADD(at[28], at[58]); MULADD(at[29], at[57]); MULADD(at[30], at[56]); MULADD(at[31], at[55]);
MiniTLS 0:35aa5be3b78d 242 COMBA_STORE(C->dp[54]);
MiniTLS 0:35aa5be3b78d 243
MiniTLS 0:35aa5be3b78d 244 /* early out at 56 digits, 56*32==1792, or two 896 bit operands */
MiniTLS 0:35aa5be3b78d 245 if (out_size <= 56) { COMBA_STORE2(C->dp[55]); C->used = 56; C->sign = A->sign ^ B->sign; fp_clamp(C); COMBA_FINI; return; }
MiniTLS 0:35aa5be3b78d 246
MiniTLS 0:35aa5be3b78d 247 /* 55 */
MiniTLS 0:35aa5be3b78d 248 COMBA_FORWARD;
MiniTLS 0:35aa5be3b78d 249 MULADD(at[24], at[63]); MULADD(at[25], at[62]); MULADD(at[26], at[61]); MULADD(at[27], at[60]); MULADD(at[28], at[59]); MULADD(at[29], at[58]); MULADD(at[30], at[57]); MULADD(at[31], at[56]);
MiniTLS 0:35aa5be3b78d 250 COMBA_STORE(C->dp[55]);
MiniTLS 0:35aa5be3b78d 251 /* 56 */
MiniTLS 0:35aa5be3b78d 252 COMBA_FORWARD;
MiniTLS 0:35aa5be3b78d 253 MULADD(at[25], at[63]); MULADD(at[26], at[62]); MULADD(at[27], at[61]); MULADD(at[28], at[60]); MULADD(at[29], at[59]); MULADD(at[30], at[58]); MULADD(at[31], at[57]);
MiniTLS 0:35aa5be3b78d 254 COMBA_STORE(C->dp[56]);
MiniTLS 0:35aa5be3b78d 255 /* 57 */
MiniTLS 0:35aa5be3b78d 256 COMBA_FORWARD;
MiniTLS 0:35aa5be3b78d 257 MULADD(at[26], at[63]); MULADD(at[27], at[62]); MULADD(at[28], at[61]); MULADD(at[29], at[60]); MULADD(at[30], at[59]); MULADD(at[31], at[58]);
MiniTLS 0:35aa5be3b78d 258 COMBA_STORE(C->dp[57]);
MiniTLS 0:35aa5be3b78d 259 /* 58 */
MiniTLS 0:35aa5be3b78d 260 COMBA_FORWARD;
MiniTLS 0:35aa5be3b78d 261 MULADD(at[27], at[63]); MULADD(at[28], at[62]); MULADD(at[29], at[61]); MULADD(at[30], at[60]); MULADD(at[31], at[59]);
MiniTLS 0:35aa5be3b78d 262 COMBA_STORE(C->dp[58]);
MiniTLS 0:35aa5be3b78d 263 /* 59 */
MiniTLS 0:35aa5be3b78d 264 COMBA_FORWARD;
MiniTLS 0:35aa5be3b78d 265 MULADD(at[28], at[63]); MULADD(at[29], at[62]); MULADD(at[30], at[61]); MULADD(at[31], at[60]);
MiniTLS 0:35aa5be3b78d 266 COMBA_STORE(C->dp[59]);
MiniTLS 0:35aa5be3b78d 267 /* 60 */
MiniTLS 0:35aa5be3b78d 268 COMBA_FORWARD;
MiniTLS 0:35aa5be3b78d 269 MULADD(at[29], at[63]); MULADD(at[30], at[62]); MULADD(at[31], at[61]);
MiniTLS 0:35aa5be3b78d 270 COMBA_STORE(C->dp[60]);
MiniTLS 0:35aa5be3b78d 271 /* 61 */
MiniTLS 0:35aa5be3b78d 272 COMBA_FORWARD;
MiniTLS 0:35aa5be3b78d 273 MULADD(at[30], at[63]); MULADD(at[31], at[62]);
MiniTLS 0:35aa5be3b78d 274 COMBA_STORE(C->dp[61]);
MiniTLS 0:35aa5be3b78d 275 /* 62 */
MiniTLS 0:35aa5be3b78d 276 COMBA_FORWARD;
MiniTLS 0:35aa5be3b78d 277 MULADD(at[31], at[63]);
MiniTLS 0:35aa5be3b78d 278 COMBA_STORE(C->dp[62]);
MiniTLS 0:35aa5be3b78d 279 COMBA_STORE2(C->dp[63]);
MiniTLS 0:35aa5be3b78d 280 C->used = 64;
MiniTLS 0:35aa5be3b78d 281 C->sign = A->sign ^ B->sign;
MiniTLS 0:35aa5be3b78d 282 fp_clamp(C);
MiniTLS 0:35aa5be3b78d 283 COMBA_FINI;
MiniTLS 0:35aa5be3b78d 284 }
MiniTLS 0:35aa5be3b78d 285 #endif