r3000.s   [plain text]


	.file	1 "../bn_mulw.c"
	.set	nobopt
	.option pic2

 # GNU C 2.6.3 [AL 1.1, MM 40] SGI running IRIX 5.0 compiled by GNU C

 # Cc1 defaults:
 # -mabicalls

 # Cc1 arguments (-G value = 0, Cpu = 3000, ISA = 1):
 # -quiet -dumpbase -O2 -o

gcc2_compiled.:
__gnu_compiled_c:
	.rdata

	.byte	0x24,0x52,0x65,0x76,0x69,0x73,0x69,0x6f
	.byte	0x6e,0x3a,0x20,0x31,0x2e,0x34,0x39,0x20
	.byte	0x24,0x0

	.byte	0x24,0x52,0x65,0x76,0x69,0x73,0x69,0x6f
	.byte	0x6e,0x3a,0x20,0x31,0x2e,0x33,0x34,0x20
	.byte	0x24,0x0

	.byte	0x24,0x52,0x65,0x76,0x69,0x73,0x69,0x6f
	.byte	0x6e,0x3a,0x20,0x31,0x2e,0x35,0x20,0x24
	.byte	0x0

	.byte	0x24,0x52,0x65,0x76,0x69,0x73,0x69,0x6f
	.byte	0x6e,0x3a,0x20,0x31,0x2e,0x38,0x20,0x24
	.byte	0x0

	.byte	0x24,0x52,0x65,0x76,0x69,0x73,0x69,0x6f
	.byte	0x6e,0x3a,0x20,0x31,0x2e,0x32,0x33,0x20
	.byte	0x24,0x0

	.byte	0x24,0x52,0x65,0x76,0x69,0x73,0x69,0x6f
	.byte	0x6e,0x3a,0x20,0x31,0x2e,0x37,0x38,0x20
	.byte	0x24,0x0

	.byte	0x24,0x52,0x65,0x76,0x69,0x73,0x69,0x6f
	.byte	0x6e,0x3a,0x20,0x33,0x2e,0x37,0x30,0x20
	.byte	0x24,0x0

	.byte	0x24,0x52,0x65,0x76,0x69,0x73,0x69,0x6f
	.byte	0x6e,0x3a,0x20,0x31,0x2e,0x32,0x20,0x24
	.byte	0x0

	.byte	0x24,0x52,0x65,0x76,0x69,0x73,0x69,0x6f
	.byte	0x6e,0x3a,0x20,0x31,0x2e,0x34,0x20,0x24
	.byte	0x0

	.byte	0x24,0x52,0x65,0x76,0x69,0x73,0x69,0x6f
	.byte	0x6e,0x3a,0x20,0x31,0x2e,0x38,0x20,0x24
	.byte	0x0
	.text
	.align	2
	.globl	bn_mul_add_words
	.ent	bn_mul_add_words
bn_mul_add_words:
	.frame	$sp,0,$31		# vars= 0, regs= 0/0, args= 0, extra= 0
	.mask	0x00000000,0
	.fmask	0x00000000,0
	.set	noreorder
	.cpload	$25
	.set	reorder
	move	$12,$4
	move	$14,$5
	move	$9,$6
	move	$13,$7
	move	$8,$0
	addu	$10,$12,12
	addu	$11,$14,12
