summaryrefslogtreecommitdiff
path: root/deps/openssl/config/archs/linux-ppc64/asm_avx2/crypto/ppccpuid.s
diff options
context:
space:
mode:
Diffstat (limited to 'deps/openssl/config/archs/linux-ppc64/asm_avx2/crypto/ppccpuid.s')
-rw-r--r--deps/openssl/config/archs/linux-ppc64/asm_avx2/crypto/ppccpuid.s156
1 files changed, 135 insertions, 21 deletions
diff --git a/deps/openssl/config/archs/linux-ppc64/asm_avx2/crypto/ppccpuid.s b/deps/openssl/config/archs/linux-ppc64/asm_avx2/crypto/ppccpuid.s
index 009815ab54..dd8a0abe86 100644
--- a/deps/openssl/config/archs/linux-ppc64/asm_avx2/crypto/ppccpuid.s
+++ b/deps/openssl/config/archs/linux-ppc64/asm_avx2/crypto/ppccpuid.s
@@ -143,21 +143,37 @@ OPENSSL_atomic_add:
.size .OPENSSL_atomic_add,.-.OPENSSL_atomic_add
.size OPENSSL_atomic_add,.-.OPENSSL_atomic_add
-.globl OPENSSL_rdtsc
-.type OPENSSL_rdtsc,@function
+.globl OPENSSL_rdtsc_mftb
+.type OPENSSL_rdtsc_mftb,@function
.section ".opd","aw"
.align 3
-OPENSSL_rdtsc:
-.quad .OPENSSL_rdtsc,.TOC.@tocbase,0
+OPENSSL_rdtsc_mftb:
+.quad .OPENSSL_rdtsc_mftb,.TOC.@tocbase,0
.previous
.align 4
-.OPENSSL_rdtsc:
+.OPENSSL_rdtsc_mftb:
mftb 3
blr
.long 0
.byte 0,12,0x14,0,0,0,0,0
-.size .OPENSSL_rdtsc,.-.OPENSSL_rdtsc
-.size OPENSSL_rdtsc,.-.OPENSSL_rdtsc
+.size .OPENSSL_rdtsc_mftb,.-.OPENSSL_rdtsc_mftb
+.size OPENSSL_rdtsc_mftb,.-.OPENSSL_rdtsc_mftb
+
+.globl OPENSSL_rdtsc_mfspr268
+.type OPENSSL_rdtsc_mfspr268,@function
+.section ".opd","aw"
+.align 3
+OPENSSL_rdtsc_mfspr268:
+.quad .OPENSSL_rdtsc_mfspr268,.TOC.@tocbase,0
+.previous
+.align 4
+.OPENSSL_rdtsc_mfspr268:
+ mfspr 3,268
+ blr
+.long 0
+.byte 0,12,0x14,0,0,0,0,0
+.size .OPENSSL_rdtsc_mfspr268,.-.OPENSSL_rdtsc_mfspr268
+.size OPENSSL_rdtsc_mfspr268,.-.OPENSSL_rdtsc_mfspr268
.globl OPENSSL_cleanse
.type OPENSSL_cleanse,@function
@@ -231,15 +247,15 @@ CRYPTO_memcmp:
.long 0
.size .CRYPTO_memcmp,.-.CRYPTO_memcmp
.size CRYPTO_memcmp,.-.CRYPTO_memcmp
-.globl OPENSSL_instrument_bus
-.type OPENSSL_instrument_bus,@function
+.globl OPENSSL_instrument_bus_mftb
+.type OPENSSL_instrument_bus_mftb,@function
.section ".opd","aw"
.align 3
-OPENSSL_instrument_bus:
-.quad .OPENSSL_instrument_bus,.TOC.@tocbase,0
+OPENSSL_instrument_bus_mftb:
+.quad .OPENSSL_instrument_bus_mftb,.TOC.@tocbase,0
.previous
.align 4
-.OPENSSL_instrument_bus:
+.OPENSSL_instrument_bus_mftb:
mtctr 4
mftb 7
@@ -267,18 +283,18 @@ OPENSSL_instrument_bus:
.long 0
.byte 0,12,0x14,0,0,0,2,0
.long 0
-.size .OPENSSL_instrument_bus,.-.OPENSSL_instrument_bus
-.size OPENSSL_instrument_bus,.-.OPENSSL_instrument_bus
+.size .OPENSSL_instrument_bus_mftb,.-.OPENSSL_instrument_bus_mftb
+.size OPENSSL_instrument_bus_mftb,.-.OPENSSL_instrument_bus_mftb
-.globl OPENSSL_instrument_bus2
-.type OPENSSL_instrument_bus2,@function
+.globl OPENSSL_instrument_bus2_mftb
+.type OPENSSL_instrument_bus2_mftb,@function
.section ".opd","aw"
.align 3
-OPENSSL_instrument_bus2:
-.quad .OPENSSL_instrument_bus2,.TOC.@tocbase,0
+OPENSSL_instrument_bus2_mftb:
+.quad .OPENSSL_instrument_bus2_mftb,.TOC.@tocbase,0
.previous
.align 4
-.OPENSSL_instrument_bus2:
+.OPENSSL_instrument_bus2_mftb:
mr 0,4
slwi 4,4,2
@@ -326,5 +342,103 @@ OPENSSL_instrument_bus2:
.long 0
.byte 0,12,0x14,0,0,0,3,0
.long 0
-.size .OPENSSL_instrument_bus2,.-.OPENSSL_instrument_bus2
-.size OPENSSL_instrument_bus2,.-.OPENSSL_instrument_bus2
+.size .OPENSSL_instrument_bus2_mftb,.-.OPENSSL_instrument_bus2_mftb
+.size OPENSSL_instrument_bus2_mftb,.-.OPENSSL_instrument_bus2_mftb
+
+.globl OPENSSL_instrument_bus_mfspr268
+.type OPENSSL_instrument_bus_mfspr268,@function
+.section ".opd","aw"
+.align 3
+OPENSSL_instrument_bus_mfspr268:
+.quad .OPENSSL_instrument_bus_mfspr268,.TOC.@tocbase,0
+.previous
+.align 4
+.OPENSSL_instrument_bus_mfspr268:
+ mtctr 4
+
+ mfspr 7,268
+ li 8,0
+
+ dcbf 0,3
+ lwarx 6,0,3
+ add 6,6,8
+ stwcx. 6,0,3
+ stwx 6,0,3
+
+.Loop3: mfspr 6,268
+ sub 8,6,7
+ mr 7,6
+ dcbf 0,3
+ lwarx 6,0,3
+ add 6,6,8
+ stwcx. 6,0,3
+ stwx 6,0,3
+ addi 3,3,4
+ bdnz .Loop3
+
+ mr 3,4
+ blr
+.long 0
+.byte 0,12,0x14,0,0,0,2,0
+.long 0
+.size .OPENSSL_instrument_bus_mfspr268,.-.OPENSSL_instrument_bus_mfspr268
+.size OPENSSL_instrument_bus_mfspr268,.-.OPENSSL_instrument_bus_mfspr268
+
+.globl OPENSSL_instrument_bus2_mfspr268
+.type OPENSSL_instrument_bus2_mfspr268,@function
+.section ".opd","aw"
+.align 3
+OPENSSL_instrument_bus2_mfspr268:
+.quad .OPENSSL_instrument_bus2_mfspr268,.TOC.@tocbase,0
+.previous
+.align 4
+.OPENSSL_instrument_bus2_mfspr268:
+ mr 0,4
+ slwi 4,4,2
+
+ mfspr 7,268
+ li 8,0
+
+ dcbf 0,3
+ lwarx 6,0,3
+ add 6,6,8
+ stwcx. 6,0,3
+ stwx 6,0,3
+
+ mfspr 6,268
+ sub 8,6,7
+ mr 7,6
+ mr 9,8
+.Loop4:
+ dcbf 0,3
+ lwarx 6,0,3
+ add 6,6,8
+ stwcx. 6,0,3
+ stwx 6,0,3
+
+ addic. 5,5,-1
+ beq .Ldone4
+
+ mfspr 6,268
+ sub 8,6,7
+ mr 7,6
+ cmplw 7,8,9
+ mr 9,8
+
+ mfcr 6
+ not 6,6
+ rlwinm 6,6,1,29,29
+
+ sub. 4,4,6
+ add 3,3,6
+ bne .Loop4
+
+.Ldone4:
+ srwi 4,4,2
+ sub 3,0,4
+ blr
+.long 0
+.byte 0,12,0x14,0,0,0,3,0
+.long 0
+.size .OPENSSL_instrument_bus2_mfspr268,.-.OPENSSL_instrument_bus2_mfspr268
+.size OPENSSL_instrument_bus2_mfspr268,.-.OPENSSL_instrument_bus2_mfspr268