$d=&data();
$d =~ s/CC/0/g;
$d =~ s/R1/1/g;
$d =~ s/R2/2/g;
$d =~ s/R3/3/g;
$d =~ s/R4/4/g;
$d =~ s/L1/5/g;
$d =~ s/L2/6/g;
$d =~ s/L3/7/g;
$d =~ s/L4/8/g;
$d =~ s/O1/22/g;
$d =~ s/O2/23/g;
$d =~ s/O3/24/g;
$d =~ s/O4/25/g;
$d =~ s/A1/20/g;
$d =~ s/A2/21/g;
$d =~ s/A3/27/g;
$d =~ s/A4/28/g;
if (0){
}
print $d;
sub data
{
local($data)=<<'EOF';
.file 1 "bn_asm.c"
.set noat
gcc2_compiled.:
__gnu_compiled_c:
.text
.align 3
.globl bn_mul_add_words
.ent bn_mul_add_words
bn_mul_add_words:
bn_mul_add_words..ng:
.frame $30,0,$26,0
.prologue 0
.align 5
subq $18,4,$18
bis $31,$31,$CC
blt $18,$43 ldq $A1,0($17) ldq $R1,0($16) .align 3
$42:
mulq $A1,$19,$L1 ldq $A2,8($17) ldq $R2,8($16) umulh $A1,$19,$A1 ldq $A3,16($17) ldq $R3,16($16) mulq $A2,$19,$L2 ldq $A4,24($17) addq $R1,$L1,$R1 ldq $R4,24($16) umulh $A2,$19,$A2 cmpult $R1,$L1,$O1 addq $A1,$O1,$A1 addq $R1,$CC,$R1 mulq $A3,$19,$L3 cmpult $R1,$CC,$CC addq $R2,$L2,$R2 addq $A1,$CC,$CC cmpult $R2,$L2,$O2 addq $A2,$O2,$A2 umulh $A3,$19,$A3 addq $R2,$CC,$R2 cmpult $R2,$CC,$CC subq $18,4,$18
mulq $A4,$19,$L4 addq $A2,$CC,$CC addq $R3,$L3,$R3 addq $16,32,$16
cmpult $R3,$L3,$O3 stq $R1,-32($16) umulh $A4,$19,$A4 addq $A3,$O3,$A3 addq $R3,$CC,$R3 stq $R2,-24($16) cmpult $R3,$CC,$CC stq $R3,-16($16) addq $R4,$L4,$R4 addq $A3,$CC,$CC cmpult $R4,$L4,$O4 addq $17,32,$17
addq $A4,$O4,$A4 addq $R4,$CC,$R4 cmpult $R4,$CC,$CC stq $R4,-8($16) addq $A4,$CC,$CC blt $18,$43
ldq $A1,0($17) ldq $R1,0($16)
br $42
.align 4
$45:
ldq $A1,0($17) ldq $R1,0($16) mulq $A1,$19,$L1 subq $18,1,$18
addq $16,8,$16
addq $17,8,$17
umulh $A1,$19,$A1 addq $R1,$L1,$R1 cmpult $R1,$L1,$O1 addq $A1,$O1,$A1 addq $R1,$CC,$R1 cmpult $R1,$CC,$CC addq $A1,$CC,$CC stq $R1,-8($16) bgt $18,$45
ret $31,($26),1
.align 4
$43:
addq $18,4,$18
bgt $18,$45 ret $31,($26),1
.end bn_mul_add_words
.align 3
.globl bn_mul_words
.ent bn_mul_words
bn_mul_words:
bn_mul_words..ng:
.frame $30,0,$26,0
.prologue 0
.align 5
subq $18,4,$18
bis $31,$31,$CC
blt $18,$143 ldq $A1,0($17) .align 3
$142:
mulq $A1,$19,$L1 ldq $A2,8($17) ldq $A3,16($17) umulh $A1,$19,$A1 ldq $A4,24($17) mulq $A2,$19,$L2 addq $L1,$CC,$L1 subq $18,4,$18
cmpult $L1,$CC,$CC umulh $A2,$19,$A2 addq $A1,$CC,$CC addq $17,32,$17
addq $L2,$CC,$L2 mulq $A3,$19,$L3 cmpult $L2,$CC,$CC addq $A2,$CC,$CC addq $16,32,$16
umulh $A3,$19,$A3 stq $L1,-32($16) mulq $A4,$19,$L4 addq $L3,$CC,$L3 stq $L2,-24($16) cmpult $L3,$CC,$CC umulh $A4,$19,$A4 addq $A3,$CC,$CC stq $L3,-16($16) addq $L4,$CC,$L4 cmpult $L4,$CC,$CC
addq $A4,$CC,$CC
stq $L4,-8($16)
blt $18,$143
ldq $A1,0($17)
br $142
.align 4
$145:
ldq $A1,0($17) mulq $A1,$19,$L1 subq $18,1,$18
umulh $A1,$19,$A1 addq $L1,$CC,$L1 addq $16,8,$16
cmpult $L1,$CC,$CC addq $17,8,$17
addq $A1,$CC,$CC stq $L1,-8($16)
bgt $18,$145
ret $31,($26),1
.align 4
$143:
addq $18,4,$18
bgt $18,$145 ret $31,($26),1
.end bn_mul_words
.align 3
.globl bn_sqr_words
.ent bn_sqr_words
bn_sqr_words:
bn_sqr_words..ng:
.frame $30,0,$26,0
.prologue 0
subq $18,4,$18
blt $18,$543 ldq $A1,0($17) .align 3
$542:
mulq $A1,$A1,$L1 ldq $A2,8($17) subq $18,4
umulh $A1,$A1,$R1 ldq $A3,16($17) mulq $A2,$A2,$L2 ldq $A4,24($17) stq $L1,0($16) umulh $A2,$A2,$R2 stq $R1,8($16) mulq $A3,$A3,$L3 stq $L2,16($16) umulh $A3,$A3,$R3 stq $R2,24($16) mulq $A4,$A4,$L4 stq $L3,32($16) umulh $A4,$A4,$R4 stq $R3,40($16)
addq $16,64,$16
addq $17,32,$17
stq $L4,-16($16) stq $R4,-8($16)
blt $18,$543
ldq $A1,0($17) br $542
$442:
ldq $A1,0($17) mulq $A1,$A1,$L1 addq $16,16,$16
addq $17,8,$17
subq $18,1,$18
umulh $A1,$A1,$R1 stq $L1,-16($16) stq $R1,-8($16)
bgt $18,$442
ret $31,($26),1
.align 4
$543:
addq $18,4,$18
bgt $18,$442 ret $31,($26),1 .end bn_sqr_words
.align 3
.globl bn_add_words
.ent bn_add_words
bn_add_words:
bn_add_words..ng:
.frame $30,0,$26,0
.prologue 0
subq $19,4,$19
bis $31,$31,$CC blt $19,$900
ldq $L1,0($17) ldq $R1,0($18) .align 3
$901:
addq $R1,$L1,$R1 ldq $L2,8($17) cmpult $R1,$L1,$O1 ldq $R2,8($18) addq $R1,$CC,$R1 ldq $L3,16($17) cmpult $R1,$CC,$CC ldq $R3,16($18) addq $CC,$O1,$CC
ldq $L4,24($17) addq $R2,$L2,$R2 ldq $R4,24($18) cmpult $R2,$L2,$O2 addq $R3,$L3,$R3 addq $R2,$CC,$R2 cmpult $R3,$L3,$O3 cmpult $R2,$CC,$CC addq $R4,$L4,$R4 addq $CC,$O2,$CC
cmpult $R4,$L4,$O4 addq $R3,$CC,$R3 stq $R1,0($16) cmpult $R3,$CC,$CC stq $R2,8($16) addq $CC,$O3,$CC
stq $R3,16($16) addq $R4,$CC,$R4 subq $19,4,$19 cmpult $R4,$CC,$CC addq $17,32,$17 addq $CC,$O4,$CC
stq $R4,24($16) addq $18,32,$18 addq $16,32,$16
blt $19,$900
ldq $L1,0($17) ldq $R1,0($18) br $901
.align 4
$945:
ldq $L1,0($17) ldq $R1,0($18) addq $R1,$L1,$R1 subq $19,1,$19 addq $R1,$CC,$R1 addq $17,8,$17 cmpult $R1,$L1,$O1 cmpult $R1,$CC,$CC addq $18,8,$18 stq $R1,0($16) addq $CC,$O1,$CC
addq $16,8,$16
bgt $19,$945
ret $31,($26),1
$900:
addq $19,4,$19
bgt $19,$945 ret $31,($26),1 .end bn_add_words
.align 3
.globl bn_sub_words
.ent bn_sub_words
bn_sub_words:
bn_sub_words..ng:
.frame $30,0,$26,0
.prologue 0
subq $19,4,$19
bis $31,$31,$CC br $800
blt $19,$800
ldq $L1,0($17) ldq $R1,0($18) .align 3
$801:
addq $R1,$L1,$R1 ldq $L2,8($17) cmpult $R1,$L1,$O1 ldq $R2,8($18) addq $R1,$CC,$R1 ldq $L3,16($17) cmpult $R1,$CC,$CC ldq $R3,16($18) addq $CC,$O1,$CC
ldq $L4,24($17) addq $R2,$L2,$R2 ldq $R4,24($18) cmpult $R2,$L2,$O2 addq $R3,$L3,$R3 addq $R2,$CC,$R2 cmpult $R3,$L3,$O3 cmpult $R2,$CC,$CC addq $R4,$L4,$R4 addq $CC,$O2,$CC
cmpult $R4,$L4,$O4 addq $R3,$CC,$R3 stq $R1,0($16) cmpult $R3,$CC,$CC stq $R2,8($16) addq $CC,$O3,$CC
stq $R3,16($16) addq $R4,$CC,$R4 subq $19,4,$19 cmpult $R4,$CC,$CC addq $17,32,$17 addq $CC,$O4,$CC
stq $R4,24($16) addq $18,32,$18 addq $16,32,$16
blt $19,$800
ldq $L1,0($17) ldq $R1,0($18) br $801
.align 4
$845:
ldq $L1,0($17) ldq $R1,0($18) cmpult $L1,$R1,$O1 subq $L1,$R1,$R1 subq $19,1,$19 cmpult $R1,$CC,$O2 subq $R1,$CC,$R1 addq $17,8,$17 addq $18,8,$18 stq $R1,0($16) addq $O2,$O1,$CC
addq $16,8,$16
bgt $19,$845
ret $31,($26),1
$800:
addq $19,4,$19
bgt $19,$845 ret $31,($26),1 .end bn_sub_words
.text
.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,$119
lda $0,-1
br $31,$136
.align 4
$119:
bis $11,$11,$16
jsr $26,BN_num_bits_word
ldgp $29,0($26)
subq $0,64,$1
beq $1,$120
bis $31,1,$1
sll $1,$0,$1
cmpule $9,$1,$1
bne $1,$120
jsr $26,abort
ldgp $29,0($26)
.align 4
$120:
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,$122
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
$122:
srl $11,32,$5
zapnot $11,15,$6
lda $7,-1
.align 5
$123:
srl $9,32,$1
subq $1,$5,$1
bne $1,$126
zapnot $7,15,$27
br $31,$127
.align 4
$126:
bis $9,$9,$24
bis $5,$5,$25
divqu $24,$25,$27
$127:
srl $10,32,$4
.align 5
$128:
mulq $27,$5,$1
subq $9,$1,$3
zapnot $3,240,$1
bne $1,$129
mulq $6,$27,$2
sll $3,32,$1
addq $1,$4,$1
cmpule $2,$1,$2
bne $2,$129
subq $27,1,$27
br $31,$128
.align 4
$129:
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,$134
addq $9,$11,$9
subq $27,1,$27
$134:
subl $12,1,$12
subq $9,$4,$9
beq $12,$124
sll $27,32,$13
sll $9,32,$2
srl $10,32,$1
sll $10,32,$10
bis $2,$1,$9
br $31,$123
.align 4
$124:
bis $13,$27,$0
$136:
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
return($data);
}