$L2:
	lw	$6,0($14)
	#nop
	multu	$13,$6
	mfhi	$6
	mflo	$7
	#nop
	move	$5,$8
	move	$4,$0
	lw	$3,0($12)
	addu	$9,$9,-1
	move	$2,$0
	addu	$7,$7,$3
	sltu	$8,$7,$3
	addu	$6,$6,$2
	addu	$6,$6,$8
	addu	$7,$7,$5
	sltu	$2,$7,$5
	addu	$6,$6,$4
	addu	$6,$6,$2
	srl	$3,$6,0
	move	$2,$0
	move	$8,$3
	.set	noreorder
	.set	nomacro
	beq	$9,$0,$L3
	sw	$7,0($12)
	.set	macro
	.set	reorder

	lw	$6,-8($11)
	#nop
	multu	$13,$6
	mfhi	$6
	mflo	$7
	#nop
	move	$5,$8
	move	$4,$0
	lw	$3,-8($10)
	addu	$9,$9,-1
	move	$2,$0
	addu	$7,$7,$3
	sltu	$8,$7,$3
	addu	$6,$6,$2
	addu	$6,$6,$8
	addu	$7,$7,$5
	sltu	$2,$7,$5
	addu	$6,$6,$4
	addu	$6,$6,$2
	srl	$3,$6,0
	move	$2,$0
	move	$8,$3
	.set	noreorder
	.set	nomacro
	beq	$9,$0,$L3
	sw	$7,-8($10)
	.set	macro
	.set	reorder

	lw	$6,-4($11)
	#nop
	multu	$13,$6
	mfhi	$6
	mflo	$7
	#nop
	move	$5,$8
	move	$4,$0
	lw	$3,-4($10)
	addu	$9,$9,-1
	move	$2,$0
	addu	$7,$7,$3
	sltu	$8,$7,$3
	addu	$6,$6,$2
	addu	$6,$6,$8
	addu	$7,$7,$5
	sltu	$2,$7,$5
	addu	$6,$6,$4
	addu	$6,$6,$2
	srl	$3,$6,0
	move	$2,$0
	move	$8,$3
	.set	noreorder
	.set	nomacro
	beq	$9,$0,$L3
	sw	$7,-4($10)
	.set	macro
	.set	reorder

	lw	$6,0($11)
	#nop
	multu	$13,$6
	mfhi	$6
	mflo	$7
	#nop
	move	$5,$8
	move	$4,$0
	lw	$3,0($10)
	addu	$9,$9,-1
	move	$2,$0
	addu	$7,$7,$3
	sltu	$8,$7,$3
	addu	$6,$6,$2
	addu	$6,$6,$8
	addu	$7,$7,$5
	sltu	$2,$7,$5
	addu	$6,$6,$4
	addu	$6,$6,$2
	srl	$3,$6,0
	move	$2,$0
	move	$8,$3
	.set	noreorder
	.set	nomacro
	beq	$9,$0,$L3
	sw	$7,0($10)
	.set	macro
	.set	reorder

	addu	$11,$11,16
	addu	$14,$14,16
	addu	$10,$10,16
	.set	noreorder
	.set	nomacro
	j	$L2
	addu	$12,$12,16
	.set	macro
	.set	reorder

$L3:
	.set	noreorder
	.set	nomacro
	j	$31
	move	$2,$8
	.set	macro
	.set	reorder

	.end	bn_mul_add_words
	.align	2
	.globl	bn_mul_words
	.ent	bn_mul_words
bn_mul_words:
	.frame	$sp,0,$31		# vars= 0, regs= 0/0, args= 0, extra= 0
	.mask	0x00000000,0
	.fmask	0x00000000,0
	.set	noreorder
	.cpload	$25
	.set	reorder
	move	$11,$4
	move	$12,$5
	move	$8,$6
	move	$6,$0
	addu	$10,$11,12
	addu	$9,$12,12
$L10:
	lw	$4,0($12)
	#nop
	multu	$7,$4
	mfhi	$4
	mflo	$5
	#nop
	move	$3,$6
	move	$2,$0
	addu	$8,$8,-1
	addu	$5,$5,$3
	sltu	$6,$5,$3
	addu	$4,$4,$2
	addu	$4,$4,$6
	srl	$3,$4,0
	move	$2,$0
	move	$6,$3
	.set	noreorder
	.set	nomacro
	beq	$8,$0,$L11
	sw	$5,0($11)
	.set	macro
	.set	reorder

	lw	$4,-8($9)
	#nop
	multu	$7,$4
	mfhi	$4
	mflo	$5
	#nop
	move	$3,$6
	move	$2,$0
	addu	$8,$8,-1
	addu	$5,$5,$3
	sltu	$6,$5,$3
	addu	$4,$4,$2
	addu	$4,$4,$6
	srl	$3,$4,0
	move	$2,$0
	move	$6,$3
	.set	noreorder
	.set	nomacro
	beq	$8,$0,$L11
	sw	$5,-8($10)
	.set	macro
	.set	reorder

	lw	$4,-4($9)
	#nop
	multu	$7,$4
	mfhi	$4
	mflo	$5
	#nop
	move	$3,$6
	move	$2,$0
	addu	$8,$8,-1
	addu	$5,$5,$3
	sltu	$6,$5,$3
	addu	$4,$4,$2
	addu	$4,$4,$6
	srl	$3,$4,0
	move	$2,$0
	move	$6,$3
	.set	noreorder
	.set	nomacro
	beq	$8,$0,$L11
	sw	$5,-4($10)
	.set	macro
	.set	reorder

	lw	$4,0($9)
	#nop
	multu	$7,$4
	mfhi	$4
	mflo	$5
	#nop
	move	$3,$6
	move	$2,$0
	addu	$8,$8,-1
	addu	$5,$5,$3
	sltu	$6,$5,$3
	addu	$4,$4,$2
	addu	$4,$4,$6
	srl	$3,$4,0
	move	$2,$0
	move	$6,$3
	.set	noreorder
	.set	nomacro
	beq	$8,$0,$L11
	sw	$5,0($10)
	.set	macro
	.set	reorder

	addu	$9,$9,16
	addu	$12,$12,16
	addu	$10,$10,16
	.set	noreorder
	.set	nomacro
	j	$L10
	addu	$11,$11,16
	.set	macro
	.set	reorder

