ARM64 assembly pack: make it Windows-friendly.
[openssl.git] / crypto / bn / asm / armv8-mont.pl
index c09c783..c755555 100755 (executable)
@@ -197,7 +197,7 @@ bn_mul_mont:
        mul     $nlo,$nj,$m1            // np[j]*m1
        adds    $lo1,$lo1,$lo0
        umulh   $nhi,$nj,$m1
        mul     $nlo,$nj,$m1            // np[j]*m1
        adds    $lo1,$lo1,$lo0
        umulh   $nhi,$nj,$m1
-       st    $lo1,[$tp,#-16]         // tp[j-1]
+       stur    $lo1,[$tp,#-16]         // tp[j-1]
        cbnz    $j,.Linner
 
 .Linner_skip:
        cbnz    $j,.Linner
 
 .Linner_skip:
@@ -253,13 +253,13 @@ bn_mul_mont:
        csel    $nj,$tj,$aj,lo          // did it borrow?
        ldr     $tj,[$tp],#8
        ldr     $aj,[$rp],#8
        csel    $nj,$tj,$aj,lo          // did it borrow?
        ldr     $tj,[$tp],#8
        ldr     $aj,[$rp],#8
-       st    xzr,[$tp,#-16]          // wipe tp
-       st    $nj,[$rp,#-16]
+       stur    xzr,[$tp,#-16]          // wipe tp
+       stur    $nj,[$rp,#-16]
        cbnz    $num,.Lcond_copy
 
        csel    $nj,$tj,$aj,lo
        cbnz    $num,.Lcond_copy
 
        csel    $nj,$tj,$aj,lo
-       st    xzr,[$tp,#-8]           // wipe tp
-       st    $nj,[$rp,#-8]
+       stur    xzr,[$tp,#-8]           // wipe tp
+       stur    $nj,[$rp,#-8]
 
        ldp     x19,x20,[x29,#16]
        mov     sp,x29
 
        ldp     x19,x20,[x29,#16]
        mov     sp,x29
@@ -596,7 +596,7 @@ __bn_sqr8x_mont:
        ldp     $a4,$a5,[$tp,#8*4]
        ldp     $a6,$a7,[$tp,#8*6]
        adds    $acc0,$acc0,$a0
        ldp     $a4,$a5,[$tp,#8*4]
        ldp     $a6,$a7,[$tp,#8*6]
        adds    $acc0,$acc0,$a0
-       ld    $n0,[$rp,#-8*8]
+       ldur    $n0,[$rp,#-8*8]
        adcs    $acc1,$acc1,$a1
        ldp     $a0,$a1,[$ap,#8*0]
        adcs    $acc2,$acc2,$a2
        adcs    $acc1,$acc1,$a1
        ldp     $a0,$a1,[$ap,#8*0]
        adcs    $acc2,$acc2,$a2
@@ -794,7 +794,7 @@ $code.=<<___;
        //adc   $carry,xzr,xzr          // moved below
        cbz     $cnt,.Lsqr8x8_post_condition
 
        //adc   $carry,xzr,xzr          // moved below
        cbz     $cnt,.Lsqr8x8_post_condition
 
-       ld    $n0,[$tp,#-8*8]
+       ldur    $n0,[$tp,#-8*8]
        ldp     $a0,$a1,[$np,#8*0]
        ldp     $a2,$a3,[$np,#8*2]
        ldp     $a4,$a5,[$np,#8*4]
        ldp     $a0,$a1,[$np,#8*0]
        ldp     $a2,$a3,[$np,#8*2]
        ldp     $a4,$a5,[$np,#8*4]
@@ -852,7 +852,7 @@ $code.=<<___;
        ldp     $a6,$a7,[$tp,#8*6]
        cbz     $cnt,.Lsqr8x_tail_break
 
        ldp     $a6,$a7,[$tp,#8*6]
        cbz     $cnt,.Lsqr8x_tail_break
 
-       ld    $n0,[$rp,#-8*8]
+       ldur    $n0,[$rp,#-8*8]
        adds    $acc0,$acc0,$a0
        adcs    $acc1,$acc1,$a1
        ldp     $a0,$a1,[$np,#8*0]
        adds    $acc0,$acc0,$a0
        adcs    $acc1,$acc1,$a1
        ldp     $a0,$a1,[$np,#8*0]