02514002fd
Imported from upstream's a78324d95bd4568ce2c3b34bfa1d6f14cddf92ef. I think the "regression" part of that change is some tweak to BN_usub and I guess the bn_*_words was to compensate for it, but we may as well import it. Apparently the loop instruction is terrible. Before: Did 39871000 bn_add_words operations in 1000002us (39870920.3 ops/sec) Did 38621750 bn_sub_words operations in 1000001us (38621711.4 ops/sec) After: Did 64012000 bn_add_words operations in 1000007us (64011551.9 ops/sec) Did 81792250 bn_sub_words operations in 1000002us (81792086.4 ops/sec) loop sets no flags (even doing the comparison to zero without ZF) while dec sets all flags but CF, so Andres and I are assuming that because this prevents Intel from microcoding it to dec/jnz, they otherwise can't be bothered to add more circuitry since every compiler has internalized by now to never use loop. Change-Id: I3927cd1c7b707841bbe9963e3d4afd7ba9bd9b36 Reviewed-on: https://boringssl-review.googlesource.com/23344 Reviewed-by: Adam Langley <agl@google.com> |
||
---|---|---|
.. | ||
aes | ||
bn | ||
cipher | ||
des | ||
digest | ||
ec | ||
ecdsa | ||
hmac | ||
md4 | ||
md5 | ||
modes | ||
policydocs | ||
rand | ||
rsa | ||
sha | ||
bcm.c | ||
CMakeLists.txt | ||
delocate.h | ||
FIPS.md | ||
intcheck1.png | ||
intcheck2.png | ||
intcheck3.png | ||
is_fips.c |