Detlef Schmier wrote: > > Hello, > > I try to compile openssl-0.9.2b on "Digital UNIX V4.0E (Rev. 1091)" using > the normal C-compiler. > > Make stops to load openssl after all libraries are compiled: > > ld: > Unresolved: > bn_div_words > *** Exit 1 > Stop. > > Please advice > There are three options to solve this: 1. pass no-asm to ./Configure, 2. patch asm/alpha.s to include bn_div_words, or, 3. start with 2 above, then find an axp guru and optimize things. In case you take the third way, please send us the results :) I'll include the original article from Holger Reiff who submitted the patch, and, the patch itself: ---------------- Date: Tue, 23 Mar 1999 10:37:28 +0000 From: Hannes Reinecke <[EMAIL PROTECTED]> Organization: Heriot Watt University, Edinburgh To: OpenSSL developer list <[EMAIL PROTECTED]> Subject: Patch: BN_div_words in asm/alpha.s Reply-To: [EMAIL PROTECTED] Hi all, here is a patch for adding bn_div_words to asm/alpha.s. It got lost somehow, but without the assembler version won't compile. I'm not entirely familiar with the internal working of openssl, but to my untrained eye bn_asm.c:bn_div_words and bn_mulw.c:bn_div64 are looking suspiciously similar. Is there a special reason for it or can we just scrap one version ? (I suspect that's also why bn_div_words does not appear in asm/alpha.s; it just got renamed to bn_div64 hoping that all functions would call this and not bn_div_words. Evolutionary programming :-). HTH, Hannes -- Hannes Reinecke <[EMAIL PROTECTED]> Fluid Loading and Instrumentation Center Tel: (+44) 131 451 3149 Dept. of Civil & Offshore Engineering Fax: (+44) 131 451 3154 Heriot Watt University, Edinburgh EH14 4AS ---------------- -- Niels Poppe - org.net bv <[EMAIL PROTECTED]>
diff -u --recursive openssl-SNAP-19990316-1530/crypto/bn/asm/alpha.s openssl.works/crypto/bn/asm/alpha.s --- openssl-SNAP-19990316-1530/crypto/bn/asm/alpha.s Mon Dec 21 10:59:03 1998 +++ openssl.works/crypto/bn/asm/alpha.s Sun Mar 21 00:40:33 1999 @@ -530,6 +530,129 @@ $103: ret $31,($26),1 .end bn_sub_words + .align 5 + .globl bn_div_words + .ent bn_div_words +bn_div_words: + .frame $30,48,$26,0 + .mask 0x4003e00,-48 + ldgp $29,0($27) +bn_div_words..ng: + subq $30,48,$30 + stq $9,8($30) + stq $10,16($30) + bis $16,$16,$9 + stq $11,24($30) + bis $17,$17,$10 + stq $12,32($30) + bis $18,$18,$11 + stq $13,40($30) + bis $31,2,$12 + stq $26,0($30) + .prologue 1 + bis $31,$31,$13 + bne $11,$236 + lda $0,-1 + br $31,$255 +$236: + bis $11,$11,$16 + jsr $26,BN_num_bits_word + ldgp $29,0($26) + cmpeq $0,64,$1 + bne $1,$237 + bis $31,1,$1 + sll $1,$0,$1 + cmpule $9,$1,$1 + bne $1,$237 + jsr $26,abort + ldgp $29,0($26) +$237: + bis $31,64,$4 + cmpult $9,$11,$1 + subq $4,$0,$3 + subq $9,$11,$2 + cmoveq $1,$2,$9 + addl $3,$31,$0 + beq $0,$239 + subq $4,$0,$1 + srl $10,$1,$1 + sll $9,$0,$2 + sll $10,$0,$10 + bis $2,$1,$9 + sll $11,$0,$11 +$239: + srl $11,32,$7 + zapnot $11,15,$8 + lda $22,-1 + br $31,$240 + .align 4 +$253: + srl $10,32,$1 + sll $9,32,$2 + sll $27,32,$13 + bis $2,$1,$9 + sll $10,32,$10 +$240: + srl $9,32,$1 + cmpeq $1,$7,$1 + beq $1,$243 + zapnot $22,15,$27 + br $31,$244 +$243: + bis $9,$9,$24 + bis $7,$7,$25 + divqu $24,$25,$27 +$244: + mulq $27,$7,$5 + subq $9,$5,$3 + zapnot $3,240,$2 + bne $2,$246 + mulq $8,$27,$4 + zapnot $10,240,$1 + sll $3,32,$2 + bis $1,$1,$6 + br $31,$256 + .align 4 +$248: + subq $27,1,$27 + mulq $27,$7,$5 + subq $9,$5,$3 + zapnot $3,240,$2 + bne $2,$246 + mulq $8,$27,$4 + sll $3,32,$2 +$256: + srl $6,32,$1 + addq $2,$1,$1 + cmpule $4,$1,$1 + beq $1,$248 +$246: + mulq $27,$8,$1 + srl $1,32,$3 + sll $1,32,$1 + addq $5,$3,$4 + cmpult $10,$1,$3 + subq $10,$1,$10 + addq $4,$3,$4 + cmpult $9,$4,$2 + beq $2,$252 + addq $9,$11,$9 + subq $27,1,$27 +$252: + subq $9,$4,$9 + subl $12,1,$12 + bne $12,$253 + bis $13,$27,$0 +$255: + ldq $26,0($30) + ldq $9,8($30) + ldq $10,16($30) + ldq $11,24($30) + ldq $12,32($30) + ldq $13,40($30) + addq $30,48,$30 + ret $31,($26),1 + .end bn_div_words .text .align 3 .globl bn_mul_comba4