From fd5a309a477c7c91d6affb0584c2416eeb312fac Mon Sep 17 00:00:00 2001 From: Daniel Pouzzner Date: Mon, 26 Oct 2020 12:06:18 -0500 Subject: [PATCH] wc_port.h: improve gating on {SAVE,RESTORE}_VECTOR_REGISTERS() to assure no-op fallback definitions in non-autotools builds. --- wolfssl/wolfcrypt/wc_port.h | 28 +++++++++++++++++++++------- 1 file changed, 21 insertions(+), 7 deletions(-) diff --git a/wolfssl/wolfcrypt/wc_port.h b/wolfssl/wolfcrypt/wc_port.h index cbf7e115b..e65d6d8d3 100644 --- a/wolfssl/wolfcrypt/wc_port.h +++ b/wolfssl/wolfcrypt/wc_port.h @@ -99,15 +99,27 @@ #else #include #endif - #define SAVE_VECTOR_REGISTERS() kernel_fpu_begin() - #define RESTORE_VECTOR_REGISTERS() kernel_fpu_end() + #ifndef SAVE_VECTOR_REGISTERS + #define SAVE_VECTOR_REGISTERS() kernel_fpu_begin() + #endif + #ifndef RESTORE_VECTOR_REGISTERS + #define RESTORE_VECTOR_REGISTERS() kernel_fpu_end() + #endif #elif defined(WOLFSSL_ARMASM) #include - #define SAVE_VECTOR_REGISTERS() ({ preempt_disable(); fpsimd_preserve_current_state(); }) - #define RESTORE_VECTOR_REGISTERS() ({ fpsimd_restore_current_state(); preempt_enable(); }) + #ifndef SAVE_VECTOR_REGISTERS + #define SAVE_VECTOR_REGISTERS() ({ preempt_disable(); fpsimd_preserve_current_state(); }) + #endif + #ifndef RESTORE_VECTOR_REGISTERS + #define RESTORE_VECTOR_REGISTERS() ({ fpsimd_restore_current_state(); preempt_enable(); }) + #endif #else - #define SAVE_VECTOR_REGISTERS() ({}) - #define RESTORE_VECTOR_REGISTERS() ({}) + #ifndef SAVE_VECTOR_REGISTERS + #define SAVE_VECTOR_REGISTERS() ({}) + #endif + #ifndef RESTORE_VECTOR_REGISTERS + #define RESTORE_VECTOR_REGISTERS() ({}) + #endif #endif _Pragma("GCC diagnostic pop"); @@ -157,8 +169,10 @@ #else /* ! WOLFSSL_LINUXKM */ - #ifdef BUILDING_WOLFSSL + #ifndef SAVE_VECTOR_REGISTERS #define SAVE_VECTOR_REGISTERS() do{}while(0) + #endif + #ifndef RESTORE_VECTOR_REGISTERS #define RESTORE_VECTOR_REGISTERS() do{}while(0) #endif