X-Git-Url: https://git.librecmc.org/?a=blobdiff_plain;f=crypto%2Farmv4cpuid.pl;h=c66962350d30d71a22d70614ffd7250d7bbefac9;hb=06b9ff06cc7fdd8f51abb92aaac39d3988a7090e;hp=1c447187c74e680af71b4bfa80b5403d54ae200c;hpb=313e6ec11fb8a7bda1676ce5804bee8755664141;p=oweals%2Fopenssl.git diff --git a/crypto/armv4cpuid.pl b/crypto/armv4cpuid.pl index 1c447187c7..c66962350d 100644 --- a/crypto/armv4cpuid.pl +++ b/crypto/armv4cpuid.pl @@ -15,7 +15,12 @@ $code.=<<___; #include "arm_arch.h" .text +#if defined(__thumb2__) && !defined(__APPLE__) +.syntax unified +.thumb +#else .code 32 +#endif .align 5 .global OPENSSL_atomic_add @@ -59,6 +64,9 @@ OPENSSL_atomic_add: OPENSSL_cleanse: eor ip,ip,ip cmp r1,#7 +#ifdef __thumb2__ + itt hs +#endif subhs r1,r1,#4 bhs .Lot cmp r1,#0 @@ -116,27 +124,43 @@ _armv7_tick: .global _armv8_aes_probe .type _armv8_aes_probe,%function _armv8_aes_probe: +#if defined(__thumb2__) && !defined(__APPLE__) + .byte 0xb0,0xff,0x00,0x03 @ aese.8 q0,q0 +#else .byte 0x00,0x03,0xb0,0xf3 @ aese.8 q0,q0 +#endif bx lr .size _armv8_aes_probe,.-_armv8_aes_probe .global _armv8_sha1_probe .type _armv8_sha1_probe,%function _armv8_sha1_probe: +#if defined(__thumb2__) && !defined(__APPLE__) + .byte 0x00,0xef,0x40,0x0c @ sha1c.32 q0,q0,q0 +#else .byte 0x40,0x0c,0x00,0xf2 @ sha1c.32 q0,q0,q0 +#endif bx lr .size _armv8_sha1_probe,.-_armv8_sha1_probe .global _armv8_sha256_probe .type _armv8_sha256_probe,%function _armv8_sha256_probe: +#if defined(__thumb2__) && !defined(__APPLE__) + .byte 0x00,0xff,0x40,0x0c @ sha256h.32 q0,q0,q0 +#else .byte 0x40,0x0c,0x00,0xf3 @ sha256h.32 q0,q0,q0 +#endif bx lr .size _armv8_sha256_probe,.-_armv8_sha256_probe .global _armv8_pmull_probe .type _armv8_pmull_probe,%function _armv8_pmull_probe: +#if defined(__thumb2__) && !defined(__APPLE__) + .byte 0xa0,0xef,0x00,0x0e @ vmull.p64 q0,d0,d0 +#else .byte 0x00,0x0e,0xa0,0xf2 @ vmull.p64 q0,d0,d0 +#endif bx lr .size _armv8_pmull_probe,.-_armv8_pmull_probe #endif