Source-Changes-D archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

Re: CVS commit: src/crypto/external/bsd/openssl/lib/libcrypto/arch



On Fri, Jul 22, 2011 at 10:50:56PM +0000, Jean-Yves Migeon wrote:
> Module Name:  src
> Committed By: jym
> Date:         Fri Jul 22 22:50:56 UTC 2011
> 
> Modified Files:
>       src/crypto/external/bsd/openssl/lib/libcrypto/arch/i386: aesni-586.S
>           aesni-x86.S
>       src/crypto/external/bsd/openssl/lib/libcrypto/arch/x86_64:
>           aesni-x86_64.S
> 
> Log Message:
> Turn AES NI support code into something more readable.
> 
> i386 and amd64 both tested with their own chroot. No regression observed.

Much better. One thing remains. It would be nice to replace
        .byte 0xf3,0xc3
with either a simple ret or a ret $0, depending on whether it has a
label on it or not. The reason for this mess seems to be a bug in
certain generation of AMD CPUs. So essentially,

.Lfoo:
        .byte 0xf3,0xc3

should become:

.Lfoo:
        ret $0

and all other instances can be converted to plain ret. This is a bit
longer than the 0xf3,0xc3 encoding, but has the advantage of not
depending on invalid instruction encodings. This is kind of cosmetical
though.

Joerg


Home | Main Index | Thread Index | Old Index