Improve bn_montgomery_multiply_words()
authorjsing <jsing@openbsd.org>
Sat, 22 Apr 2023 14:31:44 +0000 (14:31 +0000)
committerjsing <jsing@openbsd.org>
Sat, 22 Apr 2023 14:31:44 +0000 (14:31 +0000)
commit18cffaad85f97888c734963f516d5c7b1113691f
treec4e46e5bb5c23f6b327f86fff668f3c245f0f8f9
parent703277b6c7dfffc7ed96e565cd468f197c61d1f9
Improve bn_montgomery_multiply_words()

Pull a number of invariants into variables, which avoids repeated loading
from memory on architectures where sufficient registers are available.
Also keep track of the per-iteration carry in a variable, rather than
unnecessarily reading from and writing to memory.

This gives a reasonable performance gain on some architectures (e.g. armv7)
lib/libcrypto/bn/bn_mont.c