Commit 4f0d5f18 authored by Richard Levitte's avatar Richard Levitte
Browse files

Unified - adapt the generation of modes assembler to use GENERATE



This gets rid of the BEGINRAW..ENDRAW sections in crypto/modes/build.info.

This also moves the assembler generating perl scripts to take the
output file name as last command line argument, where necessary.

Reviewed-by: default avatarAndy Polyakov <appro@openssl.org>
parent 3aa3af68
Loading
Loading
Loading
Loading
+5 −5
Original line number Diff line number Diff line
@@ -41,18 +41,18 @@ lib: $(LIBOBJ)
	@touch lib

ghash-ia64.s:	asm/ghash-ia64.pl
	$(PERL) asm/ghash-ia64.pl $@ $(CFLAGS)
	$(PERL) asm/ghash-ia64.pl $(CFLAGS) $@
ghash-x86.s:	asm/ghash-x86.pl
	$(PERL) asm/ghash-x86.pl $(PERLASM_SCHEME) $(CFLAGS) $(PROCESSOR) > $@
	$(PERL) asm/ghash-x86.pl $(PERLASM_SCHEME) $(CFLAGS) $(PROCESSOR) $@
ghash-x86_64.s:	asm/ghash-x86_64.pl
	$(PERL) asm/ghash-x86_64.pl $(PERLASM_SCHEME) > $@
	$(PERL) asm/ghash-x86_64.pl $(PERLASM_SCHEME) $@
aesni-gcm-x86_64.s:	asm/aesni-gcm-x86_64.pl
	$(PERL) asm/aesni-gcm-x86_64.pl $(PERLASM_SCHEME) > $@
	$(PERL) asm/aesni-gcm-x86_64.pl $(PERLASM_SCHEME) $@
ghash-sparcv9.S:	asm/ghash-sparcv9.pl
	$(PERL) asm/ghash-sparcv9.pl $(PERLASM_SCHEME) $@
ghash-alpha.s:	asm/ghash-alpha.pl
	(preproc=$$$$.$@.S; trap "rm $$preproc" INT; \
	$(PERL) asm/ghash-alpha.pl > $$preproc && \
	$(PERL) asm/ghash-alpha.pl $$preproc && \
	$(CC) -E -P $$preproc > $@ && rm $$preproc)
ghash-parisc.s:	asm/ghash-parisc.pl
	$(PERL) asm/ghash-parisc.pl $(PERLASM_SCHEME) $@
+1 −1
Original line number Diff line number Diff line
@@ -454,7 +454,7 @@ rem_4bit:
.align	4

___
$output=shift and open STDOUT,">$output";
$output=pop and open STDOUT,">$output";
print $code;
close STDOUT;
+1 −1
Original line number Diff line number Diff line
@@ -32,7 +32,7 @@
# Itanium performance should remain the same as the "256B" version,
# i.e. ~8.5 cycles.

$output=shift and (open STDOUT,">$output" or die "can't open $output: $!");
$output=pop and (open STDOUT,">$output" or die "can't open $output: $!");

