Important changes to repositories hosted on mbed.com
Mbed hosted mercurial repositories are deprecated and are due to be permanently deleted in July 2026.
To keep a copy of this software download the repository Zip archive or clone locally using Mercurial.
It is also possible to export all your personal repositories from the account settings page.
Fork of MiniTLS-GPL by
math/mul/fp_mul_comba_32.c@4:cbaf466d717d, 2014-06-10 (annotated)
- 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?
| User | Revision | Line number | New 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 |
