143c12e3d4f9bbbbd4a8ba7b149686437514bc6b6Brian Carlstrom#!/usr/bin/env perl 243c12e3d4f9bbbbd4a8ba7b149686437514bc6b6Brian Carlstromprint <<'___'; 343c12e3d4f9bbbbd4a8ba7b149686437514bc6b6Brian Carlstrom.text 443c12e3d4f9bbbbd4a8ba7b149686437514bc6b6Brian Carlstrom 543c12e3d4f9bbbbd4a8ba7b149686437514bc6b6Brian Carlstrom.set noat 643c12e3d4f9bbbbd4a8ba7b149686437514bc6b6Brian Carlstrom 743c12e3d4f9bbbbd4a8ba7b149686437514bc6b6Brian Carlstrom.globl OPENSSL_cpuid_setup 843c12e3d4f9bbbbd4a8ba7b149686437514bc6b6Brian Carlstrom.ent OPENSSL_cpuid_setup 943c12e3d4f9bbbbd4a8ba7b149686437514bc6b6Brian CarlstromOPENSSL_cpuid_setup: 1043c12e3d4f9bbbbd4a8ba7b149686437514bc6b6Brian Carlstrom .frame $30,0,$26 1143c12e3d4f9bbbbd4a8ba7b149686437514bc6b6Brian Carlstrom .prologue 0 1243c12e3d4f9bbbbd4a8ba7b149686437514bc6b6Brian Carlstrom ret ($26) 1343c12e3d4f9bbbbd4a8ba7b149686437514bc6b6Brian Carlstrom.end OPENSSL_cpuid_setup 1443c12e3d4f9bbbbd4a8ba7b149686437514bc6b6Brian Carlstrom 1543c12e3d4f9bbbbd4a8ba7b149686437514bc6b6Brian Carlstrom.globl OPENSSL_wipe_cpu 1643c12e3d4f9bbbbd4a8ba7b149686437514bc6b6Brian Carlstrom.ent OPENSSL_wipe_cpu 1743c12e3d4f9bbbbd4a8ba7b149686437514bc6b6Brian CarlstromOPENSSL_wipe_cpu: 1843c12e3d4f9bbbbd4a8ba7b149686437514bc6b6Brian Carlstrom .frame $30,0,$26 1943c12e3d4f9bbbbd4a8ba7b149686437514bc6b6Brian Carlstrom .prologue 0 2043c12e3d4f9bbbbd4a8ba7b149686437514bc6b6Brian Carlstrom clr $1 2143c12e3d4f9bbbbd4a8ba7b149686437514bc6b6Brian Carlstrom clr $2 2243c12e3d4f9bbbbd4a8ba7b149686437514bc6b6Brian Carlstrom clr $3 2343c12e3d4f9bbbbd4a8ba7b149686437514bc6b6Brian Carlstrom clr $4 2443c12e3d4f9bbbbd4a8ba7b149686437514bc6b6Brian Carlstrom clr $5 2543c12e3d4f9bbbbd4a8ba7b149686437514bc6b6Brian Carlstrom clr $6 2643c12e3d4f9bbbbd4a8ba7b149686437514bc6b6Brian Carlstrom clr $7 2743c12e3d4f9bbbbd4a8ba7b149686437514bc6b6Brian Carlstrom clr $8 2843c12e3d4f9bbbbd4a8ba7b149686437514bc6b6Brian Carlstrom clr $16 2943c12e3d4f9bbbbd4a8ba7b149686437514bc6b6Brian Carlstrom clr $17 3043c12e3d4f9bbbbd4a8ba7b149686437514bc6b6Brian Carlstrom clr $18 3143c12e3d4f9bbbbd4a8ba7b149686437514bc6b6Brian Carlstrom clr $19 3243c12e3d4f9bbbbd4a8ba7b149686437514bc6b6Brian Carlstrom clr $20 3343c12e3d4f9bbbbd4a8ba7b149686437514bc6b6Brian Carlstrom clr $21 3443c12e3d4f9bbbbd4a8ba7b149686437514bc6b6Brian Carlstrom clr $22 3543c12e3d4f9bbbbd4a8ba7b149686437514bc6b6Brian Carlstrom clr $23 3643c12e3d4f9bbbbd4a8ba7b149686437514bc6b6Brian Carlstrom clr $24 3743c12e3d4f9bbbbd4a8ba7b149686437514bc6b6Brian Carlstrom clr $25 3843c12e3d4f9bbbbd4a8ba7b149686437514bc6b6Brian Carlstrom clr $27 3943c12e3d4f9bbbbd4a8ba7b149686437514bc6b6Brian Carlstrom clr $at 4043c12e3d4f9bbbbd4a8ba7b149686437514bc6b6Brian Carlstrom clr $29 4143c12e3d4f9bbbbd4a8ba7b149686437514bc6b6Brian Carlstrom fclr $f0 4243c12e3d4f9bbbbd4a8ba7b149686437514bc6b6Brian Carlstrom fclr $f1 4343c12e3d4f9bbbbd4a8ba7b149686437514bc6b6Brian Carlstrom fclr $f10 4443c12e3d4f9bbbbd4a8ba7b149686437514bc6b6Brian Carlstrom fclr $f11 4543c12e3d4f9bbbbd4a8ba7b149686437514bc6b6Brian Carlstrom fclr $f12 4643c12e3d4f9bbbbd4a8ba7b149686437514bc6b6Brian Carlstrom fclr $f13 4743c12e3d4f9bbbbd4a8ba7b149686437514bc6b6Brian Carlstrom fclr $f14 4843c12e3d4f9bbbbd4a8ba7b149686437514bc6b6Brian Carlstrom fclr $f15 4943c12e3d4f9bbbbd4a8ba7b149686437514bc6b6Brian Carlstrom fclr $f16 5043c12e3d4f9bbbbd4a8ba7b149686437514bc6b6Brian Carlstrom fclr $f17 5143c12e3d4f9bbbbd4a8ba7b149686437514bc6b6Brian Carlstrom fclr $f18 5243c12e3d4f9bbbbd4a8ba7b149686437514bc6b6Brian Carlstrom fclr $f19 5343c12e3d4f9bbbbd4a8ba7b149686437514bc6b6Brian Carlstrom fclr $f20 5443c12e3d4f9bbbbd4a8ba7b149686437514bc6b6Brian Carlstrom fclr $f21 5543c12e3d4f9bbbbd4a8ba7b149686437514bc6b6Brian Carlstrom fclr $f22 5643c12e3d4f9bbbbd4a8ba7b149686437514bc6b6Brian Carlstrom fclr $f23 5743c12e3d4f9bbbbd4a8ba7b149686437514bc6b6Brian Carlstrom fclr $f24 5843c12e3d4f9bbbbd4a8ba7b149686437514bc6b6Brian Carlstrom fclr $f25 5943c12e3d4f9bbbbd4a8ba7b149686437514bc6b6Brian Carlstrom fclr $f26 6043c12e3d4f9bbbbd4a8ba7b149686437514bc6b6Brian Carlstrom fclr $f27 6143c12e3d4f9bbbbd4a8ba7b149686437514bc6b6Brian Carlstrom fclr $f28 6243c12e3d4f9bbbbd4a8ba7b149686437514bc6b6Brian Carlstrom fclr $f29 6343c12e3d4f9bbbbd4a8ba7b149686437514bc6b6Brian Carlstrom fclr $f30 6443c12e3d4f9bbbbd4a8ba7b149686437514bc6b6Brian Carlstrom mov $sp,$0 6543c12e3d4f9bbbbd4a8ba7b149686437514bc6b6Brian Carlstrom ret ($26) 6643c12e3d4f9bbbbd4a8ba7b149686437514bc6b6Brian Carlstrom.end OPENSSL_wipe_cpu 6743c12e3d4f9bbbbd4a8ba7b149686437514bc6b6Brian Carlstrom 6843c12e3d4f9bbbbd4a8ba7b149686437514bc6b6Brian Carlstrom.globl OPENSSL_atomic_add 6943c12e3d4f9bbbbd4a8ba7b149686437514bc6b6Brian Carlstrom.ent OPENSSL_atomic_add 7043c12e3d4f9bbbbd4a8ba7b149686437514bc6b6Brian CarlstromOPENSSL_atomic_add: 7143c12e3d4f9bbbbd4a8ba7b149686437514bc6b6Brian Carlstrom .frame $30,0,$26 7243c12e3d4f9bbbbd4a8ba7b149686437514bc6b6Brian Carlstrom .prologue 0 7343c12e3d4f9bbbbd4a8ba7b149686437514bc6b6Brian Carlstrom1: ldl_l $0,0($16) 7443c12e3d4f9bbbbd4a8ba7b149686437514bc6b6Brian Carlstrom addl $0,$17,$1 7543c12e3d4f9bbbbd4a8ba7b149686437514bc6b6Brian Carlstrom stl_c $1,0($16) 7643c12e3d4f9bbbbd4a8ba7b149686437514bc6b6Brian Carlstrom beq $1,1b 7743c12e3d4f9bbbbd4a8ba7b149686437514bc6b6Brian Carlstrom addl $0,$17,$0 7843c12e3d4f9bbbbd4a8ba7b149686437514bc6b6Brian Carlstrom ret ($26) 7943c12e3d4f9bbbbd4a8ba7b149686437514bc6b6Brian Carlstrom.end OPENSSL_atomic_add 8043c12e3d4f9bbbbd4a8ba7b149686437514bc6b6Brian Carlstrom 8143c12e3d4f9bbbbd4a8ba7b149686437514bc6b6Brian Carlstrom.globl OPENSSL_rdtsc 8243c12e3d4f9bbbbd4a8ba7b149686437514bc6b6Brian Carlstrom.ent OPENSSL_rdtsc 8343c12e3d4f9bbbbd4a8ba7b149686437514bc6b6Brian CarlstromOPENSSL_rdtsc: 8443c12e3d4f9bbbbd4a8ba7b149686437514bc6b6Brian Carlstrom .frame $30,0,$26 8543c12e3d4f9bbbbd4a8ba7b149686437514bc6b6Brian Carlstrom .prologue 0 8643c12e3d4f9bbbbd4a8ba7b149686437514bc6b6Brian Carlstrom rpcc $0 8743c12e3d4f9bbbbd4a8ba7b149686437514bc6b6Brian Carlstrom ret ($26) 8843c12e3d4f9bbbbd4a8ba7b149686437514bc6b6Brian Carlstrom.end OPENSSL_rdtsc 8943c12e3d4f9bbbbd4a8ba7b149686437514bc6b6Brian Carlstrom 9043c12e3d4f9bbbbd4a8ba7b149686437514bc6b6Brian Carlstrom.globl OPENSSL_cleanse 9143c12e3d4f9bbbbd4a8ba7b149686437514bc6b6Brian Carlstrom.ent OPENSSL_cleanse 9243c12e3d4f9bbbbd4a8ba7b149686437514bc6b6Brian CarlstromOPENSSL_cleanse: 9343c12e3d4f9bbbbd4a8ba7b149686437514bc6b6Brian Carlstrom .frame $30,0,$26 9443c12e3d4f9bbbbd4a8ba7b149686437514bc6b6Brian Carlstrom .prologue 0 9543c12e3d4f9bbbbd4a8ba7b149686437514bc6b6Brian Carlstrom beq $17,.Ldone 9643c12e3d4f9bbbbd4a8ba7b149686437514bc6b6Brian Carlstrom and $16,7,$0 9743c12e3d4f9bbbbd4a8ba7b149686437514bc6b6Brian Carlstrom bic $17,7,$at 9843c12e3d4f9bbbbd4a8ba7b149686437514bc6b6Brian Carlstrom beq $at,.Little 9943c12e3d4f9bbbbd4a8ba7b149686437514bc6b6Brian Carlstrom beq $0,.Laligned 10043c12e3d4f9bbbbd4a8ba7b149686437514bc6b6Brian Carlstrom 10143c12e3d4f9bbbbd4a8ba7b149686437514bc6b6Brian Carlstrom.Little: 102ee7afb3c942c4eefef6ed06201eafaf8ec58e2e3Brian Carlstrom subq $0,8,$0 10343c12e3d4f9bbbbd4a8ba7b149686437514bc6b6Brian Carlstrom ldq_u $1,0($16) 10443c12e3d4f9bbbbd4a8ba7b149686437514bc6b6Brian Carlstrom mov $16,$2 10543c12e3d4f9bbbbd4a8ba7b149686437514bc6b6Brian Carlstrom.Lalign: 10643c12e3d4f9bbbbd4a8ba7b149686437514bc6b6Brian Carlstrom mskbl $1,$16,$1 10743c12e3d4f9bbbbd4a8ba7b149686437514bc6b6Brian Carlstrom lda $16,1($16) 10843c12e3d4f9bbbbd4a8ba7b149686437514bc6b6Brian Carlstrom subq $17,1,$17 109ee7afb3c942c4eefef6ed06201eafaf8ec58e2e3Brian Carlstrom addq $0,1,$0 11043c12e3d4f9bbbbd4a8ba7b149686437514bc6b6Brian Carlstrom beq $17,.Lout 11143c12e3d4f9bbbbd4a8ba7b149686437514bc6b6Brian Carlstrom bne $0,.Lalign 11243c12e3d4f9bbbbd4a8ba7b149686437514bc6b6Brian Carlstrom.Lout: stq_u $1,0($2) 11343c12e3d4f9bbbbd4a8ba7b149686437514bc6b6Brian Carlstrom beq $17,.Ldone 11443c12e3d4f9bbbbd4a8ba7b149686437514bc6b6Brian Carlstrom bic $17,7,$at 11543c12e3d4f9bbbbd4a8ba7b149686437514bc6b6Brian Carlstrom beq $at,.Little 11643c12e3d4f9bbbbd4a8ba7b149686437514bc6b6Brian Carlstrom 11743c12e3d4f9bbbbd4a8ba7b149686437514bc6b6Brian Carlstrom.Laligned: 11843c12e3d4f9bbbbd4a8ba7b149686437514bc6b6Brian Carlstrom stq $31,0($16) 11943c12e3d4f9bbbbd4a8ba7b149686437514bc6b6Brian Carlstrom subq $17,8,$17 12043c12e3d4f9bbbbd4a8ba7b149686437514bc6b6Brian Carlstrom lda $16,8($16) 12143c12e3d4f9bbbbd4a8ba7b149686437514bc6b6Brian Carlstrom bic $17,7,$at 12243c12e3d4f9bbbbd4a8ba7b149686437514bc6b6Brian Carlstrom bne $at,.Laligned 123ee7afb3c942c4eefef6ed06201eafaf8ec58e2e3Brian Carlstrom bne $17,.Little 12443c12e3d4f9bbbbd4a8ba7b149686437514bc6b6Brian Carlstrom.Ldone: ret ($26) 12543c12e3d4f9bbbbd4a8ba7b149686437514bc6b6Brian Carlstrom.end OPENSSL_cleanse 12643c12e3d4f9bbbbd4a8ba7b149686437514bc6b6Brian Carlstrom___ 127