X-Git-Url: https://git.librecmc.org/?a=blobdiff_plain;f=crypto%2Fbn%2Fasm%2Fbn-c64xplus.asm;h=de6d37728fbac7ea0c6aa3301a2aa6c33ec5b15f;hb=77b072504ec464eac5e0f9aab19cadb9c4e311d1;hp=f07b09e439bb2f2d6363761fe812af2de0dee586;hpb=904732f68bcc6ebd3f8961a9272bc811dc26bcbd;p=oweals%2Fopenssl.git diff --git a/crypto/bn/asm/bn-c64xplus.asm b/crypto/bn/asm/bn-c64xplus.asm index f07b09e439..de6d37728f 100644 --- a/crypto/bn/asm/bn-c64xplus.asm +++ b/crypto/bn/asm/bn-c64xplus.asm @@ -1,3 +1,10 @@ +;; Copyright 2012-2016 The OpenSSL Project Authors. All Rights Reserved. +;; +;; Licensed under the OpenSSL license (the "License"). You may not use +;; this file except in compliance with the License. You can obtain a copy +;; in the file LICENSE in the source distribution or at +;; https://www.openssl.org/source/license.html +;; ;;==================================================================== ;; Written by Andy Polyakov for the OpenSSL ;; project. @@ -12,6 +19,10 @@ ;; SPLOOPs spin at ... 2*n cycles [plus epilogue]. ;;==================================================================== .text + + .if .ASSEMBLER_VERSION<7000000 + .asg 0,__TI_EABI__ + .endif .if __TI_EABI__ .asg bn_mul_add_words,_bn_mul_add_words .asg bn_mul_words,_bn_mul_words @@ -280,8 +291,9 @@ _bn_mul_comba4: .if 0 BNOP sploopNxM?,3 ;; Above mentioned m*2*(n+1)+10 does not apply in n=m=4 case, - ;; because of read-after-write penalties, it's rather - ;; n*2*(n+3)+10, or 66 cycles [plus various overheads]... + ;; because of low-counter effect, when prologue phase finishes + ;; before SPKERNEL instruction is reached. As result it's 25% + ;; slower than expected... MVK 4,B0 ; N, RILC || MVK 4,A0 ; M, outer loop counter || MV ARG1,A5 ; copy ap