Source-Changes archive

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

CVS commit: src/crypto/external/bsd/openssl/dist/crypto/bn/asm



Module Name:    src
Committed By:   riastradh
Date:           Wed Mar 29 13:07:46 UTC 2023

Modified Files:
        src/crypto/external/bsd/openssl/dist/crypto/bn/asm: x86_64-gcc.c

Log Message:
openssl: Remove local micro-optimization on AMD (but not Intel).

Upstream OpenSSL changed

        loop 1b

to

        dec %rcx
        jnz 1b

which has mostly the same semantics, in this change:

https://github.com/openssl/openssl/pull/4743

For some reason, in one of the OpenSSL updates, we ended up with a
local change to revert this.

The Intel and AMD optimization guides are silent on the LOOP
instruction, but Agner Fog's tables shows that while LOOP is one
cycle shorter than DEC;JNZ on AMD Zen microarchitectures, it is a
good half dozen cycles longer than DEC;JNZ on recent Intel
microarchitectures.

The history of the OpenSSL change suggests it was intended, and I
can't find any indication other than `merge conflicts' that we
intended to keep the LOOP version.  So let's reduce the local diff by
nixing it.


To generate a diff of this commit:
cvs rdiff -u -r1.11 -r1.12 \
    src/crypto/external/bsd/openssl/dist/crypto/bn/asm/x86_64-gcc.c

Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.




Home | Main Index | Thread Index | Old Index