OPENSSL_armcap_P, OPENSSL_ia32_P, OPENSSL_ppccap_P

classic Classic list List threaded Threaded
3 messages Options
Reply | Threaded
Open this post in threaded view
|

OPENSSL_armcap_P, OPENSSL_ia32_P, OPENSSL_ppccap_P

Roger No-Spam
Hi,

I'm using openssl on a platform/OS that supports multiple CPU architectures. The context switching does not save SIMD registers unless the thread has a special options set. This creates some challenges when using openssl, which use SIMD registers in several assembler optimizations. I would like to ensure that no assembler optimization can be used if the special option is not set. If the appropriate bits in OPENSSL_armcap_P/OPENSSL_ia32_P/OPENSSL_ppccap_P is disabled, will that guarantee that no instructions using SIMD registers are executed? There is some code within
#ifndef __KERNEL__
which indicates that openssl is used in the linux kernel. I believe the linux kernel would have a similar situation regarding SIMD registers. Floating point operations and operations SIMD registers cannot be used in the linux kernel. But I am unable to find any information that confirms that this would cover all code paths.

Regards Roger
Reply | Threaded
Open this post in threaded view
|

OPENSSL_armcap_P, OPENSSL_ia32_P, OPENSSL_ppccap_P

Roger No-Spam
Hi,

I'm using openssl on a platform/OS that supports multiple CPU architectures. The context switching does not save SIMD registers unless the thread has a special options set. This creates some challenges when using openssl, which use SIMD registers in several assembler optimizations. I would like to ensure that no assembler optimization can be used if the special option is not set. If the appropriate bits in OPENSSL_armcap_P/OPENSSL_ia32_P/OPENSSL_ppccap_P is disabled, will that guarantee that no instructions using SIMD registers are executed? There is some OPENSSL_XXXcap_P code within
#ifndef __KERNEL__
which indicates that openssl is used in the linux kernel. I believe the linux kernel would have a similar situation regarding SIMD registers. Floating point operations and operations SIMD registers cannot be used in the linux kernel. But I am unable to find any information that confirms that this would cover all code paths.

Regards Roger
Reply | Threaded
Open this post in threaded view
|

OPENSSL_armcap_P, OPENSSL_ia32_P, OPENSSL_ppccap_P

Roger No-Spam
In reply to this post by Roger No-Spam
Hi,

I'm using openssl on a platform/OS that supports multiple CPU architectures. The context switching does not save SIMD registers unless the thread has a special options set. This creates some challenges when using openssl, which use SIMD registers in several assembler optimizations. I would like to ensure that no assembler optimization can be used if the special option is not set. If the appropriate bits in OPENSSL_armcap_P/OPENSSL_ia32_P/OPENSSL_ppccap_P is disabled, will that guarantee that no instructions using SIMD registers are executed? There is some OPENSSL_XXXcap_P code within
#ifndef __KERNEL__
which indicates that openssl is used in the linux kernel. I believe the linux kernel would have a similar situation regarding SIMD registers. Floating point operations and operations SIMD registers cannot be used in the linux kernel. But I am unable to find any information that confirms that this would cover all code paths.

Regards Roger