Revert "Revert "and added files""
[bcm963xx.git] / userapps / opensource / openssl / crypto / bn / asm / alpha / div.pl
diff --git a/userapps/opensource/openssl/crypto/bn/asm/alpha/div.pl b/userapps/opensource/openssl/crypto/bn/asm/alpha/div.pl
new file mode 100755 (executable)
index 0000000..e9e6808
--- /dev/null
@@ -0,0 +1,144 @@
+#!/usr/local/bin/perl
+
+sub bn_div_words
+       {
+       local($data)=<<'EOF';
+ #
+ # What follows was taken directly from the C compiler with a few
+ # hacks to redo the lables.
+ #
+.text
+        .set noreorder
+       .set volatile
+       .align 3
+       .globl bn_div_words
+       .ent bn_div_words
+bn_div_words
+       ldgp $29,0($27)
+bn_div_words.ng:
+       lda $30,-48($30)
+       .frame $30,48,$26,0
+       stq $26,0($30)
+       stq $9,8($30)
+       stq $10,16($30)
+       stq $11,24($30)
+       stq $12,32($30)
+       stq $13,40($30)
+       .mask 0x4003e00,-48
+       .prologue 1
+       bis $16,$16,$9
+       bis $17,$17,$10
+       bis $18,$18,$11
+       bis $31,$31,$13
+       bis $31,2,$12
+       bne $11,$9119
+       lda $0,-1
+       br $31,$9136
+       .align 4
+$9119:
+       bis $11,$11,$16
+       jsr $26,BN_num_bits_word
+       ldgp $29,0($26)
+       subq $0,64,$1
+       beq $1,$9120
+       bis $31,1,$1
+       sll $1,$0,$1
+       cmpule $9,$1,$1
+       bne $1,$9120
+ #     lda $16,_IO_stderr_
+ #     lda $17,$C32
+ #     bis $0,$0,$18
+ #     jsr $26,fprintf
+ #     ldgp $29,0($26)
+       jsr $26,abort
+       ldgp $29,0($26)
+       .align 4
+$9120:
+       bis $31,64,$3
+       cmpult $9,$11,$2
+       subq $3,$0,$1
+       addl $1,$31,$0
+       subq $9,$11,$1
+       cmoveq $2,$1,$9
+       beq $0,$9122
+       zapnot $0,15,$2
+       subq $3,$0,$1
+       sll $11,$2,$11
+       sll $9,$2,$3
+       srl $10,$1,$1
+       sll $10,$2,$10
+       bis $3,$1,$9
+$9122:
+       srl $11,32,$5
+       zapnot $11,15,$6
+       lda $7,-1
+       .align 5
+$9123:
+       srl $9,32,$1
+       subq $1,$5,$1
+       bne $1,$9126
+       zapnot $7,15,$27
+       br $31,$9127
+       .align 4
+$9126:
+       bis $9,$9,$24
+       bis $5,$5,$25
+       divqu $24,$25,$27
+$9127:
+       srl $10,32,$4
+       .align 5
+$9128:
+       mulq $27,$5,$1
+       subq $9,$1,$3
+       zapnot $3,240,$1
+       bne $1,$9129
+       mulq $6,$27,$2
+       sll $3,32,$1
+       addq $1,$4,$1
+       cmpule $2,$1,$2
+       bne $2,$9129
+       subq $27,1,$27
+       br $31,$9128
+       .align 4
+$9129:
+       mulq $27,$6,$1
+       mulq $27,$5,$4
+       srl $1,32,$3
+       sll $1,32,$1
+       addq $4,$3,$4
+       cmpult $10,$1,$2
+       subq $10,$1,$10
+       addq $2,$4,$2
+       cmpult $9,$2,$1
+       bis $2,$2,$4
+       beq $1,$9134
+       addq $9,$11,$9
+       subq $27,1,$27
+$9134:
+       subl $12,1,$12
+       subq $9,$4,$9
+       beq $12,$9124
+       sll $27,32,$13
+       sll $9,32,$2
+       srl $10,32,$1
+       sll $10,32,$10
+       bis $2,$1,$9
+       br $31,$9123
+       .align 4
+$9124:
+       bis $13,$27,$0
+$9136:
+       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
+EOF
+       &asm_add($data);
+       }
+
+1;