forked from wolfSSL/wolfssl
wolfssl/wolfcrypt/wc_port.h: use non-asm implementation of XFENCE when available.
This commit is contained in:
@@ -1264,7 +1264,11 @@ WOLFSSL_ABI WOLFSSL_API int wolfCrypt_Cleanup(void);
|
|||||||
#endif
|
#endif
|
||||||
|
|
||||||
#ifndef WOLFSSL_NO_FENCE
|
#ifndef WOLFSSL_NO_FENCE
|
||||||
#if defined (__i386__) || defined(__x86_64__)
|
#ifdef XFENCE
|
||||||
|
/* use user-supplied XFENCE definition. */
|
||||||
|
#elif defined(__GNUC__) && (__GNUC__ >= 4)
|
||||||
|
#define XFENCE() __sync_synchronize()
|
||||||
|
#elif defined (__i386__) || defined(__x86_64__)
|
||||||
#define XFENCE() XASM_VOLATILE("lfence")
|
#define XFENCE() XASM_VOLATILE("lfence")
|
||||||
#elif (defined (__arm__) && (__ARM_ARCH > 6)) || defined(__aarch64__)
|
#elif (defined (__arm__) && (__ARM_ARCH > 6)) || defined(__aarch64__)
|
||||||
#define XFENCE() XASM_VOLATILE("isb")
|
#define XFENCE() XASM_VOLATILE("isb")
|
||||||
@@ -1273,10 +1277,10 @@ WOLFSSL_ABI WOLFSSL_API int wolfCrypt_Cleanup(void);
|
|||||||
#elif defined(__PPC__)
|
#elif defined(__PPC__)
|
||||||
#define XFENCE() XASM_VOLATILE("isync; sync")
|
#define XFENCE() XASM_VOLATILE("isync; sync")
|
||||||
#else
|
#else
|
||||||
#define XFENCE() do{}while(0)
|
#define XFENCE() WC_DO_NOTHING
|
||||||
#endif
|
#endif
|
||||||
#else
|
#else
|
||||||
#define XFENCE() do{}while(0)
|
#define XFENCE() WC_DO_NOTHING
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user