diff options
author | Andy Polyakov <appro@openssl.org> | 2016-04-19 13:08:47 +0200 |
---|---|---|
committer | Andy Polyakov <appro@openssl.org> | 2016-04-20 09:57:37 +0200 |
commit | 4400f6c61e586dde2aea8dd023c9d4573fbbc547 (patch) | |
tree | 96fa1cd9cce70fa7ea2227491576fad529d20f9f /crypto/sparcv9cap.c | |
parent | fb65020b37d606659f90aa62163220b72d5560f5 (diff) | |
download | openssl-4400f6c61e586dde2aea8dd023c9d4573fbbc547.tar.gz |
sparcv9cap.c: add Fujitsu SPARC64 X AES capability detection.
Reviewed-by: Richard Levitte <levitte@openssl.org>
Diffstat (limited to 'crypto/sparcv9cap.c')
-rw-r--r-- | crypto/sparcv9cap.c | 16 |
1 files changed, 11 insertions, 5 deletions
diff --git a/crypto/sparcv9cap.c b/crypto/sparcv9cap.c index 2058640377..e1e6d73955 100644 --- a/crypto/sparcv9cap.c +++ b/crypto/sparcv9cap.c @@ -149,11 +149,12 @@ void OPENSSL_cpuid_setup(void) unsigned int vec[1]; if (getisax (vec,1)) { - if (vec[0]&0x0020) OPENSSL_sparcv9cap_P[0] |= SPARCV9_VIS1; - if (vec[0]&0x0040) OPENSSL_sparcv9cap_P[0] |= SPARCV9_VIS2; - if (vec[0]&0x0080) OPENSSL_sparcv9cap_P[0] |= SPARCV9_BLK; - if (vec[0]&0x0100) OPENSSL_sparcv9cap_P[0] |= SPARCV9_FMADD; - if (vec[0]&0x0400) OPENSSL_sparcv9cap_P[0] |= SPARCV9_VIS3; + if (vec[0]&0x0020) OPENSSL_sparcv9cap_P[0] |= SPARCV9_VIS1; + if (vec[0]&0x0040) OPENSSL_sparcv9cap_P[0] |= SPARCV9_VIS2; + if (vec[0]&0x0080) OPENSSL_sparcv9cap_P[0] |= SPARCV9_BLK; + if (vec[0]&0x0100) OPENSSL_sparcv9cap_P[0] |= SPARCV9_FMADD; + if (vec[0]&0x0400) OPENSSL_sparcv9cap_P[0] |= SPARCV9_VIS3; + if (vec[0]&0x10000) OPENSSL_sparcv9cap_P[0] |= SPARCV9_FJAESX; /* reconstruct %cfr copy */ OPENSSL_sparcv9cap_P[1] = (vec[0]>>17)&0x3ff; @@ -233,6 +234,11 @@ void OPENSSL_cpuid_setup(void) OPENSSL_sparcv9cap_P[0] |= SPARCV9_VIS3; } + if (sigsetjmp(common_jmp, 1) == 0) { + _sparcv9_fjaesx_probe(); + OPENSSL_sparcv9cap_P[0] |= SPARCV9_FJAESX; + } + /* * In wait for better solution _sparcv9_rdcfr is masked by * VIS3 flag, because it goes to uninterruptable endless |