Commit f861b1d4 authored by Andy Polyakov's avatar Andy Polyakov
Browse files

rc4/asm/rc4-586.pl: allow for 386-only build.

parent fd361a67
Loading
Loading
Loading
Loading
+1 −1
Original line number Diff line number Diff line
@@ -42,7 +42,7 @@ lib: $(LIBOBJ)
	@touch lib

rc4-586.s:	asm/rc4-586.pl ../perlasm/x86asm.pl
	$(PERL) asm/rc4-586.pl $(PERLASM_SCHEME) $(CFLAGS) > $@
	$(PERL) asm/rc4-586.pl $(PERLASM_SCHEME) $(CFLAGS) $(PROCESSOR) > $@

rc4-x86_64.s: asm/rc4-x86_64.pl
	$(PERL) asm/rc4-x86_64.pl $(PERLASM_SCHEME) > $@
+6 −2
Original line number Diff line number Diff line
@@ -63,7 +63,7 @@ $0 =~ m/(.*[\/\\])[^\/\\]+$/; $dir=$1;
push(@INC,"${dir}","${dir}../../perlasm");
require "x86asm.pl";

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

$xx="eax";
$yy="ebx";
@@ -187,8 +187,11 @@ if ($alt=0) {
	&and	($ty,-4);		# how many 4-byte chunks?
	&jz	(&label("loop1"));

	&test	($ty,-8);
	&mov	(&wparam(3),$out);	# $out as accumulator in these loops
					if ($x86only) {
	&jmp	(&label("go4loop4"));
					} else {
	&test	($ty,-8);
	&jz	(&label("go4loop4"));

	&picmeup($out,"OPENSSL_ia32cap_P");
@@ -231,6 +234,7 @@ if ($alt=0) {
	&cmp	($inp,&wparam(1));	# compare to input+len
	&je	(&label("done"));
	&jmp	(&label("loop1"));
					}

&set_label("go4loop4",16);
	&lea	($ty,&DWP(-4,$inp,$ty));