Commit 8d51db86 authored by Andy Polyakov's avatar Andy Polyakov Committed by Richard Levitte
Browse files

s390x assembly pack: 32-bit fixups.

parent 6bfb7db3
Loading
Loading
Loading
Loading
+1 −1
Original line number Diff line number Diff line
@@ -238,7 +238,7 @@
    },
    s390x_asm => {
	template	=> 1,
	cpuid_asm_src   => "s390xcap.c s390xcpuid.s",
	cpuid_asm_src   => "s390xcap.c s390xcpuid.S",
	bn_asm_src      => "asm/s390x.S s390x-mont.S s390x-gf2m.s",
	aes_asm_src     => "aes-s390x.S aes-ctr.fake aes-xts.fake",
	sha1_asm_src    => "sha1-s390x.S sha256-s390x.S sha512-s390x.S",
+1 −1
Original line number Diff line number Diff line
@@ -781,7 +781,7 @@ sub vc_wince_info {
        #
        inherit_from     => [ "linux-generic32", asm("s390x_asm") ],
        cflags           => add("-m31 -Wa,-mzarch -DB_ENDIAN"),
        bn_obj           => sub { my $r=join(" ",@_); $r=~s/bn\-s390x/bn_asm/; $r; },
        bn_asm_src       => sub { my $r=join(" ",@_); $r=~s|asm/s390x\.S|bn_asm.c|; $r; },
        perlasm_scheme   => "31",
        shared_ldflag    => "-m31",
        multilib         => "/highgprs",
+4 −1
Original line number Diff line number Diff line
@@ -78,13 +78,15 @@ $code.=<<___;
.type	poly1305_blocks,\@function
.align	16
poly1305_blocks:
	srl${g}	$len,$len,4
	srl${g}	$len,4			# fixed-up in 64-bit build
	lghi	%r0,0
	cl${g}r	$len,%r0
	je	.Lno_data

	stm${g}	%r6,%r14,`6*$SIZE_T`($sp)

	llgfr   $padbit,$padbit		# clear upper half, much needed with
					# non-64-bit ABI
	lg	$r0,32($ctx)		# load key
	lg	$r1,40($ctx)

@@ -211,6 +213,7 @@ ___
}

$code =~ s/\`([^\`]*)\`/eval $1/gem;
$code =~ s/\b(srlg\s+)(%r[0-9]+\s*,)\s*([0-9]+)/$1$2$2$3/gm;

print $code;
close STDOUT;