File:  [Power 6/32 Unix Tahoe 4.2BSD] / cci / usr / src / usr.lib / libm / log.s
Revision 1.1.1.1 (vendor branch): download - view: text, annotated - select for diffs
Sun Jul 28 12:24:19 2019 UTC (7 years ago) by root
Branches: bsd, MAIN
CVS tags: v12b, HEAD
Power 6/32 Unix version 1.2b

/*	@(#)log.s	4.1	12/25/82	*/

/*
	log returns the natural logarithm of its floating
	point argument.

	The coefficients are #2705 from Hart & etc. (19.38D)

	It calls frexp.
*/
	.data
	.comm	_errno,4
	.align	2
_log2:	.long	0x40317217, 0xf7d1cf7a # .double 0.69314718055994531
	.align	2
_ln10:	.long	0x41135d8d, 0xddaaa8ac # .double 2.3025850929940457
	.align	2
_sqrto2:.long	0x403504f3, 0x33f9de65 # .double 0.70710678118654753
	.align	2
_p0:	.long	0xc2c01c81, 0x046c108e # .double -24.013917955921051
	.align	2
_p1:	.long	0x42f7a889, 0x23899922 # .double 30.95729282153765
	.align	2
_p2:	.long	0xc21a33fb, 0x68988b11 # .double -9.6376909337784051
	.align	2
_p3:	.long	0x3fd798c3, 0x90479865 # .double 0.42108737121797971
	.align	2
_q0: 	.long	0xc2401c81, 0x046c108e # .double -12.006958977960525
	.align	2
_q1:	.long	0x429bd904, 0xbd2c246c # .double 19.480966070088973
	.align	2
_q2: 	.long	0xc20e93e7, 0x0f647221 # .double -8.9111090279831233
	.text
LL0:	.align	1
	.globl	_log
	.data
	.align	2
L57:	.long	0xfffffffe, 0xfffffffe # .double -1.7014117331926443e+38
	.text
	.data
	.align	2
L60:	.long	0x40000000, 0x00000000 # .double 0.5
	.text
	.data
	.align	2
L61:	.long	0x41000000, 0x00000000 # .double 2
	.text
	.data
	.align	2
L63:	.long	0x41000000, 0x00000000 # .double 2
	.text
	.data
	.align	2
L64:	.long	0x40800000, 0x00000000 # .double 1
	.align	2
L65:	.long	0x40800000, 0x00000000 # .double 1
	.text
	.data
	.align	2
L66:	.long	0x40800000, 0x00000000 # .double 1
	.text
	.set	L52,0xc
	.data
	.text
_log:	.word	L52
	subl3	$88,fp,sp
	tstl	4(fp)
	jgtr	L56
	movl	$33,_errno
	movl	L57+4,r1
	movl	L57,r0
	ret
L56:	subl3	$88,fp,-(sp)
	pushl	8(fp)
	pushl	4(fp)
	callf	$16,_frexp
	movl	r1,-56(fp)
	movl	r0,-60(fp)
	jbr	L58
L2000001:ldd	-60(fp)
	muld	L61
	std	-60(fp)
	subl2	$1,-88(fp)
L58:	cmpd2	-60(fp),L60
	jlss	L2000001
	cmpd2	-60(fp),_sqrto2
	jgeq	L62
	ldd	L63
	muld	-60(fp)
	std	-60(fp)
	subl2	$1,-88(fp)
L62:	ldd	-60(fp)
	subd	L64
	std	r0
	ldd	-60(fp)
	addd	L65
	std	r2
	ldd	r0
	divd	r2
	std	-68(fp)
	muld	-68(fp)
	std	-76(fp)
	ldd	_p3
	muld	-76(fp)
	addd	_p2
	muld	-76(fp)
	addd	_p1
	muld	-76(fp)
	addd	_p0
	std	-84(fp)
	ldd	L66
	muld	-76(fp)
	addd	_q2
	muld	-76(fp)
	addd	_q1
	muld	-76(fp)
	addd	_q0
	std	r0
	ldd	-84(fp)
	divd	r0
	std	-84(fp)
	muld	-68(fp)
	std	r0
	cvld	-88(fp)
	muld	_log2
	addd	r0
	std	-84(fp)
	movl	-80(fp),r1
	movl	-84(fp),r0
	ret
	.align	1
	.globl	_log10
	.set	L67,0x0
	.data
	.text
_log10:	.word	L67
	pushl	8(fp)
	pushl	4(fp)
	callf	$12,_log
	ldd	r0
	divd	_ln10
	std	r0
	ret


unix.superglobalmegacorp.com

This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.