summaryrefslogtreecommitdiff
path: root/crypto/sparccpuid.S
diff options
context:
space:
mode:
authorAndy Polyakov <appro@openssl.org>2012-09-23 20:29:03 +0000
committerAndy Polyakov <appro@openssl.org>2012-09-23 20:29:03 +0000
commit1fda639ae756eb87f585b7d5114490d4ffe649a1 (patch)
tree2a358c9ee53d8da2dc6cf8b7d9958645a21feaed /crypto/sparccpuid.S
parent4d88fc8173573b089aac0e0e53572802fc7594cb (diff)
downloadopenssl-new-1fda639ae756eb87f585b7d5114490d4ffe649a1.tar.gz
sparcv9cap.c: add SPARC-T4 feature detection.
Submitted by: David Miller
Diffstat (limited to 'crypto/sparccpuid.S')
-rw-r--r--crypto/sparccpuid.S31
1 files changed, 31 insertions, 0 deletions
diff --git a/crypto/sparccpuid.S b/crypto/sparccpuid.S
index ccdd31e041..8baded0d40 100644
--- a/crypto/sparccpuid.S
+++ b/crypto/sparccpuid.S
@@ -255,6 +255,11 @@ _sparcv9_vis1_probe:
! UltraSPARC IIe 7
! UltraSPARC III 7
! UltraSPARC T1 24
+! SPARC T4 65(*)
+!
+! (*) result has lesser to do with VIS instruction latencies, rdtick
+! appears that slow, but it does the trick in sense that FP and
+! VIS code paths are still slower than integer-only ones.
!
! Numbers for T2 and SPARC64 V-VII are more than welcomed.
!
@@ -264,6 +269,8 @@ _sparcv9_vis1_probe:
.global _sparcv9_vis1_instrument
.align 8
_sparcv9_vis1_instrument:
+ .word 0x81b00d80 !fxor %f0,%f0,%f0
+ .word 0x85b08d82 !fxor %f2,%f2,%f2
.word 0x91410000 !rd %tick,%o0
.word 0x81b00d80 !fxor %f0,%f0,%f0
.word 0x85b08d82 !fxor %f2,%f2,%f2
@@ -318,6 +325,30 @@ _sparcv9_fmadd_probe:
.type _sparcv9_fmadd_probe,#function
.size _sparcv9_fmadd_probe,.-_sparcv9_fmadd_probe
+.global _sparcv9_rdcfr
+.align 8
+_sparcv9_rdcfr:
+ retl
+ .word 0x91468000 !rd %asr26,%o0
+.type _sparcv9_rdcfr,#function
+.size _sparcv9_rdcfr,.-_sparcv9_rdcfr
+
+.global _sparcv9_vis3_probe
+.align 8
+_sparcv9_vis3_probe:
+ retl
+ .word 0x81b022a0 !xmulx %g0,%g0,%g0
+.type _sparcv9_vis3_probe,#function
+.size _sparcv9_vis3_probe,.-_sparcv9_vis3_probe
+
+.global _sparcv9_random
+.align 8
+_sparcv9_random:
+ retl
+ .word 0x91b002a0 !random %o0
+.type _sparcv9_random,#function
+.size _sparcv9_random,.-_sparcv9_vis3_probe
+
.global OPENSSL_cleanse
.align 32
OPENSSL_cleanse: