Skip to content

Commit

Permalink
Use Perl to generate bsaes-armv8.S
Browse files Browse the repository at this point in the history
Reviewed-by: Paul Dale <[email protected]>
Reviewed-by: Tomas Mraz <[email protected]>
(Merged from openssl#14592)
  • Loading branch information
tom-cosgrove-arm authored and t8m committed Mar 9, 2022
1 parent 82551af commit a35c3a9
Show file tree
Hide file tree
Showing 2 changed files with 45 additions and 1 deletion.
44 changes: 44 additions & 0 deletions crypto/aes/asm/bsaes-armv8.S → crypto/aes/asm/bsaes-armv8.pl
Original file line number Diff line number Diff line change
@@ -1,3 +1,37 @@
#!/usr/bin/env perl
# Copyright 2020-2021 The OpenSSL Project Authors. All Rights Reserved.
#
# Licensed under the Apache License 2.0 (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

use strict;

my $output = $#ARGV >= 0 && $ARGV[$#ARGV] =~ m|\.\w+$| ? pop : undef;
my $flavour = $#ARGV >= 0 && $ARGV[0] !~ m|\.| ? shift : undef;
my $xlate;

$0 =~ m/(.*[\/\\])[^\/\\]+$/; my $dir=$1;
( $xlate="${dir}arm-xlate.pl" and -f $xlate ) or
( $xlate="${dir}../../perlasm/arm-xlate.pl" and -f $xlate ) or
die "can't locate arm-xlate.pl";

open OUT,"| \"$^X\" $xlate $flavour $output";
*STDOUT=*OUT;

my $code = data();
print $code;

close STDOUT or die "error closing STDOUT: $!"; # enforce flush

sub data
{
local $/;
return <DATA>;
}

__END__
// Copyright 2021 The OpenSSL Project Authors. All Rights Reserved.
//
// Licensed under the OpenSSL license (the "License"). You may not use
Expand Down Expand Up @@ -26,6 +60,10 @@
.text
.extern AES_cbc_encrypt
.extern AES_encrypt
.extern AES_decrypt
.type _bsaes_decrypt8,%function
.align 4
// On entry:
Expand Down Expand Up @@ -981,7 +1019,13 @@
// No output registers, usual AAPCS64 register preservation
ossl_bsaes_cbc_encrypt:
cmp x2, #128
#ifdef __APPLE__
bhs .Lcbc_do_bsaes
b AES_cbc_encrypt
.Lcbc_do_bsaes:
#else
blo AES_cbc_encrypt
#endif
// it is up to the caller to make sure we are called with enc == 0
Expand Down
2 changes: 1 addition & 1 deletion crypto/aes/build.info
Original file line number Diff line number Diff line change
Expand Up @@ -80,7 +80,7 @@ IF[{- !$disabled{module} && !$disabled{shared} -}]
ENDIF

GENERATE[aes-ia64.s]=asm/aes-ia64.S
GENERATE[bsaes-armv8.S]=asm/bsaes-armv8.S
GENERATE[bsaes-armv8.S]=asm/bsaes-armv8.pl

GENERATE[aes-586.s]=asm/aes-586.pl
DEPEND[aes-586.s]=../perlasm/x86asm.pl
Expand Down

0 comments on commit a35c3a9

Please sign in to comment.