]> git.ipfire.org Git - thirdparty/openssl.git/blobdiff - crypto/sha/asm/sha512-586.pl
Remove filename argument to x86 asm_init.
[thirdparty/openssl.git] / crypto / sha / asm / sha512-586.pl
index 9fc792964f48c69286c53c335cc894c437c4492c..35006e8b9fbc8cd38d84def164c03169de01adfd 100644 (file)
@@ -1,4 +1,11 @@
-#!/usr/bin/env perl
+#! /usr/bin/env perl
+# Copyright 2007-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 <appro@openssl.org> for the OpenSSL
 # Sandy Bridge 58      -       35      11.9    11.2
 # Ivy Bridge   50      -       33      11.5    8.17
 # Haswell      46      -       29      11.3    7.66
+# Skylake      40      -       26      13.3    7.25
 # Bulldozer    121     -       50      14.0    13.5
 # VIA Nano     91      -       52      33      14.7
 # Atom         126     -       68      48(***) 14.7
+# Silvermont   97      -       58      42(***) 17.5
+# Goldmont     80      -       48      19.5    12.0
 #
 # (*)  whichever best applicable.
 # (**) x86_64 assembler performance is presented for reference
@@ -36,7 +46,7 @@
 #
 # IALU code-path is optimized for elder Pentiums. On vanilla Pentium
 # performance improvement over compiler generated code reaches ~60%,
-# while on PIII - ~35%. On newer µ-archs improvement varies from 15%
+# while on PIII - ~35%. On newer Âµ-archs improvement varies from 15%
 # to 50%, but it's less important as they are expected to execute SSE2
 # code-path, which is commonly ~2-3x faster [than compiler generated
 # code]. SSE2 code-path is as fast as original sha512-sse2.pl, even
@@ -49,7 +59,10 @@ $0 =~ m/(.*[\/\\])[^\/\\]+$/; $dir=$1;
 push(@INC,"${dir}","${dir}../../perlasm");
 require "x86asm.pl";
 
-&asm_init($ARGV[0],"sha512-586.pl",$ARGV[$#ARGV] eq "386");
+$output=pop;
+open STDOUT,">$output";
+
+&asm_init($ARGV[0],$ARGV[$#ARGV] eq "386");
 
 $sse2=0;
 for (@ARGV) { $sse2=1 if (/-DOPENSSL_IA32_SSE2/); }
@@ -372,7 +385,7 @@ if ($sse2) {
 
 &set_label("16_79_sse2",16);
     for ($j=0;$j<2;$j++) {                     # 2x unroll
-       #&movq  ("mm7",&QWP(8*(9+16-1),"esp")); # prefetched in BODY_00_15 
+       #&movq  ("mm7",&QWP(8*(9+16-1),"esp")); # prefetched in BODY_00_15
        &movq   ("mm5",&QWP(8*(9+16-14),"esp"));
        &movq   ("mm1","mm7");
        &psrlq  ("mm7",1);
@@ -908,3 +921,5 @@ sub BODY_00_15_ssse3 {              # "phase-less" copy of BODY_00_15_sse2
 &asciz("SHA512 block transform for x86, CRYPTOGAMS by <appro\@openssl.org>");
 
 &asm_finish();
+
+close STDOUT;