Commit 6bd7a4d9 authored by Richard Levitte's avatar Richard Levitte
Browse files

Unified - adapt the generation of bignum assembler to use GENERATE



This gets rid of the BEGINRAW..ENDRAW sections in crypto/bn/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 avatarRich Salz <rsalz@openssl.org>
parent 8a67946e
Loading
Loading
Loading
Loading
+17 −17
Original line number Diff line number Diff line
@@ -58,28 +58,28 @@ lib: $(LIBOBJ)
	@touch lib

bn-586.s:	asm/bn-586.pl ../perlasm/x86asm.pl
	$(PERL) asm/bn-586.pl $(PERLASM_SCHEME) $(CFLAGS) $(PROCESSOR) > $@
	$(PERL) asm/bn-586.pl $(PERLASM_SCHEME) $(CFLAGS) $(PROCESSOR) $@
co-586.s:	asm/co-586.pl ../perlasm/x86asm.pl
	$(PERL) asm/co-586.pl $(PERLASM_SCHEME) $(CFLAGS) $(PROCESSOR) > $@
	$(PERL) asm/co-586.pl $(PERLASM_SCHEME) $(CFLAGS) $(PROCESSOR) $@
x86-mont.s:	asm/x86-mont.pl ../perlasm/x86asm.pl
	$(PERL) asm/x86-mont.pl $(PERLASM_SCHEME) $(CFLAGS) $(PROCESSOR) > $@
	$(PERL) asm/x86-mont.pl $(PERLASM_SCHEME) $(CFLAGS) $(PROCESSOR) $@
x86-gf2m.s:	asm/x86-gf2m.pl ../perlasm/x86asm.pl
	$(PERL) asm/x86-gf2m.pl $(PERLASM_SCHEME) $(CFLAGS) $(PROCESSOR) > $@
	$(PERL) asm/x86-gf2m.pl $(PERLASM_SCHEME) $(CFLAGS) $(PROCESSOR) $@

sparcv8.o:	asm/sparcv8.S
	$(CC) $(CFLAGS) -c asm/sparcv8.S
bn-sparcv9.o:	asm/sparcv8plus.S
	$(CC) $(CFLAGS) -c -o $@ asm/sparcv8plus.S
sparcv9a-mont.s:	asm/sparcv9a-mont.pl
	$(PERL) asm/sparcv9a-mont.pl $(CFLAGS) > $@
	$(PERL) asm/sparcv9a-mont.pl $(CFLAGS) $@
sparcv9-mont.s:		asm/sparcv9-mont.pl
	$(PERL) asm/sparcv9-mont.pl $(CFLAGS) > $@
	$(PERL) asm/sparcv9-mont.pl $(CFLAGS) $@
vis3-mont.s:		asm/vis3-mont.pl
	$(PERL) asm/vis3-mont.pl $(CFLAGS) > $@
	$(PERL) asm/vis3-mont.pl $(CFLAGS) $@
sparct4-mont.S:	asm/sparct4-mont.pl
	$(PERL) asm/sparct4-mont.pl $(CFLAGS) > $@
	$(PERL) asm/sparct4-mont.pl $(CFLAGS) $@
sparcv9-gf2m.S:	asm/sparcv9-gf2m.pl
	$(PERL) asm/sparcv9-gf2m.pl $(CFLAGS) > $@
	$(PERL) asm/sparcv9-gf2m.pl $(CFLAGS) $@

bn-mips.s:	asm/mips.pl
	$(PERL) asm/mips.pl $(PERLASM_SCHEME) $@
@@ -94,20 +94,20 @@ s390x-gf2m.s: asm/s390x-gf2m.pl
x86_64-gcc.o:	asm/x86_64-gcc.c
	$(CC) $(CFLAGS) -c -o $@ asm/x86_64-gcc.c
x86_64-mont.s:	asm/x86_64-mont.pl
	$(PERL) asm/x86_64-mont.pl $(PERLASM_SCHEME) > $@
	$(PERL) asm/x86_64-mont.pl $(PERLASM_SCHEME) $@
x86_64-mont5.s:	asm/x86_64-mont5.pl
	$(PERL) asm/x86_64-mont5.pl $(PERLASM_SCHEME) > $@
	$(PERL) asm/x86_64-mont5.pl $(PERLASM_SCHEME) $@
