~louis/ubuntu/trusty/clamav/lp799623_fix_logrotate

« back to all changes in this revision

Viewing changes to libclamav/tomsfastmath/mul/fp_mul_comba_8.c

  • Committer: Package Import Robot
  • Author(s): Scott Kitterman
  • Date: 2014-02-01 11:06:17 UTC
  • mfrom: (0.35.37 sid)
  • Revision ID: package-import@ubuntu.com-20140201110617-33h2xxk09dep0ui4
Tags: 0.98.1+dfsg-1ubuntu1
* Merge from Debian unstable.  Remaining changes:
  - Drop build-dep on electric-fence (in Universe)
  - Add apparmor profiles for clamd and freshclam along with maintainer
    script changes
  - Add autopkgtest

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
#define TFM_DEFINES
 
2
#include "fp_mul_comba.c"
 
3
 
 
4
#ifdef TFM_MUL8
 
5
void fp_mul_comba8(fp_int *A, fp_int *B, fp_int *C)
 
6
{
 
7
   fp_digit c0, c1, c2, at[16];
 
8
 
 
9
   memcpy(at, A->dp, 8 * sizeof(fp_digit));
 
10
   memcpy(at+8, B->dp, 8 * sizeof(fp_digit));
 
11
   COMBA_START;
 
12
 
 
13
   COMBA_CLEAR;
 
14
   /* 0 */
 
15
   MULADD(at[0], at[8]); 
 
16
   COMBA_STORE(C->dp[0]);
 
17
   /* 1 */
 
18
   COMBA_FORWARD;
 
19
   MULADD(at[0], at[9]);    MULADD(at[1], at[8]); 
 
20
   COMBA_STORE(C->dp[1]);
 
21
   /* 2 */
 
22
   COMBA_FORWARD;
 
23
   MULADD(at[0], at[10]);    MULADD(at[1], at[9]);    MULADD(at[2], at[8]); 
 
24
   COMBA_STORE(C->dp[2]);
 
25
   /* 3 */
 
26
   COMBA_FORWARD;
 
27
   MULADD(at[0], at[11]);    MULADD(at[1], at[10]);    MULADD(at[2], at[9]);    MULADD(at[3], at[8]); 
 
28
   COMBA_STORE(C->dp[3]);
 
29
   /* 4 */
 
30
   COMBA_FORWARD;
 
31
   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]); 
 
32
   COMBA_STORE(C->dp[4]);
 
33
   /* 5 */
 
34
   COMBA_FORWARD;
 
35
   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]); 
 
36
   COMBA_STORE(C->dp[5]);
 
37
   /* 6 */
 
38
   COMBA_FORWARD;
 
39
   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]); 
 
40
   COMBA_STORE(C->dp[6]);
 
41
   /* 7 */
 
42
   COMBA_FORWARD;
 
43
   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]); 
 
44
   COMBA_STORE(C->dp[7]);
 
45
   /* 8 */
 
46
   COMBA_FORWARD;
 
47
   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]); 
 
48
   COMBA_STORE(C->dp[8]);
 
49
   /* 9 */
 
50
   COMBA_FORWARD;
 
51
   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]); 
 
52
   COMBA_STORE(C->dp[9]);
 
53
   /* 10 */
 
54
   COMBA_FORWARD;
 
55
   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]); 
 
56
   COMBA_STORE(C->dp[10]);
 
57
   /* 11 */
 
58
   COMBA_FORWARD;
 
59
   MULADD(at[4], at[15]);    MULADD(at[5], at[14]);    MULADD(at[6], at[13]);    MULADD(at[7], at[12]); 
 
60
   COMBA_STORE(C->dp[11]);
 
61
   /* 12 */
 
62
   COMBA_FORWARD;
 
63
   MULADD(at[5], at[15]);    MULADD(at[6], at[14]);    MULADD(at[7], at[13]); 
 
64
   COMBA_STORE(C->dp[12]);
 
65
   /* 13 */
 
66
   COMBA_FORWARD;
 
67
   MULADD(at[6], at[15]);    MULADD(at[7], at[14]); 
 
68
   COMBA_STORE(C->dp[13]);
 
69
   /* 14 */
 
70
   COMBA_FORWARD;
 
71
   MULADD(at[7], at[15]); 
 
72
   COMBA_STORE(C->dp[14]);
 
73
   COMBA_STORE2(C->dp[15]);
 
74
   C->used = 16;
 
75
   C->sign = A->sign ^ B->sign;
 
76
   fp_clamp(C);
 
77
   COMBA_FINI;
 
78
}
 
79
#endif