progs/perftest.c: Use from Glibc syscall numbers.
[catacomb] / symm / salsa20-arm-neon.S
index 9725e8a..519f8a3 100644 (file)
@@ -85,33 +85,29 @@ FUNC(salsa20_core_arm_neon)
        // b ^= (a + d) <<<  7
        vadd.u32 q0, q12, q15
        vshl.u32 q1, q0, #7
-       vshr.u32 q0, q0, #25
-       vorr    q0, q0, q1
-       veor    q9, q13, q0
+       vsri.u32 q1, q0, #25
+       veor    q9, q13, q1
 
        // c ^= (b + a) <<<  9
        vadd.u32 q0, q9, q12
        vshl.u32 q1, q0, #9
-       vshr.u32 q0, q0, #23
-       vorr    q0, q0, q1
-       veor    q10, q14, q0
+       vsri.u32 q1, q0, #23
+       veor    q10, q14, q1
 
        // d ^= (c + b) <<< 13
        vadd.u32 q0, q10, q9
-       vext.32 q9, q9, q9, #3
+        vext.32 q9, q9, q9, #3
        vshl.u32 q1, q0, #13
-       vshr.u32 q0, q0, #19
-       vorr    q0, q0, q1
-       veor    q11, q15, q0
+       vsri.u32 q1, q0, #19
+       veor    q11, q15, q1
 
        // a ^= (d + c) <<< 18
        vadd.u32 q0, q11, q10
-       vext.32 q10, q10, q10, #2
-       vext.32 q11, q11, q11, #1
+        vext.32 q10, q10, q10, #2
+        vext.32 q11, q11, q11, #1
        vshl.u32 q1, q0, #18
-       vshr.u32 q0, q0, #14
-       vorr    q0, q0, q1
-       veor    q8, q12, q0
+       vsri.u32 q1, q0, #14
+       veor    q8, q12, q1
 
 0:
        // The transpose conveniently only involves reordering elements of
@@ -132,33 +128,29 @@ FUNC(salsa20_core_arm_neon)
        // b ^= (a + d) <<<  7
        vadd.u32 q0, q8, q9
        vshl.u32 q1, q0, #7
-       vshr.u32 q0, q0, #25
-       vorr    q0, q0, q1
-       veor    q11, q11, q0
+       vsri.u32 q1, q0, #25
+       veor    q11, q11, q1
 
        // c ^= (b + a) <<<  9
        vadd.u32 q0, q11, q8
        vshl.u32 q1, q0, #9
-       vshr.u32 q0, q0, #23
-       vorr    q0, q0, q1
-       veor    q10, q10, q0
+       vsri.u32 q1, q0, #23
+       veor    q10, q10, q1
 
        // d ^= (c + b) <<< 13
        vadd.u32 q0, q10, q11
         vext.32 q11, q11, q11, #3
        vshl.u32 q1, q0, #13
-       vshr.u32 q0, q0, #19
-       vorr    q0, q0, q1
-       veor    q9, q9, q0
+       vsri.u32 q1, q0, #19
+       veor    q9, q9, q1
 
        // a ^= (d + c) <<< 18
        vadd.u32 q0, q9, q10
         vext.32 q10, q10, q10, #2
         vext.32 q9, q9, q9, #1
        vshl.u32 q1, q0, #18
-       vshr.u32 q0, q0, #14
-       vorr    q0, q0, q1
-       veor    q8, q8, q0
+       vsri.u32 q1, q0, #14
+       veor    q8, q8, q1
 
        // We had to undo the transpose ready for the next loop.  Again, push
        // back the reorderings to reduce latency.  Decrement the loop
@@ -171,40 +163,36 @@ FUNC(salsa20_core_arm_neon)
        // b ^= (a + d) <<<  7
        vadd.u32 q0, q8, q11
        vshl.u32 q1, q0, #7
-       vshr.u32 q0, q0, #25
-       vorr    q0, q0, q1
-       veor    q9, q9, q0
+       vsri.u32 q1, q0, #25
+       veor    q9, q9, q1
 
        // c ^= (b + a) <<<  9
        vadd.u32 q0, q9, q8
        vshl.u32 q1, q0, #9
-       vshr.u32 q0, q0, #23
-       vorr    q0, q0, q1
-       veor    q10, q10, q0
+       vsri.u32 q1, q0, #23
+       veor    q10, q10, q1
 
        // d ^= (c + b) <<< 13
        vadd.u32 q0, q10, q9
         vext.32 q9, q9, q9, #3
        vshl.u32 q1, q0, #13
-       vshr.u32 q0, q0, #19
-       vorr    q0, q0, q1
-       veor    q11, q11, q0
+       vsri.u32 q1, q0, #19
+       veor    q11, q11, q1
 
        // a ^= (d + c) <<< 18
        vadd.u32 q0, q11, q10
         vext.32 q10, q10, q10, #2
         vext.32 q11, q11, q11, #1
        vshl.u32 q1, q0, #18
-       vshr.u32 q0, q0, #14
-       vorr    q0, q0, q1
-       veor    q8, q8, q0
+       vsri.u32 q1, q0, #14
+       veor    q8, q8, q1
 
        b       0b
 
        // Almost there.  Firstly the feedfoward addition.  Also, establish a
        // constant which will be useful later.
 9:     vadd.u32 q0, q8, q12                    //  0,  5, 10, 15
-        vmov.i64 q12, #0xffffffff              // = (-1, 0, -1, 0)
+        vmov.i64 q12, #0xffffffff              // = (0, -1; 0, -1)
        vadd.u32 q1, q9, q13                    //  4,  9, 14,  3
        vadd.u32 q2, q10, q14                   //  8, 13,  2,  7
        vadd.u32 q3, q11, q15                   // 12,  1,  6, 11