$L11:
	.set	noreorder
	.set	nomacro
	j	$31
	move	$2,$6
	.set	macro
	.set	reorder

	.end	bn_mul_words
	.align	2
	.globl	bn_sqr_words
	.ent	bn_sqr_words
bn_sqr_words:
	.frame	$sp,0,$31		# vars= 0, regs= 0/0, args= 0, extra= 0
	.mask	0x00000000,0
	.fmask	0x00000000,0
	.set	noreorder
	.cpload	$25
	.set	reorder
	move	$9,$4
	addu	$7,$9,28
	addu	$8,$5,12
$L18:
	lw	$2,0($5)
	#nop
	multu	$2,$2
	mfhi	$2
	mflo	$3
	#nop
	addu	$6,$6,-1
	sw	$3,0($9)
	srl	$3,$2,0
	move	$2,$0
	.set	noreorder
	.set	nomacro
	beq	$6,$0,$L19
	sw	$3,-24($7)
	.set	macro
	.set	reorder

	lw	$2,-8($8)
	#nop
	multu	$2,$2
	mfhi	$2
	mflo	$3
	#nop
	addu	$6,$6,-1
	sw	$3,-20($7)
	srl	$3,$2,0
	move	$2,$0
	.set	noreorder
	.set	nomacro
	beq	$6,$0,$L19
	sw	$3,-16($7)
	.set	macro
	.set	reorder

	lw	$2,-4($8)
	#nop
	multu	$2,$2
	mfhi	$2
	mflo	$3
	#nop
	addu	$6,$6,-1
	sw	$3,-12($7)
	srl	$3,$2,0
	move	$2,$0
	.set	noreorder
	.set	nomacro
	beq	$6,$0,$L19
	sw	$3,-8($7)
	.set	macro
	.set	reorder

	lw	$2,0($8)
	#nop
	multu	$2,$2
	mfhi	$2
	mflo	$3
	#nop
	addu	$6,$6,-1
	sw	$3,-4($7)
	srl	$3,$2,0
	move	$2,$0
	.set	noreorder
	.set	nomacro
	beq	$6,$0,$L19
	sw	$3,0($7)
	.set	macro
	.set	reorder

	addu	$8,$8,16
	addu	$5,$5,16
	addu	$7,$7,32
	.set	noreorder
	.set	nomacro
	j	$L18
	addu	$9,$9,32
	.set	macro
	.set	reorder

$L19:
	j	$31
	.end	bn_sqr_words
	.rdata
	.align	2
$LC0:

	.byte	0x44,0x69,0x76,0x69,0x73,0x69,0x6f,0x6e
	.byte	0x20,0x77,0x6f,0x75,0x6c,0x64,0x20,0x6f
	.byte	0x76,0x65,0x72,0x66,0x6c,0x6f,0x77,0xa
	.byte	0x0
	.text
	.align	2
	.globl	bn_div64
	.ent	bn_div64
bn_div64:
	.frame	$sp,56,$31		# vars= 0, regs= 7/0, args= 16, extra= 8
	.mask	0x901f0000,-8
	.fmask	0x00000000,0
	.set	noreorder
	.cpload	$25
	.set	reorder
	subu	$sp,$sp,56
	.cprestore 16
	sw	$16,24($sp)
	move	$16,$4
	sw	$17,28($sp)
	move	$17,$5
	sw	$18,32($sp)
	move	$18,$6
	sw	$20,40($sp)
	move	$20,$0
	sw	$19,36($sp)
	li	$19,0x00000002		# 2
	sw	$31,48($sp)
	.set	noreorder
	.set	nomacro
	bne	$18,$0,$L26
	sw	$28,44($sp)
	.set	macro
	.set	reorder

	.set	noreorder
	.set	nomacro
	j	$L43
	li	$2,-1			# 0xffffffff
	.set	macro
	.set	reorder

