.. | .. |
---|
| 1 | +/* SPDX-License-Identifier: GPL-2.0-or-later */ |
---|
1 | 2 | /* |
---|
2 | 3 | * Twofish Cipher 8-way parallel algorithm (AVX/x86_64) |
---|
3 | 4 | * |
---|
.. | .. |
---|
5 | 6 | * <Johannes.Goetzfried@informatik.stud.uni-erlangen.de> |
---|
6 | 7 | * |
---|
7 | 8 | * Copyright © 2012-2013 Jussi Kivilinna <jussi.kivilinna@iki.fi> |
---|
8 | | - * |
---|
9 | | - * This program is free software; you can redistribute it and/or modify |
---|
10 | | - * it under the terms of the GNU General Public License as published by |
---|
11 | | - * the Free Software Foundation; either version 2 of the License, or |
---|
12 | | - * (at your option) any later version. |
---|
13 | | - * |
---|
14 | | - * This program is distributed in the hope that it will be useful, |
---|
15 | | - * but WITHOUT ANY WARRANTY; without even the implied warranty of |
---|
16 | | - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
---|
17 | | - * GNU General Public License for more details. |
---|
18 | | - * |
---|
19 | | - * You should have received a copy of the GNU General Public License |
---|
20 | | - * along with this program; if not, write to the Free Software |
---|
21 | | - * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 |
---|
22 | | - * USA |
---|
23 | | - * |
---|
24 | 9 | */ |
---|
25 | 10 | |
---|
26 | 11 | #include <linux/linkage.h> |
---|
.. | .. |
---|
249 | 234 | vpxor x3, wkey, x3; |
---|
250 | 235 | |
---|
251 | 236 | .align 8 |
---|
252 | | -__twofish_enc_blk8: |
---|
| 237 | +SYM_FUNC_START_LOCAL(__twofish_enc_blk8) |
---|
253 | 238 | /* input: |
---|
254 | 239 | * %rdi: ctx, CTX |
---|
255 | 240 | * RA1, RB1, RC1, RD1, RA2, RB2, RC2, RD2: blocks |
---|
.. | .. |
---|
287 | 272 | outunpack_blocks(RC1, RD1, RA1, RB1, RK1, RX0, RY0, RK2); |
---|
288 | 273 | outunpack_blocks(RC2, RD2, RA2, RB2, RK1, RX0, RY0, RK2); |
---|
289 | 274 | |
---|
290 | | - ret; |
---|
291 | | -ENDPROC(__twofish_enc_blk8) |
---|
| 275 | + RET; |
---|
| 276 | +SYM_FUNC_END(__twofish_enc_blk8) |
---|
292 | 277 | |
---|
293 | 278 | .align 8 |
---|
294 | | -__twofish_dec_blk8: |
---|
| 279 | +SYM_FUNC_START_LOCAL(__twofish_dec_blk8) |
---|
295 | 280 | /* input: |
---|
296 | 281 | * %rdi: ctx, CTX |
---|
297 | 282 | * RC1, RD1, RA1, RB1, RC2, RD2, RA2, RB2: encrypted blocks |
---|
.. | .. |
---|
327 | 312 | outunpack_blocks(RA1, RB1, RC1, RD1, RK1, RX0, RY0, RK2); |
---|
328 | 313 | outunpack_blocks(RA2, RB2, RC2, RD2, RK1, RX0, RY0, RK2); |
---|
329 | 314 | |
---|
330 | | - ret; |
---|
331 | | -ENDPROC(__twofish_dec_blk8) |
---|
| 315 | + RET; |
---|
| 316 | +SYM_FUNC_END(__twofish_dec_blk8) |
---|
332 | 317 | |
---|
333 | | -ENTRY(twofish_ecb_enc_8way) |
---|
| 318 | +SYM_FUNC_START(twofish_ecb_enc_8way) |
---|
334 | 319 | /* input: |
---|
335 | 320 | * %rdi: ctx, CTX |
---|
336 | 321 | * %rsi: dst |
---|
.. | .. |
---|
347 | 332 | store_8way(%r11, RC1, RD1, RA1, RB1, RC2, RD2, RA2, RB2); |
---|
348 | 333 | |
---|
349 | 334 | FRAME_END |
---|
350 | | - ret; |
---|
351 | | -ENDPROC(twofish_ecb_enc_8way) |
---|
| 335 | + RET; |
---|
| 336 | +SYM_FUNC_END(twofish_ecb_enc_8way) |
---|
352 | 337 | |
---|
353 | | -ENTRY(twofish_ecb_dec_8way) |
---|
| 338 | +SYM_FUNC_START(twofish_ecb_dec_8way) |
---|
354 | 339 | /* input: |
---|
355 | 340 | * %rdi: ctx, CTX |
---|
356 | 341 | * %rsi: dst |
---|
.. | .. |
---|
367 | 352 | store_8way(%r11, RA1, RB1, RC1, RD1, RA2, RB2, RC2, RD2); |
---|
368 | 353 | |
---|
369 | 354 | FRAME_END |
---|
370 | | - ret; |
---|
371 | | -ENDPROC(twofish_ecb_dec_8way) |
---|
| 355 | + RET; |
---|
| 356 | +SYM_FUNC_END(twofish_ecb_dec_8way) |
---|
372 | 357 | |
---|
373 | | -ENTRY(twofish_cbc_dec_8way) |
---|
| 358 | +SYM_FUNC_START(twofish_cbc_dec_8way) |
---|
374 | 359 | /* input: |
---|
375 | 360 | * %rdi: ctx, CTX |
---|
376 | 361 | * %rsi: dst |
---|
.. | .. |
---|
392 | 377 | popq %r12; |
---|
393 | 378 | |
---|
394 | 379 | FRAME_END |
---|
395 | | - ret; |
---|
396 | | -ENDPROC(twofish_cbc_dec_8way) |
---|
| 380 | + RET; |
---|
| 381 | +SYM_FUNC_END(twofish_cbc_dec_8way) |
---|
397 | 382 | |
---|
398 | | -ENTRY(twofish_ctr_8way) |
---|
| 383 | +SYM_FUNC_START(twofish_ctr_8way) |
---|
399 | 384 | /* input: |
---|
400 | 385 | * %rdi: ctx, CTX |
---|
401 | 386 | * %rsi: dst |
---|
.. | .. |
---|
419 | 404 | popq %r12; |
---|
420 | 405 | |
---|
421 | 406 | FRAME_END |
---|
422 | | - ret; |
---|
423 | | -ENDPROC(twofish_ctr_8way) |
---|
| 407 | + RET; |
---|
| 408 | +SYM_FUNC_END(twofish_ctr_8way) |
---|
424 | 409 | |
---|
425 | | -ENTRY(twofish_xts_enc_8way) |
---|
| 410 | +SYM_FUNC_START(twofish_xts_enc_8way) |
---|
426 | 411 | /* input: |
---|
427 | 412 | * %rdi: ctx, CTX |
---|
428 | 413 | * %rsi: dst |
---|
.. | .. |
---|
443 | 428 | store_xts_8way(%r11, RC1, RD1, RA1, RB1, RC2, RD2, RA2, RB2); |
---|
444 | 429 | |
---|
445 | 430 | FRAME_END |
---|
446 | | - ret; |
---|
447 | | -ENDPROC(twofish_xts_enc_8way) |
---|
| 431 | + RET; |
---|
| 432 | +SYM_FUNC_END(twofish_xts_enc_8way) |
---|
448 | 433 | |
---|
449 | | -ENTRY(twofish_xts_dec_8way) |
---|
| 434 | +SYM_FUNC_START(twofish_xts_dec_8way) |
---|
450 | 435 | /* input: |
---|
451 | 436 | * %rdi: ctx, CTX |
---|
452 | 437 | * %rsi: dst |
---|
.. | .. |
---|
467 | 452 | store_xts_8way(%r11, RA1, RB1, RC1, RD1, RA2, RB2, RC2, RD2); |
---|
468 | 453 | |
---|
469 | 454 | FRAME_END |
---|
470 | | - ret; |
---|
471 | | -ENDPROC(twofish_xts_dec_8way) |
---|
| 455 | + RET; |
---|
| 456 | +SYM_FUNC_END(twofish_xts_dec_8way) |
---|