x86_64-gf2m.s:	asm/x86_64-gf2m.pl
	$(PERL) asm/x86_64-gf2m.pl $(PERLASM_SCHEME) > $@
	$(PERL) asm/x86_64-gf2m.pl $(PERLASM_SCHEME) $@
rsaz-x86_64.s:	asm/rsaz-x86_64.pl
	$(PERL) asm/rsaz-x86_64.pl $(PERLASM_SCHEME) > $@
	$(PERL) asm/rsaz-x86_64.pl $(PERLASM_SCHEME) $@
rsaz-avx2.s:	asm/rsaz-avx2.pl 
	$(PERL) asm/rsaz-avx2.pl $(PERLASM_SCHEME) > $@
	$(PERL) asm/rsaz-avx2.pl $(PERLASM_SCHEME) $@

bn-ia64.s:	asm/ia64.S
	$(CC) $(CFLAGS) -E asm/ia64.S > $@
	$(CC) $(CFLAGS) -E asm/ia64.S $@
ia64-mont.s:	asm/ia64-mont.pl
	$(PERL) asm/ia64-mont.pl $@ $(CFLAGS)
	$(PERL) asm/ia64-mont.pl $(CFLAGS) $@

parisc-mont.s:	asm/parisc-mont.pl
	$(PERL) asm/parisc-mont.pl $(PERLASM_SCHEME) $@
@@ -119,7 +119,7 @@ ppc64-mont.s: asm/ppc64-mont.pl;$(PERL) asm/ppc64-mont.pl $(PERLASM_SCHEME) $@

alpha-mont.s:	asm/alpha-mont.pl
	(preproc=$$$$.$@.S; trap "rm $$preproc" INT; \
	$(PERL) asm/alpha-mont.pl > $$preproc && \
	$(PERL) asm/alpha-mont.pl $$preproc && \
	$(CC) -E -P $$preproc > $@ && rm $$preproc)

# GNU make "catch all"
+3 −0
Original line number Diff line number Diff line
@@ -15,6 +15,9 @@
# I.e. if you compare 1GHz 21264 and 2GHz Opteron, you'll observe ~2x
# difference.

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

# int bn_mul_mont(
$rp="a0";	# BN_ULONG *rp,
$ap="a1";	# const BN_ULONG *ap,
+5 −1
Original line number Diff line number Diff line
@@ -4,6 +4,9 @@ $0 =~ m/(.*[\/\\])[^\/\\]+$/; $dir=$1;
push(@INC,"${dir}","${dir}../../perlasm");
require "x86asm.pl";

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

&asm_init($ARGV[0],$0);

$sse2=0;
@@ -21,6 +24,8 @@ for (@ARGV) { $sse2=1 if (/-DOPENSSL_IA32_SSE2/); }

&asm_finish();

close STDOUT;

sub bn_mul_add_words
	{
	local($name)=@_;
@@ -771,4 +776,3 @@ sub bn_sub_part_words

	&function_end($name);
	}
+5 −0
Original line number Diff line number Diff line
@@ -4,6 +4,9 @@ $0 =~ m/(.*[\/\\])[^\/\\]+$/; $dir=$1;
push(@INC,"${dir}","${dir}../../perlasm");
require "x86asm.pl";

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

&asm_init($ARGV[0],$0);

&bn_mul_comba("bn_mul_comba8",8);
@@ -13,6 +16,8 @@ require "x86asm.pl";

&asm_finish();

close STDOUT;

sub mul_add_c
	{
	local($a,$ai,$b,$bi,$c0,$c1,$c2,$pos,$i,$na,$nb)=@_;
+3 −1
Original line number Diff line number Diff line
@@ -60,6 +60,8 @@
# hereafter less for longer keys, while verify - by 74-13%.
# DSA performance improves by 115-30%.

$output=pop;

if ($^O eq "hpux") {
    $ADDP="addp4";
    for (@ARGV) { $ADDP="add" if (/[\+DD|\-mlp]64/); }
@@ -846,6 +848,6 @@ copyright:
stringz	"Montgomery multiplication for IA-64, CRYPTOGAMS by <appro\@openssl.org>"
___

$output=shift and open STDOUT,">$output";
open STDOUT,">$output" if $output;
print $code;
close STDOUT;
Loading