I also verified that with this workaround for the first instruction, the non-NEON path passes the test, by removing this block from sha256-armv4.S:
#if __ARM_MAX_ARCH__>=7 && !defined(__KERNEL__) ldr r12,.LOPENSSL_armcap ldr r12,[r3,r12] @ OPENSSL_armcap_P tst r12,#ARMV8_SHA256 bne .LARMv8 tst r12,#ARMV7_NEON bne .LNEON #endif
I also verified that with this workaround for the first instruction, the non-NEON path passes the test, by removing this block from sha256-armv4.S:
#if __ARM_MAX_ARCH__>=7 && !defined( __KERNEL_ _) armcap
ldr r12,.LOPENSSL_
ldr r12,[r3,r12] @ OPENSSL_armcap_P
tst r12,#ARMV8_SHA256
bne .LARMv8
tst r12,#ARMV7_NEON
bne .LNEON
#endif