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: third_party/boringssl/linux-arm/crypto/sha/sha256-armv4.S

Issue 862133002: Update from https://crrev.com/312398 (Closed) Base URL: git@github.com:domokit/mojo.git@master
Patch Set: Created 5 years, 11 months 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
OLDNEW
1 #if defined(__arm__)
2 #include "arm_arch.h" 1 #include "arm_arch.h"
3 2
4 .text 3 .text
5 .code 32 4 .code 32
6 5
7 .type K256,%object 6 .type K256,%object
8 .align 5 7 .align 5
9 K256: 8 K256:
10 .word 0x428a2f98,0x71374491,0xb5c0fbcf,0xe9b5dba5 9 .word 0x428a2f98,0x71374491,0xb5c0fbcf,0xe9b5dba5
11 .word 0x3956c25b,0x59f111f1,0x923f82a4,0xab1c5ed5 10 .word 0x3956c25b,0x59f111f1,0x923f82a4,0xab1c5ed5
12 .word 0xd807aa98,0x12835b01,0x243185be,0x550c7dc3 11 .word 0xd807aa98,0x12835b01,0x243185be,0x550c7dc3
13 .word 0x72be5d74,0x80deb1fe,0x9bdc06a7,0xc19bf174 12 .word 0x72be5d74,0x80deb1fe,0x9bdc06a7,0xc19bf174
14 .word 0xe49b69c1,0xefbe4786,0x0fc19dc6,0x240ca1cc 13 .word 0xe49b69c1,0xefbe4786,0x0fc19dc6,0x240ca1cc
15 .word 0x2de92c6f,0x4a7484aa,0x5cb0a9dc,0x76f988da 14 .word 0x2de92c6f,0x4a7484aa,0x5cb0a9dc,0x76f988da
16 .word 0x983e5152,0xa831c66d,0xb00327c8,0xbf597fc7 15 .word 0x983e5152,0xa831c66d,0xb00327c8,0xbf597fc7
17 .word 0xc6e00bf3,0xd5a79147,0x06ca6351,0x14292967 16 .word 0xc6e00bf3,0xd5a79147,0x06ca6351,0x14292967
18 .word 0x27b70a85,0x2e1b2138,0x4d2c6dfc,0x53380d13 17 .word 0x27b70a85,0x2e1b2138,0x4d2c6dfc,0x53380d13
19 .word 0x650a7354,0x766a0abb,0x81c2c92e,0x92722c85 18 .word 0x650a7354,0x766a0abb,0x81c2c92e,0x92722c85
20 .word 0xa2bfe8a1,0xa81a664b,0xc24b8b70,0xc76c51a3 19 .word 0xa2bfe8a1,0xa81a664b,0xc24b8b70,0xc76c51a3
21 .word 0xd192e819,0xd6990624,0xf40e3585,0x106aa070 20 .word 0xd192e819,0xd6990624,0xf40e3585,0x106aa070
22 .word 0x19a4c116,0x1e376c08,0x2748774c,0x34b0bcb5 21 .word 0x19a4c116,0x1e376c08,0x2748774c,0x34b0bcb5
23 .word 0x391c0cb3,0x4ed8aa4a,0x5b9cca4f,0x682e6ff3 22 .word 0x391c0cb3,0x4ed8aa4a,0x5b9cca4f,0x682e6ff3
24 .word 0x748f82ee,0x78a5636f,0x84c87814,0x8cc70208 23 .word 0x748f82ee,0x78a5636f,0x84c87814,0x8cc70208
25 .word 0x90befffa,0xa4506ceb,0xbef9a3f7,0xc67178f2 24 .word 0x90befffa,0xa4506ceb,0xbef9a3f7,0xc67178f2
26 .size K256,.-K256 25 .size K256,.-K256
27 .word 0 @ terminator 26 .word 0 @ terminator
27 #if __ARM_MAX_ARCH__>=7
28 .LOPENSSL_armcap: 28 .LOPENSSL_armcap:
29 .word OPENSSL_armcap_P-sha256_block_data_order 29 .word OPENSSL_armcap_P-sha256_block_data_order
30 #endif
30 .align 5 31 .align 5
31 32
32 .global sha256_block_data_order 33 .global sha256_block_data_order
33 .hidden sha256_block_data_order
34 .type sha256_block_data_order,%function 34 .type sha256_block_data_order,%function
35 sha256_block_data_order: 35 sha256_block_data_order:
36 sub r3,pc,#8 @ sha256_block_data_order 36 sub r3,pc,#8 @ sha256_block_data_order
37 add r2,r1,r2,lsl#6 @ len to point at the end of inp 37 add r2,r1,r2,lsl#6 @ len to point at the end of inp
38 #if __ARM_ARCH__>=7 38 #if __ARM_MAX_ARCH__>=7
39 ldr r12,.LOPENSSL_armcap 39 ldr r12,.LOPENSSL_armcap
40 ldr r12,[r3,r12] @ OPENSSL_armcap_P 40 ldr r12,[r3,r12] @ OPENSSL_armcap_P
41 » tst» r12,#1 41 » tst» r12,#ARMV8_SHA256
42 » bne» .LARMv8
43 » tst» r12,#ARMV7_NEON
42 bne .LNEON 44 bne .LNEON
43 #endif 45 #endif
44 stmdb sp!,{r0,r1,r2,r4-r11,lr} 46 stmdb sp!,{r0,r1,r2,r4-r11,lr}
45 ldmia r0,{r4,r5,r6,r7,r8,r9,r10,r11} 47 ldmia r0,{r4,r5,r6,r7,r8,r9,r10,r11}
46 sub r14,r3,#256+32 @ K256 48 sub r14,r3,#256+32 @ K256
47 sub sp,sp,#16*4 @ alloca(X[16]) 49 sub sp,sp,#16*4 @ alloca(X[16])
48 .Loop: 50 .Loop:
49 # if __ARM_ARCH__>=7 51 # if __ARM_ARCH__>=7
50 ldr r2,[r1],#4 52 ldr r2,[r1],#4
51 # else 53 # else
(...skipping 1711 matching lines...) Expand 10 before | Expand all | Expand 10 after
1763 1765
1764 add sp,sp,#19*4 @ destroy frame 1766 add sp,sp,#19*4 @ destroy frame
1765 #if __ARM_ARCH__>=5 1767 #if __ARM_ARCH__>=5
1766 ldmia sp!,{r4-r11,pc} 1768 ldmia sp!,{r4-r11,pc}
1767 #else 1769 #else
1768 ldmia sp!,{r4-r11,lr} 1770 ldmia sp!,{r4-r11,lr}
1769 tst lr,#1 1771 tst lr,#1
1770 moveq pc,lr @ be binary compatible with V4, yet 1772 moveq pc,lr @ be binary compatible with V4, yet
1771 .word 0xe12fff1e @ interoperable with Thumb ISA:- ) 1773 .word 0xe12fff1e @ interoperable with Thumb ISA:- )
1772 #endif 1774 #endif
1773 #if __ARM_ARCH__>=7 1775 .size» sha256_block_data_order,.-sha256_block_data_order
1776 #if __ARM_MAX_ARCH__>=7
1777 .arch» armv7-a
1774 .fpu neon 1778 .fpu neon
1779
1780 .type sha256_block_data_order_neon,%function
1775 .align 4 1781 .align 4
1782 sha256_block_data_order_neon:
1776 .LNEON: 1783 .LNEON:
1777 stmdb sp!,{r4-r12,lr} 1784 stmdb sp!,{r4-r12,lr}
1778 1785
1779 mov r12,sp 1786 mov r12,sp
1780 sub sp,sp,#16*4+16 @ alloca 1787 sub sp,sp,#16*4+16 @ alloca
1781 sub r14,r3,#256+32 @ K256 1788 sub r14,r3,#256+32 @ K256
1782 bic sp,sp,#15 @ align for 128-bit stores 1789 bic sp,sp,#15 @ align for 128-bit stores
1783 1790
1784 vld1.8 {q0},[r1]! 1791 vld1.8 {q0},[r1]!
1785 vld1.8 {q1},[r1]! 1792 vld1.8 {q1},[r1]!
(...skipping 750 matching lines...) Expand 10 before | Expand all | Expand 10 after
2536 stmia r2,{r8-r11} 2543 stmia r2,{r8-r11}
2537 2544
2538 movne r1,sp 2545 movne r1,sp
2539 ldrne r2,[sp,#0] 2546 ldrne r2,[sp,#0]
2540 eorne r12,r12,r12 2547 eorne r12,r12,r12
2541 ldreq sp,[sp,#76] @ restore original sp 2548 ldreq sp,[sp,#76] @ restore original sp
2542 eorne r3,r5,r6 2549 eorne r3,r5,r6
2543 bne .L_00_48 2550 bne .L_00_48
2544 2551
2545 ldmia sp!,{r4-r12,pc} 2552 ldmia sp!,{r4-r12,pc}
2553 .size sha256_block_data_order_neon,.-sha256_block_data_order_neon
2546 #endif 2554 #endif
2547 .size sha256_block_data_order,.-sha256_block_data_order 2555 #if __ARM_MAX_ARCH__>=7
2548 .asciz "SHA256 block transform for ARMv4/NEON, CRYPTOGAMS by <appro@openssl.org >" 2556 .type» sha256_block_data_order_armv8,%function
2557 .align» 5
2558 sha256_block_data_order_armv8:
2559 .LARMv8:
2560 » vld1.32»{q0,q1},[r0]
2561 » sub» r3,r3,#sha256_block_data_order-K256
2562
2563 .Loop_v8:
2564 » vld1.8» » {q8-q9},[r1]!
2565 » vld1.8» » {q10-q11},[r1]!
2566 » vld1.32»» {q12},[r3]!
2567 » vrev32.8» q8,q8
2568 » vrev32.8» q9,q9
2569 » vrev32.8» q10,q10
2570 » vrev32.8» q11,q11
2571 » vmov» » q14,q0» @ offload
2572 » vmov» » q15,q1
2573 » teq» » r1,r2
2574 » vld1.32»» {q13},[r3]!
2575 » vadd.i32» q12,q12,q8
2576 » .byte» 0xe2,0x03,0xfa,0xf3» @ sha256su0 q8,q9
2577 » vmov» » q2,q0
2578 » .byte» 0x68,0x0c,0x02,0xf3» @ sha256h q0,q1,q12
2579 » .byte» 0x68,0x2c,0x14,0xf3» @ sha256h2 q1,q2,q12
2580 » .byte» 0xe6,0x0c,0x64,0xf3» @ sha256su1 q8,q10,q11
2581 » vld1.32»» {q12},[r3]!
2582 » vadd.i32» q13,q13,q9
2583 » .byte» 0xe4,0x23,0xfa,0xf3» @ sha256su0 q9,q10
2584 » vmov» » q2,q0
2585 » .byte» 0x6a,0x0c,0x02,0xf3» @ sha256h q0,q1,q13
2586 » .byte» 0x6a,0x2c,0x14,0xf3» @ sha256h2 q1,q2,q13
2587 » .byte» 0xe0,0x2c,0x66,0xf3» @ sha256su1 q9,q11,q8
2588 » vld1.32»» {q13},[r3]!
2589 » vadd.i32» q12,q12,q10
2590 » .byte» 0xe6,0x43,0xfa,0xf3» @ sha256su0 q10,q11
2591 » vmov» » q2,q0
2592 » .byte» 0x68,0x0c,0x02,0xf3» @ sha256h q0,q1,q12
2593 » .byte» 0x68,0x2c,0x14,0xf3» @ sha256h2 q1,q2,q12
2594 » .byte» 0xe2,0x4c,0x60,0xf3» @ sha256su1 q10,q8,q9
2595 » vld1.32»» {q12},[r3]!
2596 » vadd.i32» q13,q13,q11
2597 » .byte» 0xe0,0x63,0xfa,0xf3» @ sha256su0 q11,q8
2598 » vmov» » q2,q0
2599 » .byte» 0x6a,0x0c,0x02,0xf3» @ sha256h q0,q1,q13
2600 » .byte» 0x6a,0x2c,0x14,0xf3» @ sha256h2 q1,q2,q13
2601 » .byte» 0xe4,0x6c,0x62,0xf3» @ sha256su1 q11,q9,q10
2602 » vld1.32»» {q13},[r3]!
2603 » vadd.i32» q12,q12,q8
2604 » .byte» 0xe2,0x03,0xfa,0xf3» @ sha256su0 q8,q9
2605 » vmov» » q2,q0
2606 » .byte» 0x68,0x0c,0x02,0xf3» @ sha256h q0,q1,q12
2607 » .byte» 0x68,0x2c,0x14,0xf3» @ sha256h2 q1,q2,q12
2608 » .byte» 0xe6,0x0c,0x64,0xf3» @ sha256su1 q8,q10,q11
2609 » vld1.32»» {q12},[r3]!
2610 » vadd.i32» q13,q13,q9
2611 » .byte» 0xe4,0x23,0xfa,0xf3» @ sha256su0 q9,q10
2612 » vmov» » q2,q0
2613 » .byte» 0x6a,0x0c,0x02,0xf3» @ sha256h q0,q1,q13
2614 » .byte» 0x6a,0x2c,0x14,0xf3» @ sha256h2 q1,q2,q13
2615 » .byte» 0xe0,0x2c,0x66,0xf3» @ sha256su1 q9,q11,q8
2616 » vld1.32»» {q13},[r3]!
2617 » vadd.i32» q12,q12,q10
2618 » .byte» 0xe6,0x43,0xfa,0xf3» @ sha256su0 q10,q11
2619 » vmov» » q2,q0
2620 » .byte» 0x68,0x0c,0x02,0xf3» @ sha256h q0,q1,q12
2621 » .byte» 0x68,0x2c,0x14,0xf3» @ sha256h2 q1,q2,q12
2622 » .byte» 0xe2,0x4c,0x60,0xf3» @ sha256su1 q10,q8,q9
2623 » vld1.32»» {q12},[r3]!
2624 » vadd.i32» q13,q13,q11
2625 » .byte» 0xe0,0x63,0xfa,0xf3» @ sha256su0 q11,q8
2626 » vmov» » q2,q0
2627 » .byte» 0x6a,0x0c,0x02,0xf3» @ sha256h q0,q1,q13
2628 » .byte» 0x6a,0x2c,0x14,0xf3» @ sha256h2 q1,q2,q13
2629 » .byte» 0xe4,0x6c,0x62,0xf3» @ sha256su1 q11,q9,q10
2630 » vld1.32»» {q13},[r3]!
2631 » vadd.i32» q12,q12,q8
2632 » .byte» 0xe2,0x03,0xfa,0xf3» @ sha256su0 q8,q9
2633 » vmov» » q2,q0
2634 » .byte» 0x68,0x0c,0x02,0xf3» @ sha256h q0,q1,q12
2635 » .byte» 0x68,0x2c,0x14,0xf3» @ sha256h2 q1,q2,q12
2636 » .byte» 0xe6,0x0c,0x64,0xf3» @ sha256su1 q8,q10,q11
2637 » vld1.32»» {q12},[r3]!
2638 » vadd.i32» q13,q13,q9
2639 » .byte» 0xe4,0x23,0xfa,0xf3» @ sha256su0 q9,q10
2640 » vmov» » q2,q0
2641 » .byte» 0x6a,0x0c,0x02,0xf3» @ sha256h q0,q1,q13
2642 » .byte» 0x6a,0x2c,0x14,0xf3» @ sha256h2 q1,q2,q13
2643 » .byte» 0xe0,0x2c,0x66,0xf3» @ sha256su1 q9,q11,q8
2644 » vld1.32»» {q13},[r3]!
2645 » vadd.i32» q12,q12,q10
2646 » .byte» 0xe6,0x43,0xfa,0xf3» @ sha256su0 q10,q11
2647 » vmov» » q2,q0
2648 » .byte» 0x68,0x0c,0x02,0xf3» @ sha256h q0,q1,q12
2649 » .byte» 0x68,0x2c,0x14,0xf3» @ sha256h2 q1,q2,q12
2650 » .byte» 0xe2,0x4c,0x60,0xf3» @ sha256su1 q10,q8,q9
2651 » vld1.32»» {q12},[r3]!
2652 » vadd.i32» q13,q13,q11
2653 » .byte» 0xe0,0x63,0xfa,0xf3» @ sha256su0 q11,q8
2654 » vmov» » q2,q0
2655 » .byte» 0x6a,0x0c,0x02,0xf3» @ sha256h q0,q1,q13
2656 » .byte» 0x6a,0x2c,0x14,0xf3» @ sha256h2 q1,q2,q13
2657 » .byte» 0xe4,0x6c,0x62,0xf3» @ sha256su1 q11,q9,q10
2658 » vld1.32»» {q13},[r3]!
2659 » vadd.i32» q12,q12,q8
2660 » vmov» » q2,q0
2661 » .byte» 0x68,0x0c,0x02,0xf3» @ sha256h q0,q1,q12
2662 » .byte» 0x68,0x2c,0x14,0xf3» @ sha256h2 q1,q2,q12
2663
2664 » vld1.32»» {q12},[r3]!
2665 » vadd.i32» q13,q13,q9
2666 » vmov» » q2,q0
2667 » .byte» 0x6a,0x0c,0x02,0xf3» @ sha256h q0,q1,q13
2668 » .byte» 0x6a,0x2c,0x14,0xf3» @ sha256h2 q1,q2,q13
2669
2670 » vld1.32»» {q13},[r3]
2671 » vadd.i32» q12,q12,q10
2672 » sub» » r3,r3,#256-16» @ rewind
2673 » vmov» » q2,q0
2674 » .byte» 0x68,0x0c,0x02,0xf3» @ sha256h q0,q1,q12
2675 » .byte» 0x68,0x2c,0x14,0xf3» @ sha256h2 q1,q2,q12
2676
2677 » vadd.i32» q13,q13,q11
2678 » vmov» » q2,q0
2679 » .byte» 0x6a,0x0c,0x02,0xf3» @ sha256h q0,q1,q13
2680 » .byte» 0x6a,0x2c,0x14,0xf3» @ sha256h2 q1,q2,q13
2681
2682 » vadd.i32» q0,q0,q14
2683 » vadd.i32» q1,q1,q15
2684 » bne» » .Loop_v8
2685
2686 » vst1.32»» {q0,q1},[r0]
2687
2688 » bx» lr» » @ bx lr
2689 .size» sha256_block_data_order_armv8,.-sha256_block_data_order_armv8
2690 #endif
2691 .asciz "SHA256 block transform for ARMv4/NEON/ARMv8, CRYPTOGAMS by <appro@opens sl.org>"
2549 .align 2 2692 .align 2
2693 #if __ARM_MARCH_ARCH__>=7
2550 .comm OPENSSL_armcap_P,4,4 2694 .comm OPENSSL_armcap_P,4,4
2551
2552 #endif 2695 #endif
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698