<html><head><meta name="color-scheme" content="light dark"></head><body><pre style="word-wrap: break-word; white-space: pre-wrap;">.text

.type	_mul_1x1,@function
.align	16
_mul_1x1:
	lgr	%r6,%r3
	sllg	%r7,%r3,1
	sllg	%r8,%r3,2
	sllg	%r9,%r3,3

	srag	%r3,%r6,63			# broadcast 63rd bit
	nihh	%r6,0x1fff
	srag	%r12,%r7,63			# broadcast 62nd bit
	nihh	%r7,0x3fff
	srag	%r13,%r8,63			# broadcast 61st bit
	nihh	%r8,0x7fff
	ngr	%r3,%r5
	ngr	%r12,%r5
	ngr	%r13,%r5

	lghi	%r0,0
	lgr	%r10,%r6
	stg	%r0,160(%r15)	# tab[0]=0
	xgr	%r10,%r7
	stg	%r6,168(%r15)	# tab[1]=a1
	 lgr	%r11,%r8
	stg	%r7,176(%r15)	# tab[2]=a2
	 xgr	%r11,%r9
	stg	%r10,184(%r15)	# tab[3]=a1^a2
	 xgr	%r6,%r8

	stg	%r8,192(%r15)	# tab[4]=a4
	xgr	%r7,%r8
	stg	%r6,200(%r15)	# tab[5]=a1^a4
	xgr	%r10,%r8
	stg	%r7,208(%r15)	# tab[6]=a2^a4
	 xgr	%r6,%r11
	stg	%r10,216(%r15)	# tab[7]=a1^a2^a4
	 xgr	%r7,%r11

	stg	%r9,224(%r15)	# tab[8]=a8
	xgr	%r10,%r11
	stg	%r6,232(%r15)	# tab[9]=a1^a8
	 xgr	%r6,%r8
	stg	%r7,240(%r15)	# tab[10]=a2^a8
	 xgr	%r7,%r8
	stg	%r10,248(%r15)	# tab[11]=a1^a2^a8

	xgr	%r10,%r8
	stg	%r11,256(%r15)	# tab[12]=a4^a8
	 srlg	%r4,%r3,1
	stg	%r6,264(%r15)	# tab[13]=a1^a4^a8
	 sllg	%r3,%r3,63
	stg	%r7,272(%r15)	# tab[14]=a2^a4^a8
	 srlg	%r0,%r12,2
	stg	%r10,280(%r15)	# tab[15]=a1^a2^a4^a8

	lghi	%r9,120
	sllg	%r6,%r12,62
	 sllg	%r12,%r5,3
	srlg	%r1,%r13,3
	 ngr	%r12,%r9
	sllg	%r7,%r13,61
	 srlg	%r13,%r5,4-3
	xgr	%r4,%r0
	 ngr	%r13,%r9
	xgr	%r3,%r6
	xgr	%r4,%r1
	xgr	%r3,%r7

	xg	%r3,160(%r12,%r15)
	srlg	%r12,%r5,8-3
	ngr	%r12,%r9
	lg	%r1,160(%r13,%r15)
	srlg	%r13,%r5,12-3
	sllg	%r0,%r1,4
	ngr	%r13,%r9
	srlg	%r1,%r1,60
	xgr	%r3,%r0
	xgr	%r4,%r1
	lg	%r0,160(%r12,%r15)
	srlg	%r12,%r5,16-3
	sllg	%r1,%r0,8
	ngr	%r12,%r9
	srlg	%r0,%r0,56
	xgr	%r3,%r1
	xgr	%r4,%r0
	lg	%r1,160(%r13,%r15)
	srlg	%r13,%r5,20-3
	sllg	%r0,%r1,12
	ngr	%r13,%r9
	srlg	%r1,%r1,52
	xgr	%r3,%r0
	xgr	%r4,%r1
	lg	%r0,160(%r12,%r15)
	srlg	%r12,%r5,24-3
	sllg	%r1,%r0,16
	ngr	%r12,%r9
	srlg	%r0,%r0,48
	xgr	%r3,%r1
	xgr	%r4,%r0
	lg	%r1,160(%r13,%r15)
	srlg	%r13,%r5,28-3
	sllg	%r0,%r1,20
	ngr	%r13,%r9
	srlg	%r1,%r1,44
	xgr	%r3,%r0
	xgr	%r4,%r1
	lg	%r0,160(%r12,%r15)
	srlg	%r12,%r5,32-3
	sllg	%r1,%r0,24
	ngr	%r12,%r9
	srlg	%r0,%r0,40
	xgr	%r3,%r1
	xgr	%r4,%r0
	lg	%r1,160(%r13,%r15)
	srlg	%r13,%r5,36-3
	sllg	%r0,%r1,28
	ngr	%r13,%r9
	srlg	%r1,%r1,36
	xgr	%r3,%r0
	xgr	%r4,%r1
	lg	%r0,160(%r12,%r15)
	srlg	%r12,%r5,40-3
	sllg	%r1,%r0,32
	ngr	%r12,%r9
	srlg	%r0,%r0,32
	xgr	%r3,%r1
	xgr	%r4,%r0
	lg	%r1,160(%r13,%r15)
	srlg	%r13,%r5,44-3
	sllg	%r0,%r1,36
	ngr	%r13,%r9
	srlg	%r1,%r1,28
	xgr	%r3,%r0
	xgr	%r4,%r1
	lg	%r0,160(%r12,%r15)
	srlg	%r12,%r5,48-3
	sllg	%r1,%r0,40
	ngr	%r12,%r9
	srlg	%r0,%r0,24
	xgr	%r3,%r1
	xgr	%r4,%r0
	lg	%r1,160(%r13,%r15)
	srlg	%r13,%r5,52-3
	sllg	%r0,%r1,44
	ngr	%r13,%r9
	srlg	%r1,%r1,20
	xgr	%r3,%r0
	xgr	%r4,%r1
	lg	%r0,160(%r12,%r15)
	srlg	%r12,%r5,56-3
	sllg	%r1,%r0,48
	ngr	%r12,%r9
	srlg	%r0,%r0,16
	xgr	%r3,%r1
	xgr	%r4,%r0
	lg	%r1,160(%r13,%r15)
	srlg	%r13,%r5,60-3
	sllg	%r0,%r1,52
	ngr	%r13,%r9
	srlg	%r1,%r1,12
	xgr	%r3,%r0
	xgr	%r4,%r1
	lg	%r0,160(%r12,%r15)
	sllg	%r1,%r0,56
	srlg	%r0,%r0,8
	xgr	%r3,%r1
	xgr	%r4,%r0

	lg	%r1,160(%r13,%r15)
	sllg	%r0,%r1,60
	srlg	%r1,%r1,4
	xgr	%r3,%r0
	xgr	%r4,%r1

	br	%r14
