Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(67)

Side by Side Diff: linux-arm/crypto/aes/bsaes-armv7.S

Issue 2569253003: BoringSSL: Roll generated files forward. (Closed)
Patch Set: Created 4 years ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
« no previous file with comments | « linux-arm/crypto/aes/aesv8-armx32.S ('k') | linux-arm/crypto/sha/sha256-armv4.S » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 #if defined(__arm__) 1 #if defined(__arm__)
2 2
3 @ ==================================================================== 3 @ ====================================================================
4 @ Written by Andy Polyakov <appro@openssl.org> for the OpenSSL 4 @ Written by Andy Polyakov <appro@openssl.org> for the OpenSSL
5 @ project. The module is, however, dual licensed under OpenSSL and 5 @ project. The module is, however, dual licensed under OpenSSL and
6 @ CRYPTOGAMS licenses depending on where you obtain it. For further 6 @ CRYPTOGAMS licenses depending on where you obtain it. For further
7 @ details see http://www.openssl.org/~appro/cryptogams/. 7 @ details see http://www.openssl.org/~appro/cryptogams/.
8 @ 8 @
9 @ Specific modes and adaptation for Linux kernel by Ard Biesheuvel 9 @ Specific modes and adaptation for Linux kernel by Ard Biesheuvel
10 @ <ard.biesheuvel@linaro.org>. Permission to use under GPL terms is 10 @ <ard.biesheuvel@linaro.org>. Permission to use under GPL terms is
(...skipping 1825 matching lines...) Expand 10 before | Expand all | Expand 10 after
1836 vst1.8 {q8,q9}, [r8]! 1836 vst1.8 {q8,q9}, [r8]!
1837 veor q11, q7, q13 1837 veor q11, q7, q13
1838 veor q12, q2, q14 1838 veor q12, q2, q14
1839 vst1.8 {q10,q11}, [r8]! 1839 vst1.8 {q10,q11}, [r8]!
1840 vst1.8 {q12}, [r8]! 1840 vst1.8 {q12}, [r8]!
1841 1841
1842 vld1.64 {q8}, [r0,:128] @ next round tweak 1842 vld1.64 {q8}, [r0,:128] @ next round tweak
1843 b .Lxts_enc_done 1843 b .Lxts_enc_done
1844 .align 4 1844 .align 4
1845 .Lxts_enc_6: 1845 .Lxts_enc_6:
1846 vst1.64 {q14}, [r0,:128] @ next round tweak
1847
1848 veor q4, q4, q12 1846 veor q4, q4, q12
1849 #ifndef BSAES_ASM_EXTENDED_KEY 1847 #ifndef BSAES_ASM_EXTENDED_KEY
1850 add r4, sp, #0x90 @ pass key schedule 1848 add r4, sp, #0x90 @ pass key schedule
1851 #else 1849 #else
1852 add r4, r10, #248 @ pass key schedule 1850 add r4, r10, #248 @ pass key schedule
1853 #endif 1851 #endif
1854 veor q5, q5, q13 1852 veor q5, q5, q13
1855 mov r5, r1 @ pass rounds 1853 mov r5, r1 @ pass rounds
1856 mov r0, sp 1854 mov r0, sp
1857 1855
(...skipping 15 matching lines...) Expand all
1873 vld1.64 {q8}, [r0,:128] @ next round tweak 1871 vld1.64 {q8}, [r0,:128] @ next round tweak
1874 b .Lxts_enc_done 1872 b .Lxts_enc_done
1875 1873
1876 @ put this in range for both ARM and Thumb mode adr instructions 1874 @ put this in range for both ARM and Thumb mode adr instructions
1877 .align 5 1875 .align 5
1878 .Lxts_magic: 1876 .Lxts_magic:
1879 .quad 1, 0x87 1877 .quad 1, 0x87
1880 1878
1881 .align 5 1879 .align 5
1882 .Lxts_enc_5: 1880 .Lxts_enc_5:
1883 vst1.64 {q13}, [r0,:128] @ next round tweak
1884
1885 veor q3, q3, q11 1881 veor q3, q3, q11
1886 #ifndef BSAES_ASM_EXTENDED_KEY 1882 #ifndef BSAES_ASM_EXTENDED_KEY
1887 add r4, sp, #0x90 @ pass key schedule 1883 add r4, sp, #0x90 @ pass key schedule
1888 #else 1884 #else
1889 add r4, r10, #248 @ pass key schedule 1885 add r4, r10, #248 @ pass key schedule
1890 #endif 1886 #endif
1891 veor q4, q4, q12 1887 veor q4, q4, q12
1892 mov r5, r1 @ pass rounds 1888 mov r5, r1 @ pass rounds
1893 mov r0, sp 1889 mov r0, sp
1894 1890
1895 bl _bsaes_encrypt8 1891 bl _bsaes_encrypt8
1896 1892
1897 vld1.64 {q8,q9}, [r0,:128]! 1893 vld1.64 {q8,q9}, [r0,:128]!
1898 vld1.64 {q10,q11}, [r0,:128]! 1894 vld1.64 {q10,q11}, [r0,:128]!
1899 veor q0, q0, q8 1895 veor q0, q0, q8
1900 vld1.64 {q12}, [r0,:128]! 1896 vld1.64 {q12}, [r0,:128]!
1901 veor q1, q1, q9 1897 veor q1, q1, q9
1902 veor q8, q4, q10 1898 veor q8, q4, q10
1903 vst1.8 {q0,q1}, [r8]! 1899 vst1.8 {q0,q1}, [r8]!
1904 veor q9, q6, q11 1900 veor q9, q6, q11
1905 veor q10, q3, q12 1901 veor q10, q3, q12
1906 vst1.8 {q8,q9}, [r8]! 1902 vst1.8 {q8,q9}, [r8]!
1907 vst1.8 {q10}, [r8]! 1903 vst1.8 {q10}, [r8]!
1908 1904
1909 vld1.64 {q8}, [r0,:128] @ next round tweak 1905 vld1.64 {q8}, [r0,:128] @ next round tweak
1910 b .Lxts_enc_done 1906 b .Lxts_enc_done
1911 .align 4 1907 .align 4
1912 .Lxts_enc_4: 1908 .Lxts_enc_4:
1913 vst1.64 {q12}, [r0,:128] @ next round tweak
1914
1915 veor q2, q2, q10 1909 veor q2, q2, q10
1916 #ifndef BSAES_ASM_EXTENDED_KEY 1910 #ifndef BSAES_ASM_EXTENDED_KEY
1917 add r4, sp, #0x90 @ pass key schedule 1911 add r4, sp, #0x90 @ pass key schedule
1918 #else 1912 #else
1919 add r4, r10, #248 @ pass key schedule 1913 add r4, r10, #248 @ pass key schedule
1920 #endif 1914 #endif
1921 veor q3, q3, q11 1915 veor q3, q3, q11
1922 mov r5, r1 @ pass rounds 1916 mov r5, r1 @ pass rounds
1923 mov r0, sp 1917 mov r0, sp
1924 1918
1925 bl _bsaes_encrypt8 1919 bl _bsaes_encrypt8
1926 1920
1927 vld1.64 {q8,q9}, [r0,:128]! 1921 vld1.64 {q8,q9}, [r0,:128]!
1928 vld1.64 {q10,q11}, [r0,:128]! 1922 vld1.64 {q10,q11}, [r0,:128]!
1929 veor q0, q0, q8 1923 veor q0, q0, q8
1930 veor q1, q1, q9 1924 veor q1, q1, q9
1931 veor q8, q4, q10 1925 veor q8, q4, q10
1932 vst1.8 {q0,q1}, [r8]! 1926 vst1.8 {q0,q1}, [r8]!
1933 veor q9, q6, q11 1927 veor q9, q6, q11
1934 vst1.8 {q8,q9}, [r8]! 1928 vst1.8 {q8,q9}, [r8]!
1935 1929
1936 vld1.64 {q8}, [r0,:128] @ next round tweak 1930 vld1.64 {q8}, [r0,:128] @ next round tweak
1937 b .Lxts_enc_done 1931 b .Lxts_enc_done
1938 .align 4 1932 .align 4
1939 .Lxts_enc_3: 1933 .Lxts_enc_3:
1940 vst1.64 {q11}, [r0,:128] @ next round tweak
1941
1942 veor q1, q1, q9 1934 veor q1, q1, q9
1943 #ifndef BSAES_ASM_EXTENDED_KEY 1935 #ifndef BSAES_ASM_EXTENDED_KEY
1944 add r4, sp, #0x90 @ pass key schedule 1936 add r4, sp, #0x90 @ pass key schedule
1945 #else 1937 #else
1946 add r4, r10, #248 @ pass key schedule 1938 add r4, r10, #248 @ pass key schedule
1947 #endif 1939 #endif
1948 veor q2, q2, q10 1940 veor q2, q2, q10
1949 mov r5, r1 @ pass rounds 1941 mov r5, r1 @ pass rounds
1950 mov r0, sp 1942 mov r0, sp
1951 1943
1952 bl _bsaes_encrypt8 1944 bl _bsaes_encrypt8
1953 1945
1954 vld1.64 {q8,q9}, [r0,:128]! 1946 vld1.64 {q8,q9}, [r0,:128]!
1955 vld1.64 {q10}, [r0,:128]! 1947 vld1.64 {q10}, [r0,:128]!
1956 veor q0, q0, q8 1948 veor q0, q0, q8
1957 veor q1, q1, q9 1949 veor q1, q1, q9
1958 veor q8, q4, q10 1950 veor q8, q4, q10
1959 vst1.8 {q0,q1}, [r8]! 1951 vst1.8 {q0,q1}, [r8]!
1960 vst1.8 {q8}, [r8]! 1952 vst1.8 {q8}, [r8]!
1961 1953
1962 vld1.64 {q8}, [r0,:128] @ next round tweak 1954 vld1.64 {q8}, [r0,:128] @ next round tweak
1963 b .Lxts_enc_done 1955 b .Lxts_enc_done
1964 .align 4 1956 .align 4
1965 .Lxts_enc_2: 1957 .Lxts_enc_2:
1966 vst1.64 {q10}, [r0,:128] @ next round tweak
1967
1968 veor q0, q0, q8 1958 veor q0, q0, q8
1969 #ifndef BSAES_ASM_EXTENDED_KEY 1959 #ifndef BSAES_ASM_EXTENDED_KEY
1970 add r4, sp, #0x90 @ pass key schedule 1960 add r4, sp, #0x90 @ pass key schedule
1971 #else 1961 #else
1972 add r4, r10, #248 @ pass key schedule 1962 add r4, r10, #248 @ pass key schedule
1973 #endif 1963 #endif
1974 veor q1, q1, q9 1964 veor q1, q1, q9
1975 mov r5, r1 @ pass rounds 1965 mov r5, r1 @ pass rounds
1976 mov r0, sp 1966 mov r0, sp
1977 1967
1978 bl _bsaes_encrypt8 1968 bl _bsaes_encrypt8
1979 1969
1980 vld1.64 {q8,q9}, [r0,:128]! 1970 vld1.64 {q8,q9}, [r0,:128]!
1981 veor q0, q0, q8 1971 veor q0, q0, q8
1982 veor q1, q1, q9 1972 veor q1, q1, q9
1983 vst1.8 {q0,q1}, [r8]! 1973 vst1.8 {q0,q1}, [r8]!
1984 1974
1985 vld1.64 {q8}, [r0,:128] @ next round tweak 1975 vld1.64 {q8}, [r0,:128] @ next round tweak
1986 b .Lxts_enc_done 1976 b .Lxts_enc_done
1987 .align 4 1977 .align 4
1988 .Lxts_enc_1: 1978 .Lxts_enc_1:
1989 mov r0, sp 1979 mov r0, sp
1990 » veor» q0, q8 1980 » veor» q0, q0, q8
1991 mov r1, sp 1981 mov r1, sp
1992 vst1.8 {q0}, [sp,:128] 1982 vst1.8 {q0}, [sp,:128]
1993 mov r2, r10 1983 mov r2, r10
1994 mov r4, r3 @ preserve fp 1984 mov r4, r3 @ preserve fp
1995 1985
1996 bl AES_encrypt 1986 bl AES_encrypt
1997 1987
1998 vld1.8 {q0}, [sp,:128] 1988 vld1.8 {q0}, [sp,:128]
1999 veor q0, q0, q8 1989 veor q0, q0, q8
2000 vst1.8 {q0}, [r8]! 1990 vst1.8 {q0}, [r8]!
(...skipping 368 matching lines...) Expand 10 before | Expand all | Expand 10 after
2369 veor q9, q4, q11 2359 veor q9, q4, q11
2370 veor q10, q2, q12 2360 veor q10, q2, q12
2371 vst1.8 {q8,q9}, [r8]! 2361 vst1.8 {q8,q9}, [r8]!
2372 veor q11, q7, q13 2362 veor q11, q7, q13
2373 vst1.8 {q10,q11}, [r8]! 2363 vst1.8 {q10,q11}, [r8]!
2374 2364
2375 vld1.64 {q8}, [r0,:128] @ next round tweak 2365 vld1.64 {q8}, [r0,:128] @ next round tweak
2376 b .Lxts_dec_done 2366 b .Lxts_dec_done
2377 .align 4 2367 .align 4
2378 .Lxts_dec_5: 2368 .Lxts_dec_5:
2379 vst1.64 {q13}, [r0,:128] @ next round tweak
2380
2381 veor q3, q3, q11 2369 veor q3, q3, q11
2382 #ifndef BSAES_ASM_EXTENDED_KEY 2370 #ifndef BSAES_ASM_EXTENDED_KEY
2383 add r4, sp, #0x90 @ pass key schedule 2371 add r4, sp, #0x90 @ pass key schedule
2384 #else 2372 #else
2385 add r4, r10, #248 @ pass key schedule 2373 add r4, r10, #248 @ pass key schedule
2386 #endif 2374 #endif
2387 veor q4, q4, q12 2375 veor q4, q4, q12
2388 mov r5, r1 @ pass rounds 2376 mov r5, r1 @ pass rounds
2389 mov r0, sp 2377 mov r0, sp
2390 2378
2391 bl _bsaes_decrypt8 2379 bl _bsaes_decrypt8
2392 2380
2393 vld1.64 {q8,q9}, [r0,:128]! 2381 vld1.64 {q8,q9}, [r0,:128]!
2394 vld1.64 {q10,q11}, [r0,:128]! 2382 vld1.64 {q10,q11}, [r0,:128]!
2395 veor q0, q0, q8 2383 veor q0, q0, q8
2396 vld1.64 {q12}, [r0,:128]! 2384 vld1.64 {q12}, [r0,:128]!
2397 veor q1, q1, q9 2385 veor q1, q1, q9
2398 veor q8, q6, q10 2386 veor q8, q6, q10
2399 vst1.8 {q0,q1}, [r8]! 2387 vst1.8 {q0,q1}, [r8]!
2400 veor q9, q4, q11 2388 veor q9, q4, q11
2401 veor q10, q2, q12 2389 veor q10, q2, q12
2402 vst1.8 {q8,q9}, [r8]! 2390 vst1.8 {q8,q9}, [r8]!
2403 vst1.8 {q10}, [r8]! 2391 vst1.8 {q10}, [r8]!
2404 2392
2405 vld1.64 {q8}, [r0,:128] @ next round tweak 2393 vld1.64 {q8}, [r0,:128] @ next round tweak
2406 b .Lxts_dec_done 2394 b .Lxts_dec_done
2407 .align 4 2395 .align 4
2408 .Lxts_dec_4: 2396 .Lxts_dec_4:
2409 vst1.64 {q12}, [r0,:128] @ next round tweak
2410
2411 veor q2, q2, q10 2397 veor q2, q2, q10
2412 #ifndef BSAES_ASM_EXTENDED_KEY 2398 #ifndef BSAES_ASM_EXTENDED_KEY
2413 add r4, sp, #0x90 @ pass key schedule 2399 add r4, sp, #0x90 @ pass key schedule
2414 #else 2400 #else
2415 add r4, r10, #248 @ pass key schedule 2401 add r4, r10, #248 @ pass key schedule
2416 #endif 2402 #endif
2417 veor q3, q3, q11 2403 veor q3, q3, q11
2418 mov r5, r1 @ pass rounds 2404 mov r5, r1 @ pass rounds
2419 mov r0, sp 2405 mov r0, sp
2420 2406
2421 bl _bsaes_decrypt8 2407 bl _bsaes_decrypt8
2422 2408
2423 vld1.64 {q8,q9}, [r0,:128]! 2409 vld1.64 {q8,q9}, [r0,:128]!
2424 vld1.64 {q10,q11}, [r0,:128]! 2410 vld1.64 {q10,q11}, [r0,:128]!
2425 veor q0, q0, q8 2411 veor q0, q0, q8
2426 veor q1, q1, q9 2412 veor q1, q1, q9
2427 veor q8, q6, q10 2413 veor q8, q6, q10
2428 vst1.8 {q0,q1}, [r8]! 2414 vst1.8 {q0,q1}, [r8]!
2429 veor q9, q4, q11 2415 veor q9, q4, q11
2430 vst1.8 {q8,q9}, [r8]! 2416 vst1.8 {q8,q9}, [r8]!
2431 2417
2432 vld1.64 {q8}, [r0,:128] @ next round tweak 2418 vld1.64 {q8}, [r0,:128] @ next round tweak
2433 b .Lxts_dec_done 2419 b .Lxts_dec_done
2434 .align 4 2420 .align 4
2435 .Lxts_dec_3: 2421 .Lxts_dec_3:
2436 vst1.64 {q11}, [r0,:128] @ next round tweak
2437
2438 veor q1, q1, q9 2422 veor q1, q1, q9
2439 #ifndef BSAES_ASM_EXTENDED_KEY 2423 #ifndef BSAES_ASM_EXTENDED_KEY
2440 add r4, sp, #0x90 @ pass key schedule 2424 add r4, sp, #0x90 @ pass key schedule
2441 #else 2425 #else
2442 add r4, r10, #248 @ pass key schedule 2426 add r4, r10, #248 @ pass key schedule
2443 #endif 2427 #endif
2444 veor q2, q2, q10 2428 veor q2, q2, q10
2445 mov r5, r1 @ pass rounds 2429 mov r5, r1 @ pass rounds
2446 mov r0, sp 2430 mov r0, sp
2447 2431
2448 bl _bsaes_decrypt8 2432 bl _bsaes_decrypt8
2449 2433
2450 vld1.64 {q8,q9}, [r0,:128]! 2434 vld1.64 {q8,q9}, [r0,:128]!
2451 vld1.64 {q10}, [r0,:128]! 2435 vld1.64 {q10}, [r0,:128]!
2452 veor q0, q0, q8 2436 veor q0, q0, q8
2453 veor q1, q1, q9 2437 veor q1, q1, q9
2454 veor q8, q6, q10 2438 veor q8, q6, q10
2455 vst1.8 {q0,q1}, [r8]! 2439 vst1.8 {q0,q1}, [r8]!
2456 vst1.8 {q8}, [r8]! 2440 vst1.8 {q8}, [r8]!
2457 2441
2458 vld1.64 {q8}, [r0,:128] @ next round tweak 2442 vld1.64 {q8}, [r0,:128] @ next round tweak
2459 b .Lxts_dec_done 2443 b .Lxts_dec_done
2460 .align 4 2444 .align 4
2461 .Lxts_dec_2: 2445 .Lxts_dec_2:
2462 vst1.64 {q10}, [r0,:128] @ next round tweak
2463
2464 veor q0, q0, q8 2446 veor q0, q0, q8
2465 #ifndef BSAES_ASM_EXTENDED_KEY 2447 #ifndef BSAES_ASM_EXTENDED_KEY
2466 add r4, sp, #0x90 @ pass key schedule 2448 add r4, sp, #0x90 @ pass key schedule
2467 #else 2449 #else
2468 add r4, r10, #248 @ pass key schedule 2450 add r4, r10, #248 @ pass key schedule
2469 #endif 2451 #endif
2470 veor q1, q1, q9 2452 veor q1, q1, q9
2471 mov r5, r1 @ pass rounds 2453 mov r5, r1 @ pass rounds
2472 mov r0, sp 2454 mov r0, sp
2473 2455
2474 bl _bsaes_decrypt8 2456 bl _bsaes_decrypt8
2475 2457
2476 vld1.64 {q8,q9}, [r0,:128]! 2458 vld1.64 {q8,q9}, [r0,:128]!
2477 veor q0, q0, q8 2459 veor q0, q0, q8
2478 veor q1, q1, q9 2460 veor q1, q1, q9
2479 vst1.8 {q0,q1}, [r8]! 2461 vst1.8 {q0,q1}, [r8]!
2480 2462
2481 vld1.64 {q8}, [r0,:128] @ next round tweak 2463 vld1.64 {q8}, [r0,:128] @ next round tweak
2482 b .Lxts_dec_done 2464 b .Lxts_dec_done
2483 .align 4 2465 .align 4
2484 .Lxts_dec_1: 2466 .Lxts_dec_1:
2485 mov r0, sp 2467 mov r0, sp
2486 » veor» q0, q8 2468 » veor» q0, q0, q8
2487 mov r1, sp 2469 mov r1, sp
2488 vst1.8 {q0}, [sp,:128] 2470 vst1.8 {q0}, [sp,:128]
2471 mov r5, r2 @ preserve magic
2489 mov r2, r10 2472 mov r2, r10
2490 mov r4, r3 @ preserve fp 2473 mov r4, r3 @ preserve fp
2491 mov r5, r2 @ preserve magic
2492 2474
2493 bl AES_decrypt 2475 bl AES_decrypt
2494 2476
2495 vld1.8 {q0}, [sp,:128] 2477 vld1.8 {q0}, [sp,:128]
2496 veor q0, q0, q8 2478 veor q0, q0, q8
2497 vst1.8 {q0}, [r8]! 2479 vst1.8 {q0}, [r8]!
2498 mov r3, r4 2480 mov r3, r4
2499 mov r2, r5 2481 mov r2, r5
2500 2482
2501 vmov q8, q9 @ next round tweak 2483 vmov q8, q9 @ next round tweak
(...skipping 66 matching lines...) Expand 10 before | Expand all | Expand 10 after
2568 mov sp, r3 2550 mov sp, r3
2569 #ifdef XTS_CHAIN_TWEAK 2551 #ifdef XTS_CHAIN_TWEAK
2570 vst1.8 {q8}, [r1] 2552 vst1.8 {q8}, [r1]
2571 #endif 2553 #endif
2572 VFP_ABI_POP 2554 VFP_ABI_POP
2573 ldmia sp!, {r4,r5,r6,r7,r8,r9,r10, pc} @ return 2555 ldmia sp!, {r4,r5,r6,r7,r8,r9,r10, pc} @ return
2574 2556
2575 .size bsaes_xts_decrypt,.-bsaes_xts_decrypt 2557 .size bsaes_xts_decrypt,.-bsaes_xts_decrypt
2576 #endif 2558 #endif
2577 #endif 2559 #endif
OLDNEW
« no previous file with comments | « linux-arm/crypto/aes/aesv8-armx32.S ('k') | linux-arm/crypto/sha/sha256-armv4.S » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698