ec/asm/ecp_nistz256-x86_64.pl: /cmovb/cmovc/ as nasm doesn't recognize cmovb.
[openssl.git] / crypto / ec / asm / ecp_nistz256-x86_64.pl
index cc7b976ba73d1e8edfd8e6c9ce43778b111aaaf1..16b6639b542f0da74148ff0270c770a0a8c72d1c 100755 (executable)
@@ -156,12 +156,12 @@ ecp_nistz256_mul_by_2:
        sbb     8*3($a_ptr), $a3
        sbb     \$0, $t4
 
        sbb     8*3($a_ptr), $a3
        sbb     \$0, $t4
 
-       cmovb   $t0, $a0
-       cmovb   $t1, $a1
+       cmovc   $t0, $a0
+       cmovc   $t1, $a1
        mov     $a0, 8*0($r_ptr)
        mov     $a0, 8*0($r_ptr)
-       cmovb   $t2, $a2
+       cmovc   $t2, $a2
        mov     $a1, 8*1($r_ptr)
        mov     $a1, 8*1($r_ptr)
-       cmovb   $t3, $a3
+       cmovc   $t3, $a3
        mov     $a2, 8*2($r_ptr)
        mov     $a3, 8*3($r_ptr)
 
        mov     $a2, 8*2($r_ptr)
        mov     $a3, 8*3($r_ptr)
 
@@ -260,10 +260,10 @@ ecp_nistz256_mul_by_3:
        sbb     .Lpoly+8*3(%rip), $a3
        sbb     \$0, $t4
 
        sbb     .Lpoly+8*3(%rip), $a3
        sbb     \$0, $t4
 
-       cmovb   $t0, $a0
-       cmovb   $t1, $a1
-       cmovb   $t2, $a2
-       cmovb   $t3, $a3
+       cmovc   $t0, $a0
+       cmovc   $t1, $a1
+       cmovc   $t2, $a2
+       cmovc   $t3, $a3
 
        xor     $t4, $t4
        add     8*0($a_ptr), $a0        # a0:a3+=a_ptr[0:3]
 
        xor     $t4, $t4
        add     8*0($a_ptr), $a0        # a0:a3+=a_ptr[0:3]
@@ -282,12 +282,12 @@ ecp_nistz256_mul_by_3:
        sbb     .Lpoly+8*3(%rip), $a3
        sbb     \$0, $t4
 
        sbb     .Lpoly+8*3(%rip), $a3
        sbb     \$0, $t4
 
-       cmovb   $t0, $a0
-       cmovb   $t1, $a1
+       cmovc   $t0, $a0
+       cmovc   $t1, $a1
        mov     $a0, 8*0($r_ptr)
        mov     $a0, 8*0($r_ptr)
-       cmovb   $t2, $a2
+       cmovc   $t2, $a2
        mov     $a1, 8*1($r_ptr)
        mov     $a1, 8*1($r_ptr)
-       cmovb   $t3, $a3
+       cmovc   $t3, $a3
        mov     $a2, 8*2($r_ptr)
        mov     $a3, 8*3($r_ptr)
 
        mov     $a2, 8*2($r_ptr)
        mov     $a3, 8*3($r_ptr)
 
@@ -328,12 +328,12 @@ ecp_nistz256_add:
        sbb     8*3($a_ptr), $a3
        sbb     \$0, $t4
 
        sbb     8*3($a_ptr), $a3
        sbb     \$0, $t4
 
-       cmovb   $t0, $a0
-       cmovb   $t1, $a1
+       cmovc   $t0, $a0
+       cmovc   $t1, $a1
        mov     $a0, 8*0($r_ptr)
        mov     $a0, 8*0($r_ptr)
-       cmovb   $t2, $a2
+       cmovc   $t2, $a2
        mov     $a1, 8*1($r_ptr)
        mov     $a1, 8*1($r_ptr)
-       cmovb   $t3, $a3
+       cmovc   $t3, $a3
        mov     $a2, 8*2($r_ptr)
        mov     $a3, 8*3($r_ptr)
 
        mov     $a2, 8*2($r_ptr)
        mov     $a3, 8*3($r_ptr)
 