.size	_mul_1x1,.-_mul_1x1

.globl	bn_GF2m_mul_2x2
.type	bn_GF2m_mul_2x2,@function
.align	16
bn_GF2m_mul_2x2:
	stmg	%r3,%r15,3*8(%r15)

	lghi	%r1,-160-128
	la	%r0,0(%r15)
	la	%r15,0(%r1,%r15)			# alloca
	stg	%r0,0(%r15)			# back chain
	bras	%r14,_mul_1x1			# a1Â·b1
	stmg	%r3,%r4,16(%r2)

	lg	%r3,320(%r15)
	lg	%r5,336(%r15)
	bras	%r14,_mul_1x1			# a0Â·b0
	stmg	%r3,%r4,0(%r2)

	lg	%r3,312(%r15)
	lg	%r5,328(%r15)
	xg	%r3,320(%r15)
	xg	%r5,336(%r15)
	bras	%r14,_mul_1x1			# (a0+a1)Â·(b0+b1)
	lmg	%r6,%r9,0(%r2)

	xgr	%r3,%r4
	xgr	%r4,%r7
	xgr	%r3,%r6
	xgr	%r4,%r8
	xgr	%r3,%r9
	xgr	%r4,%r9
	xgr	%r3,%r4
	stg	%r4,16(%r2)
	stg	%r3,8(%r2)
	lmg	%r6,%r15,336(%r15)
	br	%r14
.size	bn_GF2m_mul_2x2,.-bn_GF2m_mul_2x2
.string	"GF(2^m) Multiplication for s390x, CRYPTOGAMS by &lt;appro@openssl.org&gt;"
</pre></body></html>