Unified - adapt the generation of modes assembler to use GENERATE
authorRichard Levitte <levitte@openssl.org>
Mon, 7 Mar 2016 14:47:57 +0000 (15:47 +0100)
committerRichard Levitte <levitte@openssl.org>
Wed, 9 Mar 2016 10:09:26 +0000 (11:09 +0100)
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: Andy Polyakov <appro@openssl.org>
crypto/modes/Makefile.in
crypto/modes/asm/ghash-alpha.pl
crypto/modes/asm/ghash-ia64.pl
crypto/modes/asm/ghash-x86.pl
crypto/modes/build.info

index a62486e..c37a8c8 100644 (file)
@@ -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) $@
index aa36029..df6b3a3 100644 (file)
@@ -454,7 +454,7 @@ rem_4bit:
 .align 4
 
 ___
-$output=shift and open STDOUT,">$output";
+$output=pop and open STDOUT,">$output";
 print $code;
 close STDOUT;
 
index 0354c95..9d49143 100755 (executable)
@@ -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";
index 0269169..db6eeae 100644 (file)
@@ -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
index dfce733..b59780f 100644 (file)
@@ -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) $@