@@ -1908,12 +1908,12 @@ __ecp_nistz256_add_toq:
        sbb     $poly3, $a3
        sbb     \$0, $t4
 
        sbb     $poly3, $a3
        sbb     \$0, $t4
 
-       cmovb   $t0, $a0
-       cmovb   $t1, $a1
+       cmovc   $t0, $a0
+       cmovc   $t1, $a1
        mov     $a0, 8*0($r_ptr)
        mov     $a0, 8*0($r_ptr)
-       cmovb   $t2, $a2
+       cmovc   $t2, $a2
        mov     $a1, 8*1($r_ptr)
        mov     $a1, 8*1($r_ptr)
-       cmovb   $t3, $a3
+       cmovc   $t3, $a3
        mov     $a2, 8*2($r_ptr)
        mov     $a3, 8*3($r_ptr)
 
        mov     $a2, 8*2($r_ptr)
        mov     $a3, 8*3($r_ptr)
 
@@ -1998,12 +1998,12 @@ __ecp_nistz256_mul_by_2q:
        sbb     $poly3, $a3
        sbb     \$0, $t4
 
        sbb     $poly3, $a3
        sbb     \$0, $t4
 
-       cmovb   $t0, $a0
-       cmovb   $t1, $a1
+       cmovc   $t0, $a0
+       cmovc   $t1, $a1
        mov     $a0, 8*0($r_ptr)
        mov     $a0, 8*0($r_ptr)
-       cmovb   $t2, $a2
+       cmovc   $t2, $a2
        mov     $a1, 8*1($r_ptr)
        mov     $a1, 8*1($r_ptr)
-       cmovb   $t3, $a3
+       cmovc   $t3, $a3
        mov     $a2, 8*2($r_ptr)
        mov     $a3, 8*3($r_ptr)
 
        mov     $a2, 8*2($r_ptr)
        mov     $a3, 8*3($r_ptr)
 
@@ -2294,16 +2294,14 @@ $code.=<<___;
        mov     $b_org, $a_ptr                  # reassign
        movdqa  %xmm0, $in1_x(%rsp)
        movdqa  %xmm1, $in1_x+0x10(%rsp)
        mov     $b_org, $a_ptr                  # reassign
        movdqa  %xmm0, $in1_x(%rsp)
        movdqa  %xmm1, $in1_x+0x10(%rsp)
-       por     %xmm0, %xmm1
        movdqa  %xmm2, $in1_y(%rsp)
        movdqa  %xmm3, $in1_y+0x10(%rsp)
        movdqa  %xmm2, $in1_y(%rsp)
        movdqa  %xmm3, $in1_y+0x10(%rsp)
-       por     %xmm2, %xmm3
        movdqa  %xmm4, $in1_z(%rsp)
        movdqa  %xmm5, $in1_z+0x10(%rsp)
        movdqa  %xmm4, $in1_z(%rsp)
        movdqa  %xmm5, $in1_z+0x10(%rsp)
-       por     %xmm1, %xmm3
+       por     %xmm4, %xmm5
 
        movdqu  0x00($a_ptr), %xmm0             # copy  *(P256_POINT *)$b_ptr
 
        movdqu  0x00($a_ptr), %xmm0             # copy  *(P256_POINT *)$b_ptr
-        pshufd \$0xb1, %xmm3, %xmm5
+        pshufd \$0xb1, %xmm5, %xmm3
        movdqu  0x10($a_ptr), %xmm1
        movdqu  0x20($a_ptr), %xmm2
         por    %xmm3, %xmm5
        movdqu  0x10($a_ptr), %xmm1
        movdqu  0x20($a_ptr), %xmm2
         por    %xmm3, %xmm5
@@ -2315,14 +2313,14 @@ $code.=<<___;
        movdqa  %xmm0, $in2_x(%rsp)
         pshufd \$0x1e, %xmm5, %xmm4
        movdqa  %xmm1, $in2_x+0x10(%rsp)
        movdqa  %xmm0, $in2_x(%rsp)
         pshufd \$0x1e, %xmm5, %xmm4
        movdqa  %xmm1, $in2_x+0x10(%rsp)
