X-Git-Url: https://git.openssl.org/gitweb/?p=openssl.git;a=blobdiff_plain;f=crypto%2Falphacpuid.pl;h=6c7fd4c9dd3dd1dbd19a9c93141f44e6e6295716;hp=8af0f09d4b9524395409ac66c2bdf443bc53dda9;hb=5b748dea5dc6161d4a66d7804c580ec14e545ff7;hpb=0a4edb931b883b9973721ae012e60c028387dd50 diff --git a/crypto/alphacpuid.pl b/crypto/alphacpuid.pl index 8af0f09d4b..6c7fd4c9dd 100644 --- a/crypto/alphacpuid.pl +++ b/crypto/alphacpuid.pl @@ -1,7 +1,14 @@ -#!/usr/bin/env perl +#! /usr/bin/env perl +# Copyright 2010-2016 The OpenSSL Project Authors. All Rights Reserved. +# +# Licensed under the OpenSSL license (the "License"). You may not use +# this file except in compliance with the License. You can obtain a copy +# in the file LICENSE in the source distribution or at +# https://www.openssl.org/source/license.html + $output = pop; -open STDOUT,">$stdout"; +open STDOUT,">$output"; print <<'___'; .text @@ -127,6 +134,34 @@ OPENSSL_cleanse: bne $17,.Little .Ldone: ret ($26) .end OPENSSL_cleanse + +.globl CRYPTO_memcmp +.ent CRYPTO_memcmp +CRYPTO_memcmp: + .frame $30,0,$26 + .prologue 0 + xor $0,$0,$0 + beq $18,.Lno_data + + xor $1,$1,$1 + nop +.Loop_cmp: + ldq_u $2,0($16) + subq $18,1,$18 + ldq_u $3,0($17) + extbl $2,$16,$2 + lda $16,1($16) + extbl $3,$17,$3 + lda $17,1($17) + xor $3,$2,$2 + or $2,$0,$0 + bne $18,.Loop_cmp + + subq $31,$0,$0 + srl $0,63,$0 +.Lno_data: + ret ($26) +.end CRYPTO_memcmp ___ { my ($out,$cnt,$max)=("\$16","\$17","\$18");