$L26:
	move	$4,$18
	jal	BN_num_bits_word
	move	$4,$2
	li	$2,0x00000020		# 32
	.set	noreorder
	.set	nomacro
	beq	$4,$2,$L27
	li	$2,0x00000001		# 1
	.set	macro
	.set	reorder

	sll	$2,$2,$4
	sltu	$2,$2,$16
	.set	noreorder
	.set	nomacro
	beq	$2,$0,$L44
	li	$5,0x00000020		# 32
	.set	macro
	.set	reorder

	la	$4,__iob+32
	la	$5,$LC0
	jal	fprintf
	jal	abort
$L27:
	li	$5,0x00000020		# 32
$L44:
	sltu	$2,$16,$18
	.set	noreorder
	.set	nomacro
	bne	$2,$0,$L28
	subu	$4,$5,$4
	.set	macro
	.set	reorder

	subu	$16,$16,$18
$L28:
	.set	noreorder
	.set	nomacro
	beq	$4,$0,$L29
	li	$10,-65536			# 0xffff0000
	.set	macro
	.set	reorder

	sll	$18,$18,$4
	sll	$3,$16,$4
	subu	$2,$5,$4
	srl	$2,$17,$2
	or	$16,$3,$2
	sll	$17,$17,$4
$L29:
	srl	$7,$18,16
	andi	$9,$18,0xffff
$L30:
	srl	$2,$16,16
	.set	noreorder
	.set	nomacro
	beq	$2,$7,$L34
	li	$6,0x0000ffff		# 65535
	.set	macro
	.set	reorder

	divu	$6,$16,$7
$L34:
	mult	$6,$9
	mflo	$5
	#nop
	#nop
	mult	$6,$7
	and	$2,$17,$10
	srl	$8,$2,16
	mflo	$4
$L35:
	subu	$3,$16,$4
	and	$2,$3,$10
	.set	noreorder
	.set	nomacro
	bne	$2,$0,$L36
	sll	$2,$3,16
	.set	macro
	.set	reorder

	addu	$2,$2,$8
	sltu	$2,$2,$5
	.set	noreorder
	.set	nomacro
	beq	$2,$0,$L36
	subu	$5,$5,$9
	.set	macro
	.set	reorder

	subu	$4,$4,$7
	.set	noreorder
	.set	nomacro
	j	$L35
	addu	$6,$6,-1
	.set	macro
	.set	reorder

$L36:
	mult	$6,$7
	mflo	$5
	#nop
	#nop
	mult	$6,$9
	mflo	$4
	#nop
	#nop
	srl	$3,$4,16
	sll	$2,$4,16
	and	$4,$2,$10
	sltu	$2,$17,$4
	.set	noreorder
	.set	nomacro
	beq	$2,$0,$L40
	addu	$5,$5,$3
	.set	macro
	.set	reorder

	addu	$5,$5,1
$L40:
	sltu	$2,$16,$5
	.set	noreorder
	.set	nomacro
	beq	$2,$0,$L41
	subu	$17,$17,$4
	.set	macro
	.set	reorder

	addu	$16,$16,$18
	addu	$6,$6,-1
$L41:
	addu	$19,$19,-1
	.set	noreorder
	.set	nomacro
	beq	$19,$0,$L31
	subu	$16,$16,$5
	.set	macro
	.set	reorder

	sll	$20,$6,16
	sll	$3,$16,16
	srl	$2,$17,16
	or	$16,$3,$2
	.set	noreorder
	.set	nomacro
	j	$L30
	sll	$17,$17,16
	.set	macro
	.set	reorder

$L31:
	or	$2,$20,$6
$L43:
	lw	$31,48($sp)
	lw	$20,40($sp)
	lw	$19,36($sp)
	lw	$18,32($sp)
	lw	$17,28($sp)
	lw	$16,24($sp)
	addu	$sp,$sp,56
	j	$31
	.end	bn_div64

	.globl abort .text
	.globl fprintf .text
	.globl BN_num_bits_word .text