# SHA1 block procedure for Alpha.
# On 21264 performance is 33% better than code generated by vendor
-# compiler, and 75% better than GCC [3.4]. Implementation features
-# vectorized byte swap, but not Xupdate.
+# compiler, and 75% better than GCC [3.4], and in absolute terms is
+# 8.7 cycles per processed byte. Implementation features vectorized
+# byte swap, but not Xupdate.
@X=( "\$0", "\$1", "\$2", "\$3", "\$4", "\$5", "\$6", "\$7",
"\$8", "\$9", "\$10", "\$11", "\$12", "\$13", "\$14", "\$15");
}
$code=<<___;
+#ifdef __linux__
+#include <asm/regdef.h>
+#else
#include <asm.h>
#include <regdef.h>
+#endif
.text
lda sp,64(sp)
ret (ra)
.end sha1_block_data_order
+.ascii "SHA1 block transform for Alpha, CRYPTOGAMS by <appro\@openssl.org>"
+.align 2
___
+$output=shift and open STDOUT,">$output";
print $code;
close STDOUT;