and added files
[bcm963xx.git] / userapps / opensource / openssl / crypto / bn / asm / alpha / div.pl
1 #!/usr/local/bin/perl
2
3 sub bn_div_words
4         {
5         local($data)=<<'EOF';
6  #
7  # What follows was taken directly from the C compiler with a few
8  # hacks to redo the lables.
9  #
10 .text
11         .set noreorder
12         .set volatile
13         .align 3
14         .globl bn_div_words
15         .ent bn_div_words
16 bn_div_words
17         ldgp $29,0($27)
18 bn_div_words.ng:
19         lda $30,-48($30)
20         .frame $30,48,$26,0
21         stq $26,0($30)
22         stq $9,8($30)
23         stq $10,16($30)
24         stq $11,24($30)
25         stq $12,32($30)
26         stq $13,40($30)
27         .mask 0x4003e00,-48
28         .prologue 1
29         bis $16,$16,$9
30         bis $17,$17,$10
31         bis $18,$18,$11
32         bis $31,$31,$13
33         bis $31,2,$12
34         bne $11,$9119
35         lda $0,-1
36         br $31,$9136
37         .align 4
38 $9119:
39         bis $11,$11,$16
40         jsr $26,BN_num_bits_word
41         ldgp $29,0($26)
42         subq $0,64,$1
43         beq $1,$9120
44         bis $31,1,$1
45         sll $1,$0,$1
46         cmpule $9,$1,$1
47         bne $1,$9120
48  #      lda $16,_IO_stderr_
49  #      lda $17,$C32
50  #      bis $0,$0,$18
51  #      jsr $26,fprintf
52  #      ldgp $29,0($26)
53         jsr $26,abort
54         ldgp $29,0($26)
55         .align 4
56 $9120:
57         bis $31,64,$3
58         cmpult $9,$11,$2
59         subq $3,$0,$1
60         addl $1,$31,$0
61         subq $9,$11,$1
62         cmoveq $2,$1,$9
63         beq $0,$9122
64         zapnot $0,15,$2
65         subq $3,$0,$1
66         sll $11,$2,$11
67         sll $9,$2,$3
68         srl $10,$1,$1
69         sll $10,$2,$10
70         bis $3,$1,$9
71 $9122:
72         srl $11,32,$5
73         zapnot $11,15,$6
74         lda $7,-1
75         .align 5
76 $9123:
77         srl $9,32,$1
78         subq $1,$5,$1
79         bne $1,$9126
80         zapnot $7,15,$27
81         br $31,$9127
82         .align 4
83 $9126:
84         bis $9,$9,$24
85         bis $5,$5,$25
86         divqu $24,$25,$27
87 $9127:
88         srl $10,32,$4
89         .align 5
90 $9128:
91         mulq $27,$5,$1
92         subq $9,$1,$3
93         zapnot $3,240,$1
94         bne $1,$9129
95         mulq $6,$27,$2
96         sll $3,32,$1
97         addq $1,$4,$1
98         cmpule $2,$1,$2
99         bne $2,$9129
100         subq $27,1,$27
101         br $31,$9128
102         .align 4
103 $9129:
104         mulq $27,$6,$1
105         mulq $27,$5,$4
106         srl $1,32,$3
107         sll $1,32,$1
108         addq $4,$3,$4
109         cmpult $10,$1,$2
110         subq $10,$1,$10
111         addq $2,$4,$2
112         cmpult $9,$2,$1
113         bis $2,$2,$4
114         beq $1,$9134
115         addq $9,$11,$9
116         subq $27,1,$27
117 $9134:
118         subl $12,1,$12
119         subq $9,$4,$9
120         beq $12,$9124
121         sll $27,32,$13
122         sll $9,32,$2
123         srl $10,32,$1
124         sll $10,32,$10
125         bis $2,$1,$9
126         br $31,$9123
127         .align 4
128 $9124:
129         bis $13,$27,$0
130 $9136:
131         ldq $26,0($30)
132         ldq $9,8($30)
133         ldq $10,16($30)
134         ldq $11,24($30)
135         ldq $12,32($30)
136         ldq $13,40($30)
137         addq $30,48,$30
138         ret $31,($26),1
139         .end bn_div_words
140 EOF
141         &asm_add($data);
142         }
143
144 1;