-       por     %xmm0, %xmm1
-        movq   $r_ptr, %xmm0                   # save $r_ptr
+       movdqu  0x40($a_ptr),%xmm0              # in2_z again
+       movdqu  0x50($a_ptr),%xmm1
        movdqa  %xmm2, $in2_y(%rsp)
        movdqa  %xmm3, $in2_y+0x10(%rsp)
        movdqa  %xmm2, $in2_y(%rsp)
        movdqa  %xmm3, $in2_y+0x10(%rsp)
-       por     %xmm2, %xmm3
         por    %xmm4, %xmm5
         pxor   %xmm4, %xmm4
         por    %xmm4, %xmm5
         pxor   %xmm4, %xmm4
-       por     %xmm1, %xmm3
+       por     %xmm0, %xmm1
+        movq   $r_ptr, %xmm0                   # save $r_ptr
 
        lea     0x40-$bias($a_ptr), $a_ptr      # $a_ptr is still valid
         mov    $src0, $in2_z+8*0(%rsp)         # make in2_z copy
 
        lea     0x40-$bias($a_ptr), $a_ptr      # $a_ptr is still valid
         mov    $src0, $in2_z+8*0(%rsp)         # make in2_z copy
@@ -2333,8 +2331,8 @@ $code.=<<___;
        call    __ecp_nistz256_sqr_mont$x       # p256_sqr_mont(Z2sqr, in2_z);
 
        pcmpeqd %xmm4, %xmm5
        call    __ecp_nistz256_sqr_mont$x       # p256_sqr_mont(Z2sqr, in2_z);
 
        pcmpeqd %xmm4, %xmm5
-       pshufd  \$0xb1, %xmm3, %xmm4
-       por     %xmm3, %xmm4
+       pshufd  \$0xb1, %xmm1, %xmm4
+       por     %xmm1, %xmm4
        pshufd  \$0, %xmm5, %xmm5               # in1infty
        pshufd  \$0x1e, %xmm4, %xmm3
        por     %xmm3, %xmm4
        pshufd  \$0, %xmm5, %xmm5               # in1infty
        pshufd  \$0x1e, %xmm4, %xmm3
        por     %xmm3, %xmm4
@@ -2476,13 +2474,13 @@ $code.=<<___;
        sbb     $poly3, $acc3
        sbb     \$0, $t4
 
        sbb     $poly3, $acc3
        sbb     \$0, $t4
 
-       cmovb   $t0, $acc0
+       cmovc   $t0, $acc0
        mov     8*0($a_ptr), $t0
        mov     8*0($a_ptr), $t0
-       cmovb   $t1, $acc1
+       cmovc   $t1, $acc1
        mov     8*1($a_ptr), $t1
        mov     8*1($a_ptr), $t1
-       cmovb   $t2, $acc2
+       cmovc   $t2, $acc2
        mov     8*2($a_ptr), $t2
        mov     8*2($a_ptr), $t2
-       cmovb   $t3, $acc3
+       cmovc   $t3, $acc3
        mov     8*3($a_ptr), $t3
 
        call    __ecp_nistz256_sub$x            # p256_sub(res_x, Rsqr, Hsqr);
        mov     8*3($a_ptr), $t3
 
        call    __ecp_nistz256_sub$x            # p256_sub(res_x, Rsqr, Hsqr);
@@ -2666,16 +2664,14 @@ $code.=<<___;
         mov    0x40+8*3($a_ptr), $acc0
        movdqa  %xmm0, $in1_x(%rsp)
        movdqa  %xmm1, $in1_x+0x10(%rsp)
         mov    0x40+8*3($a_ptr), $acc0
        movdqa  %xmm0, $in1_x(%rsp)
        movdqa  %xmm1, $in1_x+0x10(%rsp)
-       por     %xmm0, %xmm1
        movdqa  %xmm2, $in1_y(%rsp)
        movdqa  %xmm3, $in1_y+0x10(%rsp)
        movdqa  %xmm2, $in1_y(%rsp)
        movdqa  %xmm3, $in1_y+0x10(%rsp)
