[openssl-dev] [ARM] sha1_block_armv8 caller

Andy Polyakov appro at openssl.org
Thu Jul 14 12:54:41 UTC 2016


> I see that there is function named sha1_block_armv8 defined in
> crypto/sha/asm/sha1-armv8.pl, but I cannot find any function that
> calls it.

Note that symbol is not global, you can't even link to it from outside.
But the real question is if code is *executed*. As calling is not the
only way to get code executed, you can also branch to it. And that's
what happens, there is branch to symbol's "shadow" .Lv8_entry label from
sha1_block_data_order. Why does it branch to "shadow" label? In order to
prevent assembler from generating relocation for linker to resolve. Why
symbol at all? It's development artefact (general-purpose
sha1_block_data_order and sha1_block_armv8 were developed one after
another), but it's still useful when it comes to debugging or profiling.
And it also allows to change mind about not making the symbol global,
for example if module needs to be re-purposed.



More information about the openssl-dev mailing list