]> WPIA git - cassiopeia.git/blobdiff - lib/openssl/crypto/alphacpuid.pl
add: execute openssl fetcher to fetch openssl 1.0.1j
[cassiopeia.git] / lib / openssl / crypto / alphacpuid.pl
diff --git a/lib/openssl/crypto/alphacpuid.pl b/lib/openssl/crypto/alphacpuid.pl
new file mode 100644 (file)
index 0000000..4b3cbb9
--- /dev/null
@@ -0,0 +1,126 @@
+#!/usr/bin/env perl
+print <<'___';
+.text
+
+.set   noat
+
+.globl OPENSSL_cpuid_setup
+.ent   OPENSSL_cpuid_setup
+OPENSSL_cpuid_setup:
+       .frame  $30,0,$26
+       .prologue 0
+       ret     ($26)
+.end   OPENSSL_cpuid_setup
+
+.globl OPENSSL_wipe_cpu
+.ent   OPENSSL_wipe_cpu
+OPENSSL_wipe_cpu:
+       .frame  $30,0,$26
+       .prologue 0
+       clr     $1
+       clr     $2
+       clr     $3
+       clr     $4
+       clr     $5
+       clr     $6
+       clr     $7
+       clr     $8
+       clr     $16
+       clr     $17
+       clr     $18
+       clr     $19
+       clr     $20
+       clr     $21
+       clr     $22
+       clr     $23
+       clr     $24
+       clr     $25
+       clr     $27
+       clr     $at
+       clr     $29
+       fclr    $f0
+       fclr    $f1
+       fclr    $f10
+       fclr    $f11
+       fclr    $f12
+       fclr    $f13
+       fclr    $f14
+       fclr    $f15
+       fclr    $f16
+       fclr    $f17
+       fclr    $f18
+       fclr    $f19
+       fclr    $f20
+       fclr    $f21
+       fclr    $f22
+       fclr    $f23
+       fclr    $f24
+       fclr    $f25
+       fclr    $f26
+       fclr    $f27
+       fclr    $f28
+       fclr    $f29
+       fclr    $f30
+       mov     $sp,$0
+       ret     ($26)
+.end   OPENSSL_wipe_cpu
+
+.globl OPENSSL_atomic_add
+.ent   OPENSSL_atomic_add
+OPENSSL_atomic_add:
+       .frame  $30,0,$26
+       .prologue 0
+1:     ldl_l   $0,0($16)
+       addl    $0,$17,$1
+       stl_c   $1,0($16)
+       beq     $1,1b
+       addl    $0,$17,$0
+       ret     ($26)
+.end   OPENSSL_atomic_add
+
+.globl OPENSSL_rdtsc
+.ent   OPENSSL_rdtsc
+OPENSSL_rdtsc:
+       .frame  $30,0,$26
+       .prologue 0
+       rpcc    $0
+       ret     ($26)
+.end   OPENSSL_rdtsc
+
+.globl OPENSSL_cleanse
+.ent   OPENSSL_cleanse
+OPENSSL_cleanse:
+       .frame  $30,0,$26
+       .prologue 0
+       beq     $17,.Ldone
+       and     $16,7,$0
+       bic     $17,7,$at
+       beq     $at,.Little
+       beq     $0,.Laligned
+
+.Little:
+       subq    $0,8,$0
+       ldq_u   $1,0($16)
+       mov     $16,$2
+.Lalign:
+       mskbl   $1,$16,$1
+       lda     $16,1($16)
+       subq    $17,1,$17
+       addq    $0,1,$0
+       beq     $17,.Lout
+       bne     $0,.Lalign
+.Lout: stq_u   $1,0($2)
+       beq     $17,.Ldone
+       bic     $17,7,$at
+       beq     $at,.Little
+
+.Laligned:
+       stq     $31,0($16)
+       subq    $17,8,$17
+       lda     $16,8($16)
+       bic     $17,7,$at
+       bne     $at,.Laligned
+       bne     $17,.Little
+.Ldone: ret    ($26)
+.end   OPENSSL_cleanse
+___