-       por     %xmm2, %xmm3
        movdqa  %xmm4, $in1_z(%rsp)
        movdqa  %xmm5, $in1_z+0x10(%rsp)
        movdqa  %xmm4, $in1_z(%rsp)
        movdqa  %xmm5, $in1_z+0x10(%rsp)
-       por     %xmm1, %xmm3
+       por     %xmm4, %xmm5
 
        movdqu  0x00($b_ptr), %xmm0     # copy  *(P256_POINT_AFFINE *)$b_ptr
 
        movdqu  0x00($b_ptr), %xmm0     # copy  *(P256_POINT_AFFINE *)$b_ptr
-        pshufd \$0xb1, %xmm3, %xmm5
+        pshufd \$0xb1, %xmm5, %xmm3
        movdqu  0x10($b_ptr), %xmm1
        movdqu  0x20($b_ptr), %xmm2
         por    %xmm3, %xmm5
        movdqu  0x10($b_ptr), %xmm1
        movdqu  0x20($b_ptr), %xmm2
         por    %xmm3, %xmm5
@@ -2782,13 +2778,13 @@ $code.=<<___;
        sbb     $poly3, $acc3
        sbb     \$0, $t4
 
        sbb     $poly3, $acc3
        sbb     \$0, $t4
 
-       cmovb   $t0, $acc0
+       cmovc   $t0, $acc0
        mov     8*0($a_ptr), $t0
        mov     8*0($a_ptr), $t0
-       cmovb   $t1, $acc1
+       cmovc   $t1, $acc1
        mov     8*1($a_ptr), $t1
        mov     8*1($a_ptr), $t1
-       cmovb   $t2, $acc2
+       cmovc   $t2, $acc2
        mov     8*2($a_ptr), $t2
        mov     8*2($a_ptr), $t2
-       cmovb   $t3, $acc3
+       cmovc   $t3, $acc3
        mov     8*3($a_ptr), $t3
 
        call    __ecp_nistz256_sub$x            # p256_sub(res_x, Rsqr, Hsqr);
        mov     8*3($a_ptr), $t3
 
        call    __ecp_nistz256_sub$x            # p256_sub(res_x, Rsqr, Hsqr);
@@ -2942,12 +2938,12 @@ __ecp_nistz256_add_tox:
        sbb     $poly3, $a3
        sbb     \$0, $t4
 
        sbb     $poly3, $a3
        sbb     \$0, $t4
 
-       cmovb   $t0, $a0
-       cmovb   $t1, $a1
+       cmovc   $t0, $a0
+       cmovc   $t1, $a1
        mov     $a0, 8*0($r_ptr)
        mov     $a0, 8*0($r_ptr)
-       cmovb   $t2, $a2
+       cmovc   $t2, $a2
        mov     $a1, 8*1($r_ptr)
        mov     $a1, 8*1($r_ptr)
-       cmovb   $t3, $a3
+       cmovc   $t3, $a3
        mov     $a2, 8*2($r_ptr)
        mov     $a3, 8*3($r_ptr)
 
        mov     $a2, 8*2($r_ptr)
        mov     $a3, 8*3($r_ptr)
 
@@ -3037,12 +3033,12 @@ __ecp_nistz256_mul_by_2x:
        sbb     $poly3, $a3
        sbb     \$0, $t4
 
        sbb     $poly3, $a3
        sbb     \$0, $t4
 
-       cmovb   $t0, $a0
-       cmovb   $t1, $a1
+       cmovc   $t0, $a0
+       cmovc   $t1, $a1
        mov     $a0, 8*0($r_ptr)
        mov     $a0, 8*0($r_ptr)
-       cmovb   $t2, $a2
+       cmovc   $t2, $a2
        mov     $a1, 8*1($r_ptr)
        mov     $a1, 8*1($r_ptr)
-       cmovb   $t3, $a3
+       cmovc   $t3, $a3
        mov     $a2, 8*2($r_ptr)
        mov     $a3, 8*3($r_ptr)
 
        mov     $a2, 8*2($r_ptr)
        mov     $a3, 8*3($r_ptr)