]> git.cryptolib.org Git - arm-crypto-lib.git/blob - bmw/f1_autogen_large.c
optimized f0 function
[arm-crypto-lib.git] / bmw / f1_autogen_large.c
1 /* BEGIN of automatic generated code */
2
3 static inline
4 void bmw_large_f1(uint64_t* q, const void* m, const void* h){ 
5 /* expand_1( 0) */
6         q[16] = 
7                 ((  ROTL64(((uint64_t*)m)[ 0], 1) 
8                   + ROTL64(((uint64_t*)m)[ 3], 4) 
9                   - ROTL64(((uint64_t*)m)[10], 11) 
10                   + 0x5555555555555550ULL 
11                  )^ ((uint64_t*)h)[ 7] 
12                 )
13                 + S64_1(q[ 0]) + S64_2(q[ 1]) + S64_3(q[ 2]) + S64_0(q[ 3])
14                 + S64_1(q[ 4]) + S64_2(q[ 5]) + S64_3(q[ 6]) + S64_0(q[ 7])
15                 + S64_1(q[ 8]) + S64_2(q[ 9]) + S64_3(q[10]) + S64_0(q[11])
16                 + S64_1(q[12]) + S64_2(q[13]) + S64_3(q[14]) + S64_0(q[15]);
17 /* expand_1( 1) */
18         q[17] = 
19                 ((  ROTL64(((uint64_t*)m)[ 1], 2) 
20                   + ROTL64(((uint64_t*)m)[ 4], 5) 
21                   - ROTL64(((uint64_t*)m)[11], 12) 
22                   + 0x5aaaaaaaaaaaaaa5ULL 
23                  )^ ((uint64_t*)h)[ 8] 
24                 )
25                 + S64_1(q[ 1]) + S64_2(q[ 2]) + S64_3(q[ 3]) + S64_0(q[ 4])
26                 + S64_1(q[ 5]) + S64_2(q[ 6]) + S64_3(q[ 7]) + S64_0(q[ 8])
27                 + S64_1(q[ 9]) + S64_2(q[10]) + S64_3(q[11]) + S64_0(q[12])
28                 + S64_1(q[13]) + S64_2(q[14]) + S64_3(q[15]) + S64_0(q[16]);
29 /* expand_2( 2) */
30         q[18] = 
31                 ((  ROTL64(((uint64_t*)m)[ 2], 3) 
32                   + ROTL64(((uint64_t*)m)[ 5], 6) 
33                   - ROTL64(((uint64_t*)m)[12], 13) 
34                   + 0x5ffffffffffffffaULL 
35                  )^ ((uint64_t*)h)[ 9] 
36                 )
37                 +       q[ 2]  + R64_1(q[ 3]) +       q[ 4]  + R64_2(q[ 5])
38                 +       q[ 6]  + R64_3(q[ 7]) +       q[ 8]  + R64_4(q[ 9])
39                 +       q[10]  + R64_5(q[11]) +       q[12]  + R64_6(q[13])
40                 +       q[14]  + R64_7(q[15]) + S64_4(q[16]) + S64_5(q[17]);
41 /* expand_2( 3) */
42         q[19] = 
43                 ((  ROTL64(((uint64_t*)m)[ 3], 4) 
44                   + ROTL64(((uint64_t*)m)[ 6], 7) 
45                   - ROTL64(((uint64_t*)m)[13], 14) 
46                   + 0x655555555555554fULL 
47                  )^ ((uint64_t*)h)[10] 
48                 )
49                 +       q[ 3]  + R64_1(q[ 4]) +       q[ 5]  + R64_2(q[ 6])
50                 +       q[ 7]  + R64_3(q[ 8]) +       q[ 9]  + R64_4(q[10])
51                 +       q[11]  + R64_5(q[12]) +       q[13]  + R64_6(q[14])
52                 +       q[15]  + R64_7(q[16]) + S64_4(q[17]) + S64_5(q[18]);
53 /* expand_2( 4) */
54         q[20] = 
55                 ((  ROTL64(((uint64_t*)m)[ 4], 5) 
56                   + ROTL64(((uint64_t*)m)[ 7], 8) 
57                   - ROTL64(((uint64_t*)m)[14], 15) 
58                   + 0x6aaaaaaaaaaaaaa4ULL 
59                  )^ ((uint64_t*)h)[11] 
60                 )
61                 +       q[ 4]  + R64_1(q[ 5]) +       q[ 6]  + R64_2(q[ 7])
62                 +       q[ 8]  + R64_3(q[ 9]) +       q[10]  + R64_4(q[11])
63                 +       q[12]  + R64_5(q[13]) +       q[14]  + R64_6(q[15])
64                 +       q[16]  + R64_7(q[17]) + S64_4(q[18]) + S64_5(q[19]);
65 /* expand_2( 5) */
66         q[21] = 
67                 ((  ROTL64(((uint64_t*)m)[ 5], 6) 
68                   + ROTL64(((uint64_t*)m)[ 8], 9) 
69                   - ROTL64(((uint64_t*)m)[15], 16) 
70                   + 0x6ffffffffffffff9ULL 
71                  )^ ((uint64_t*)h)[12] 
72                 )
73                 +       q[ 5]  + R64_1(q[ 6]) +       q[ 7]  + R64_2(q[ 8])
74                 +       q[ 9]  + R64_3(q[10]) +       q[11]  + R64_4(q[12])
75                 +       q[13]  + R64_5(q[14]) +       q[15]  + R64_6(q[16])
76                 +       q[17]  + R64_7(q[18]) + S64_4(q[19]) + S64_5(q[20]);
77 /* expand_2( 6) */
78         q[22] = 
79                 ((  ROTL64(((uint64_t*)m)[ 6], 7) 
80                   + ROTL64(((uint64_t*)m)[ 9], 10) 
81                   - ROTL64(((uint64_t*)m)[ 0], 1) 
82                   + 0x755555555555554eULL 
83                  )^ ((uint64_t*)h)[13] 
84                 )
85                 +       q[ 6]  + R64_1(q[ 7]) +       q[ 8]  + R64_2(q[ 9])
86                 +       q[10]  + R64_3(q[11]) +       q[12]  + R64_4(q[13])
87                 +       q[14]  + R64_5(q[15]) +       q[16]  + R64_6(q[17])
88                 +       q[18]  + R64_7(q[19]) + S64_4(q[20]) + S64_5(q[21]);
89 /* expand_2( 7) */
90         q[23] = 
91                 ((  ROTL64(((uint64_t*)m)[ 7], 8) 
92                   + ROTL64(((uint64_t*)m)[10], 11) 
93                   - ROTL64(((uint64_t*)m)[ 1], 2) 
94                   + 0x7aaaaaaaaaaaaaa3ULL 
95                  )^ ((uint64_t*)h)[14] 
96                 )
97                 +       q[ 7]  + R64_1(q[ 8]) +       q[ 9]  + R64_2(q[10])
98                 +       q[11]  + R64_3(q[12]) +       q[13]  + R64_4(q[14])
99                 +       q[15]  + R64_5(q[16]) +       q[17]  + R64_6(q[18])
100                 +       q[19]  + R64_7(q[20]) + S64_4(q[21]) + S64_5(q[22]);
101 /* expand_2( 8) */
102         q[24] = 
103                 ((  ROTL64(((uint64_t*)m)[ 8], 9) 
104                   + ROTL64(((uint64_t*)m)[11], 12) 
105                   - ROTL64(((uint64_t*)m)[ 2], 3) 
106                   + 0x7ffffffffffffff8ULL 
107                  )^ ((uint64_t*)h)[15] 
108                 )
109                 +       q[ 8]  + R64_1(q[ 9]) +       q[10]  + R64_2(q[11])
110                 +       q[12]  + R64_3(q[13]) +       q[14]  + R64_4(q[15])
111                 +       q[16]  + R64_5(q[17]) +       q[18]  + R64_6(q[19])
112                 +       q[20]  + R64_7(q[21]) + S64_4(q[22]) + S64_5(q[23]);
113 /* expand_2( 9) */
114         q[25] = 
115                 ((  ROTL64(((uint64_t*)m)[ 9], 10) 
116                   + ROTL64(((uint64_t*)m)[12], 13) 
117                   - ROTL64(((uint64_t*)m)[ 3], 4) 
118                   + 0x855555555555554dULL 
119                  )^ ((uint64_t*)h)[ 0] 
120                 )
121                 +       q[ 9]  + R64_1(q[10]) +       q[11]  + R64_2(q[12])
122                 +       q[13]  + R64_3(q[14]) +       q[15]  + R64_4(q[16])
123                 +       q[17]  + R64_5(q[18]) +       q[19]  + R64_6(q[20])
124                 +       q[21]  + R64_7(q[22]) + S64_4(q[23]) + S64_5(q[24]);
125 /* expand_2(10) */
126         q[26] = 
127                 ((  ROTL64(((uint64_t*)m)[10], 11) 
128                   + ROTL64(((uint64_t*)m)[13], 14) 
129                   - ROTL64(((uint64_t*)m)[ 4], 5) 
130                   + 0x8aaaaaaaaaaaaaa2ULL 
131                  )^ ((uint64_t*)h)[ 1] 
132                 )
133                 +       q[10]  + R64_1(q[11]) +       q[12]  + R64_2(q[13])
134                 +       q[14]  + R64_3(q[15]) +       q[16]  + R64_4(q[17])
135                 +       q[18]  + R64_5(q[19]) +       q[20]  + R64_6(q[21])
136                 +       q[22]  + R64_7(q[23]) + S64_4(q[24]) + S64_5(q[25]);
137 /* expand_2(11) */
138         q[27] = 
139                 ((  ROTL64(((uint64_t*)m)[11], 12) 
140                   + ROTL64(((uint64_t*)m)[14], 15) 
141                   - ROTL64(((uint64_t*)m)[ 5], 6) 
142                   + 0x8ffffffffffffff7ULL 
143                  )^ ((uint64_t*)h)[ 2] 
144                 )
145                 +       q[11]  + R64_1(q[12]) +       q[13]  + R64_2(q[14])
146                 +       q[15]  + R64_3(q[16]) +       q[17]  + R64_4(q[18])
147                 +       q[19]  + R64_5(q[20]) +       q[21]  + R64_6(q[22])
148                 +       q[23]  + R64_7(q[24]) + S64_4(q[25]) + S64_5(q[26]);
149 /* expand_2(12) */
150         q[28] = 
151                 ((  ROTL64(((uint64_t*)m)[12], 13) 
152                   + ROTL64(((uint64_t*)m)[15], 16) 
153                   - ROTL64(((uint64_t*)m)[ 6], 7) 
154                   + 0x955555555555554cULL 
155                  )^ ((uint64_t*)h)[ 3] 
156                 )
157                 +       q[12]  + R64_1(q[13]) +       q[14]  + R64_2(q[15])
158                 +       q[16]  + R64_3(q[17]) +       q[18]  + R64_4(q[19])
159                 +       q[20]  + R64_5(q[21]) +       q[22]  + R64_6(q[23])
160                 +       q[24]  + R64_7(q[25]) + S64_4(q[26]) + S64_5(q[27]);
161 /* expand_2(13) */
162         q[29] = 
163                 ((  ROTL64(((uint64_t*)m)[13], 14) 
164                   + ROTL64(((uint64_t*)m)[ 0], 1) 
165                   - ROTL64(((uint64_t*)m)[ 7], 8) 
166                   + 0x9aaaaaaaaaaaaaa1ULL 
167                  )^ ((uint64_t*)h)[ 4] 
168                 )
169                 +       q[13]  + R64_1(q[14]) +       q[15]  + R64_2(q[16])
170                 +       q[17]  + R64_3(q[18]) +       q[19]  + R64_4(q[20])
171                 +       q[21]  + R64_5(q[22]) +       q[23]  + R64_6(q[24])
172                 +       q[25]  + R64_7(q[26]) + S64_4(q[27]) + S64_5(q[28]);
173 /* expand_2(14) */
174         q[30] = 
175                 ((  ROTL64(((uint64_t*)m)[14], 15) 
176                   + ROTL64(((uint64_t*)m)[ 1], 2) 
177                   - ROTL64(((uint64_t*)m)[ 8], 9) 
178                   + 0x9ffffffffffffff6ULL 
179                  )^ ((uint64_t*)h)[ 5] 
180                 )
181                 +       q[14]  + R64_1(q[15]) +       q[16]  + R64_2(q[17])
182                 +       q[18]  + R64_3(q[19]) +       q[20]  + R64_4(q[21])
183                 +       q[22]  + R64_5(q[23]) +       q[24]  + R64_6(q[25])
184                 +       q[26]  + R64_7(q[27]) + S64_4(q[28]) + S64_5(q[29]);
185 /* expand_2(15) */
186         q[31] = 
187                 ((  ROTL64(((uint64_t*)m)[15], 16) 
188                   + ROTL64(((uint64_t*)m)[ 2], 3) 
189                   - ROTL64(((uint64_t*)m)[ 9], 10) 
190                   + 0xa55555555555554bULL 
191                  )^ ((uint64_t*)h)[ 6] 
192                 )
193                 +       q[15]  + R64_1(q[16]) +       q[17]  + R64_2(q[18])
194                 +       q[19]  + R64_3(q[20]) +       q[21]  + R64_4(q[22])
195                 +       q[23]  + R64_5(q[24]) +       q[25]  + R64_6(q[26])
196                 +       q[27]  + R64_7(q[28]) + S64_4(q[29]) + S64_5(q[30]);
197 }
198
199 /* END of automatic generated code */
200