> 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. -- openssl-dev mailing list To unsubscribe: https://mta.openssl.org/mailman/listinfo/openssl-dev