]> git.cryptolib.org Git - arm-crypto-lib.git/blob - bmw/f0_small_autogen_mix.i
9c301077a57247f85658dc5307e1d8ebca8d4fec
[arm-crypto-lib.git] / bmw / f0_small_autogen_mix.i
1   sub SP, #16*4
2 /*=== W[ 0] ===*/
3   ldr r14, [r1, #5*4]
4   ldr r3, [r2, #5*4]
5   eor r14, r3
6   str r14, [SP, #5*4]
7   ldr r12, [r1, #7*4]
8   ldr r3, [r2, #7*4]
9   eor r12, r3
10   str r12, [SP, #7*4]
11   ldr r11, [r1, #10*4]
12   ldr r3, [r2, #10*4]
13   eor r11, r3
14   str r11, [SP, #10*4]
15   ldr r10, [r1, #13*4]
16   ldr r3, [r2, #13*4]
17   eor r10, r3
18   str r10, [SP, #13*4]
19   ldr r9, [r1, #14*4]
20   ldr r3, [r2, #14*4]
21   eor r9, r3
22   str r9, [SP, #14*4]
23   sub r8, r9, r12
24 /*(-- should do +10, +13, +1tr, +5 --)*/
25   add r3, r11, r10
26   add r3, r8
27   add r3, r14
28   S32_0 r7 r3
29   ldr r3, [r1, #1*4]
30   add r7, r3
31   str r7, [r0, #0*4]
32 /*=== W[ 3] ===*/
33   ldr r7, [r1, #0*4]
34   ldr r3, [r2, #0*4]
35   eor r7, r3
36   str r7, [SP, #0*4]
37   ldr r6, [r1, #1*4]
38   ldr r3, [r2, #1*4]
39   eor r6, r3
40   str r6, [SP, #1*4]
41   ldr r5, [r1, #8*4]
42   ldr r3, [r2, #8*4]
43   eor r5, r3
44   str r5, [SP, #8*4]
45   add r4, r6, r11
46 /*(-- should do +0, +13, +8, -2tr --)*/
47   add r3, r7, r10
48   add r3, r5
49   sub r3, r4
50   S32_3 r6 r3
51   ldr r3, [r1, #4*4]
52   add r6, r3
53   str r6, [r0, #3*4]
54 /*=== W[ 6] ===*/
55   ldr r9, [r1, #3*4]
56   ldr r3, [r2, #3*4]
57   eor r9, r3
58   str r9, [SP, #3*4]
59   ldr r6, [r1, #4*4]
60   ldr r3, [r2, #4*4]
61   eor r6, r3
62   str r6, [SP, #4*4]
63   ldr r5, [r1, #11*4]
64   ldr r3, [r2, #11*4]
65   eor r5, r3
66   str r5, [SP, #11*4]
67 /*(-- should do +13, +4, -0, -11, -3 --)*/
68   add r3, r10, r6
69   sub r3, r7
70   sub r3, r5
71   sub r3, r9
72   S32_1 r5 r3
73   ldr r3, [r1, #7*4]
74   add r5, r3
75   str r5, [r0, #6*4]
76 /*=== W[ 9] ===*/
77   ldr r5, [r1, #6*4]
78   ldr r3, [r2, #6*4]
79   eor r5, r3
80   str r5, [SP, #6*4]
81   sub r14, r5, r9
82 /*(-- should do +0, +0tr, +1tr --)*/
83   add r3, r7, r14
84   add r3, r8
85   S32_4 r3
86   ldr r8, [r1, #10*4]
87   add r3, r8
88   str r3, [r0, #9*4]
89 /*=== W[12] ===*/
90   ldr r8, [r1, #9*4]
91   ldr r3, [r2, #9*4]
92   eor r8, r3
93   str r8, [SP, #9*4]
94 /*(-- should do +2tr, -0tr, -9 --)*/
95   sub r3, r4, r14
96   sub r3, r8
97   S32_2 r14 r3
98   ldr r3, [r1, #13*4]
99   add r14, r3
100   str r14, [r0, #12*4]
101 /*=== W[15] ===*/
102   ldr r14, [r1, #12*4]
103   ldr r3, [r2, #12*4]
104   eor r14, r3
105   str r14, [SP, #12*4]
106   sub r4, r14, r8
107   sub r11, r10, r5
108 /*(-- should do +0tr, +1tr, -4 --)*/
109   add r3, r4, r11
110   sub r3, r6
111   S32_0 r10 r3
112   ldr r3, [r1, #0*4]
113   add r10, r3
114   str r10, [r0, #15*4]
115 /*=== W[ 2] ===*/
116   ldr r10, [r1, #15*4]
117   ldr r3, [r2, #15*4]
118   eor r10, r3
119   str r10, [SP, #15*4]
120 /*(-- should do +0, +15, +7, -0tr --)*/
121   add r3, r7, r10
122   add r3, r12
123   sub r3, r4
124   S32_2 r4 r3
125   ldr r3, [r1, #3*4]
126   add r4, r3
127   str r4, [r0, #2*4]
128 /*=== W[ 5] ===*/
129   ldr r12, [r1, #2*4]
130   ldr r3, [r2, #2*4]
131   eor r12, r3
132   str r12, [SP, #2*4]
133   ldr r4, [SP, #10*4]
134   sub r6, r10, r12
135   sub r5, r9, r14
136 /*(-- should do +0tr, +10, +2tr --)*/
137   add r3, r6, r4
138   add r3, r5
139   S32_0 r9 r3
140   ldr r3, [r1, #6*4]
141   add r9, r3
142   str r9, [r0, #5*4]
143 /*=== W[ 8] ===*/
144   ldr r9, [SP, #5*4]
145 /*(-- should do +1tr, -0tr, -5 --)*/
146   sub r3, r11, r6
147   sub r3, r9
148   S32_3 r11 r3
149   ldr r3, [r1, #9*4]
150   add r11, r3
151   str r11, [r0, #8*4]
152 /*=== W[11] ===*/
153   ldr r11, [SP, #8*4]
154   sub r6, r11, r9
155 /*(-- should do +0tr, +9, -0, -2 --)*/
156   add r3, r6, r8
157   sub r3, r7
158   sub r3, r12
159   S32_1 r7 r3
160   ldr r3, [r1, #12*4]
161   add r7, r3
162   str r7, [r0, #11*4]
163 /*=== W[14] ===*/
164   ldr r7, [SP, #11*4]
165 /*(-- should do +0tr, +2tr, -11 --)*/
166   add r3, r6, r5
167   sub r3, r7
168   S32_4 r3
169   ldr r6, [r1, #15*4]
170   add r3, r6
171   str r3, [r0, #14*4]
172 /*=== W[ 1] ===*/
173   ldr r6, [SP, #6*4]
174   ldr r5, [SP, #14*4]
175   add r4, r7, r5
176   add r14, r11, r10
177 /*(-- should do +0tr, +6, -1tr --)*/
178   add r3, r4, r6
179   sub r3, r14
180   S32_1 r11 r3
181   ldr r3, [r1, #2*4]
182   add r11, r3
183   str r11, [r0, #1*4]
184 /*=== W[ 4] ===*/
185   ldr r11, [SP, #1*4]
186 /*(-- should do +1, +2, +9, -0tr --)*/
187   add r3, r11, r12
188   add r3, r8
189   sub r3, r4
190   S32_4 r3
191   ldr r4, [r1, #5*4]
192   add r3, r4
193   str r3, [r0, #4*4]
194 /*=== W[ 7] ===*/
195   ldr r10, [SP, #4*4]
196   ldr r4, [SP, #12*4]
197 /*(-- should do +1, -12, -14, -4, -5 --)*/
198   sub r3, r11, r4
199   sub r3, r5
200   sub r3, r10
201   sub r3, r9
202   S32_2 r11 r3
203   ldr r3, [r1, #8*4]
204   add r11, r3
205   str r11, [r0, #7*4]
206 /*=== W[10] ===*/
207   ldr r11, [SP, #1*4]
208   ldr r9, [SP, #7*4]
209   add r8, r10, r9
210 /*(-- should do +1tr, -0tr, -1 --)*/
211   sub r3, r14, r8
212   sub r3, r11
213   S32_0 r14 r3
214   ldr r3, [r1, #11*4]
215   add r14, r3
216   str r14, [r0, #10*4]
217 /*=== W[13] ===*/
218   ldr r14, [SP, #10*4]
219 /*(-- should do +0tr, +10, +11, +2 --)*/
220   add r3, r8, r14
221   add r3, r7
222   add r3, r12
223   S32_3 r8 r3
224   ldr r3, [r1, #14*4]
225   add r8, r3
226   str r8, [r0, #13*4]
227   add SP, #16*4