if ($^O eq "hpux") {
    $ADDP="addp4";
+5 −0
Original line number Diff line number Diff line
@@ -129,6 +129,9 @@ $0 =~ m/(.*[\/\\])[^\/\\]+$/; $dir=$1;
push(@INC,"${dir}","${dir}../../perlasm");
require "x86asm.pl";

$output=pop;
open STDOUT,">$output";

&asm_init($ARGV[0],"ghash-x86.pl",$x86only = $ARGV[$#ARGV] eq "386");

$sse2=0;
@@ -1369,6 +1372,8 @@ my ($Xhi,$Xi)=@_;
&asciz("GHASH for x86, CRYPTOGAMS by <appro\@openssl.org>");
&asm_finish();

close STDOUT;

# A question was risen about choice of vanilla MMX. Or rather why wasn't
# SSE2 chosen instead? In addition to the fact that MMX runs on legacy
# CPUs such as PIII, "4-bit" MMX version was observed to provide better
+10 −21
Original line number Diff line number Diff line
@@ -4,28 +4,17 @@ SOURCE[../../libcrypto]=\
        ccm128.c xts128.c wrap128.c ocb128.c \
        {- $target{modes_asm_src} -}

BEGINRAW[Makefile]
{- $builddir -}/ghash-ia64.s:	{- $sourcedir -}/asm/ghash-ia64.pl
	CC="$(CC)" $(PERL) {- $sourcedir -}/asm/ghash-ia64.pl $@ $(CFLAGS)
{- $builddir -}/ghash-x86.s:	{- $sourcedir -}/asm/ghash-x86.pl
	CC="$(CC)" $(PERL) {- $sourcedir -}/asm/ghash-x86.pl $(PERLASM_SCHEME) $(CFLAGS) $(PROCESSOR) > $@
{- $builddir -}/ghash-x86_64.s:	{- $sourcedir -}/asm/ghash-x86_64.pl
	CC="$(CC)" $(PERL) {- $sourcedir -}/asm/ghash-x86_64.pl $(PERLASM_SCHEME) > $@
{- $builddir -}/aesni-gcm-x86_64.s:	{- $sourcedir -}/asm/aesni-gcm-x86_64.pl
	CC="$(CC)" $(PERL) {- $sourcedir -}/asm/aesni-gcm-x86_64.pl $(PERLASM_SCHEME) > $@
{- $builddir -}/ghash-sparcv9.S:	{- $sourcedir -}/asm/ghash-sparcv9.pl
	CC="$(CC)" $(PERL) {- $sourcedir -}/asm/ghash-sparcv9.pl $(PERLASM_SCHEME) $@
{- $builddir -}/ghash-alpha.s:	{- $sourcedir -}/asm/ghash-alpha.pl
	(preproc=$$$$.$@.S; trap "rm $$preproc" INT; \
	CC="$(CC)" $(PERL) {- $sourcedir -}/asm/ghash-alpha.pl > $$preproc && \
	$(CC) -E -P $$preproc > $@ && rm $$preproc)
{- $builddir -}/ghash-parisc.s:	{- $sourcedir -}/asm/ghash-parisc.pl
	CC="$(CC)" $(PERL) {- $sourcedir -}/asm/ghash-parisc.pl $(PERLASM_SCHEME) $@
{- $builddir -}/ghashv8-armx.S:	{- $sourcedir -}/asm/ghashv8-armx.pl
	CC="$(CC)" $(PERL) {- $sourcedir -}/asm/ghashv8-armx.pl $(PERLASM_SCHEME) $@
{- $builddir -}/ghashp8-ppc.s:	{- $sourcedir -}/asm/ghashp8-ppc.pl
	CC="$(CC)" $(PERL) {- $sourcedir -}/asm/ghashp8-ppc.pl $(PERLASM_SCHEME) $@
GENERATE[ghash-ia64.s]=asm/ghash-ia64.pl $(CFLAGS)
GENERATE[ghash-x86.s]=asm/ghash-x86.pl $(PERLASM_SCHEME) $(CFLAGS) $(PROCESSOR)
GENERATE[ghash-x86_64.s]=asm/ghash-x86_64.pl $(PERLASM_SCHEME)
GENERATE[aesni-gcm-x86_64.s]=asm/aesni-gcm-x86_64.pl $(PERLASM_SCHEME)
GENERATE[ghash-sparcv9.S]=asm/ghash-sparcv9.pl $(PERLASM_SCHEME)
GENERATE[ghash-alpha.s]=asm/ghash-alpha.pl
GENERATE[ghash-parisc.s]=asm/ghash-parisc.pl $(PERLASM_SCHEME)
GENERATE[ghashv8-armx.S]=asm/ghashv8-armx.pl $(PERLASM_SCHEME)
GENERATE[ghashp8-ppc.s]=asm/ghashp8-ppc.pl $(PERLASM_SCHEME)

BEGINRAW[Makefile]
# GNU make "catch all"
{- $builddir -}/ghash-%.S:	{- $sourcedir -}/asm/ghash-%.pl
	CC="$(CC)" $(PERL) $< $(PERLASM_SCHEME) $@