# ====================================================================
# Written by David S. Miller <davem@devemloft.net> and Andy Polyakov
# <appro@openssl.org>. The module is licensed under 2-clause BSD
# license. March 2013. All rights reserved.
# ====================================================================
######################################################################
# DES for SPARC T4.
#
# As with other hardware-assisted ciphers CBC encrypt results [for
# aligned data] are virtually identical to critical path lengths:
#
# DES Triple-DES
# CBC encrypt 4.14/4.15(*) 11.7/11.7
# CBC decrypt 1.77/4.11(**) 6.42/7.47
#
# (*) numbers after slash are for
# misaligned data;
# (**) this is result for largest
# block size, unlike all other
# cases smaller blocks results
# are better[?];
require "sparcv9_modes.pl";
#include <openssl/fipssyms.h>
.text
.align 32
}
.align 32
cmp $len, 0
4:
.align 16
! and ~4x deterioration
.align 32
cmp $len, 0
4:
.align 16
! and ~4x deterioration
# pairs between EDE passes. Indeed, aren't they inverse of each other?
# They almost are. Outcome of the pair is 32-bit words being swapped
# perform the due swap, it's actually fastest way in this case.
.align 32
cmp $len, 0
4:
.align 16
! and ~2x deterioration
.align 32
cmp $len, 0
4:
.align 16
! and ~3x deterioration
}
.asciz "DES for SPARC T4, David S. Miller, Andy Polyakov"
.align 4
&emit_assembler();
close STDOUT;