diff --git a/lib/libm/arch/vax/n_argred.S b/lib/libm/arch/vax/n_argred.S index 21cf6f423a4c..18adb7b9c28e 100644 --- a/lib/libm/arch/vax/n_argred.S +++ b/lib/libm/arch/vax/n_argred.S @@ -1,4 +1,4 @@ -/* $NetBSD: n_argred.S,v 1.4 1999/07/02 15:37:35 simonb Exp $ */ +/* $NetBSD: n_argred.S,v 1.5 2000/07/14 04:50:58 matt Exp $ */ /* * Copyright (c) 1985, 1993 * The Regents of the University of California. All rights reserved. @@ -34,6 +34,8 @@ * @(#)argred.s 8.1 (Berkeley) 6/4/93 */ +#include + /* * libm$argred implements Bob Corbett's argument reduction and * libm$sincos implements Peter Tang's double precision sin/cos. @@ -44,14 +46,8 @@ * method: true range reduction to [-pi/4,pi/4], P. Tang & B. Corbett * S. McDonald, April 4, 1985 */ - .text - .globl libm$argred - .type libm$argred,@label - .globl libm$sincos - .type libm$sincos,@label - .align 1 -libm$argred: +ENTRY(__libm_argred, 0) /* * Compare the argument with the largest possible that can * be reduced by table lookup. r3 := |x| will be used in table_lookup . @@ -74,7 +70,8 @@ small_arg: * r3 contains a F-format extension to the reduced argument; * r4 contains a 0 or 1 corresponding to a sin or cos entry. */ -libm$sincos: + +ENTRY(__libm_sincos, 0) /* * Compensate for a cosine entry by adding one to the quadrant number. */ @@ -109,7 +106,7 @@ sine: /* cvtfd r4,r4 ... r5 = 0 after a polyd. */ addd2 r4,r0 # S(X) = beta + S(X) addd2 r6,r0 # S(X) = X + S(X) - brb done + jbr done cosine: muld2 r6,r6 # Xsq = X * X beql zero_arg @@ -126,8 +123,7 @@ done: even: rsb -.data -.align 2 + _ALIGN_TEXT sin_coef: .double 0d-7.53080332264191085773e-13 # s7 = 2^-29 -1.a7f2504ffc49f8.. @@ -264,8 +260,9 @@ leading: twoOverPi: .double 0d+6.36619772367581343076e-01 + .text - .align 1 + _ALIGN_TEXT table_lookup: muld3 r3,twoOverPi,r0 @@ -298,7 +295,7 @@ abs2: * p.0 */ .text - .align 2 + _ALIGN_TEXT /* * Only 256 (actually 225) bits of 2/pi are needed for VAX double * precision; this was determined by enumerating all the nearest @@ -450,7 +447,7 @@ more1: addl2 r1,r5 emul r0,r6,r5,r5 addl2 r0,r6 - brb addbits1 + jbr addbits1 signoff4: emul r1,r6,$0,r4 @@ -484,7 +481,7 @@ more2: emul r0,r6,r4,r5 addl2 r0,r6 - brb addbits2 + jbr addbits2 signoff5: emul r0,r6,r4,r5 @@ -557,7 +554,7 @@ small: */ ashq r6,r9,r10 ashq r6,r8,r9 - brb mult + jbr mult /* p.13 * * Test to see if the sign bit of r9 is on. @@ -571,7 +568,7 @@ tiny: movl $32,r6 movq r8,r10 tstl r10 - brb mult + jbr mult /* p.14 * * Test whether r9 is zero. It is probably @@ -597,7 +594,7 @@ tinier: */ ashq r1,r8,r10 ashq r1,r7,r9 - brb mult + jbr mult /* p.15 * * The following code sets the reduced @@ -607,7 +604,7 @@ zero: clrl r1 clrl r2 clrl r3 - brw return + jbr return /* p.16 * * At this point, r0 contains the octant number, @@ -735,7 +732,7 @@ chop: /* subw2 $217,r6 -S.McD */ subw2 $64,r6 insv r6,$7,$8,r3 - brb return + jbr return /* p.21 * * The following code generates the appropriate diff --git a/lib/libm/arch/vax/n_atan2.S b/lib/libm/arch/vax/n_atan2.S index 1e5805927fad..4a5a772fda93 100644 --- a/lib/libm/arch/vax/n_atan2.S +++ b/lib/libm/arch/vax/n_atan2.S @@ -1,4 +1,4 @@ -/* $NetBSD: n_atan2.S,v 1.3 1999/07/02 15:37:35 simonb Exp $ */ +/* $NetBSD: n_atan2.S,v 1.4 2000/07/14 04:50:58 matt Exp $ */ /* * Copyright (c) 1985, 1993 * The Regents of the University of California. All rights reserved. @@ -34,6 +34,8 @@ * @(#)atan2.s 8.1 (Berkeley) 6/4/93 */ +#include + /* * ATAN2(Y,X) * RETURN ARG (X+iY) @@ -74,12 +76,7 @@ * atan2(y,x) returns the exact ARG(x+iy) nearly rounded. */ - .text - .align 1 - .globl _atan2 - .type _atan2,@function -_atan2 : - .word 0x0ff4 +ENTRY(atan2, 0x0fc0) movq 4(ap),r2 # r2 = y movq 12(ap),r4 # r4 = x bicw3 $0x7f,r2,r0 @@ -96,7 +93,7 @@ _atan2 : movq r2,r0 bicw2 $0x8000,r0 # t = |y| movq r0,r2 # y = |y| - brb begin + jbr begin xnot1: bicw3 $0x807f,r2,r11 # yexp jeql yeq0 # if y=0 goto yeq0 @@ -137,13 +134,13 @@ L10: addd2 r10,r2 # 3y addd2 r4,r2 # 3y+2x divd2 r2,r0 # (2y-3x)/(2x+3y) - brw L60 + jbr L60 L20: cmpw r0,$0x3280 # t : 2**(-28) jlss L80 clrq r6 # Hi=r6=0, Lo=r8=0 clrq r8 - brw L60 + jbr L60 L30: movq $0xda7b2b0d63383fed,r6 # Hi=.46364760900080611433d0 movq $0xf0ea17b2bf912295,r8 # Lo=.10147340032515978826d-17 @@ -153,7 +150,7 @@ L30: addw2 $0x80,r4 # 2x addd2 r2,r4 # 2x+y divd2 r4,r0 # (2y-x)/(2x+y) - brb L60 + jbr L60 L50: movq $0x68c2a2210fda40c9,r6 # Hi=1.5707963267948966135d1 movq $0x06e0145c26332326,r8 # Lo=.22517417741562176079d-17 @@ -161,7 +158,7 @@ L50: bgeq L90 divd3 r2,r4,r0 bisw2 $0x8000,r0 # -x/y - brb L60 + jbr L60 L40: movq $0x68c2a2210fda4049,r6 # Hi=.78539816339744830676d0 movq $0x06e0145c263322a6,r8 # Lo=.11258708870781088040d-17 @@ -183,7 +180,7 @@ L80: ret L90: # x >= 2**25 movq r6,r0 - brb L80 + jbr L80 pim: subd3 r0,$0x68c2a2210fda4149,r0 # pi-t bisw2 -4(fp),r0 @@ -203,7 +200,8 @@ pio2: resop: movq $0x8000,r0 # propagate the reserved operand ret - .align 2 + + _ALIGN_TEXT ptable: .quad 0xb50f5ce96e7abd60 .quad 0x51e44a42c1073e02 diff --git a/lib/libm/arch/vax/n_cabs.S b/lib/libm/arch/vax/n_cabs.S index 2c9bed1a146f..786ce016eb41 100644 --- a/lib/libm/arch/vax/n_cabs.S +++ b/lib/libm/arch/vax/n_cabs.S @@ -1,4 +1,4 @@ -/* $NetBSD: n_cabs.S,v 1.2 1998/10/31 02:06:02 matt Exp $ */ +/* $NetBSD: n_cabs.S,v 1.3 2000/07/14 04:50:58 matt Exp $ */ /* * Copyright (c) 1985, 1993 * The Regents of the University of California. All rights reserved. @@ -34,6 +34,9 @@ * @(#)cabs.s 8.1 (Berkeley) 6/4/93 */ +#include + + .globl _C_LABEL(__libm_dsqrt_r5) /* * double precision complex absolute value * CABS by W. Kahan, 9/7/80. @@ -43,29 +46,15 @@ * output is in r0:r1 (error less than 0.86 ulps) */ - .text - .align 1 - .globl _cabs - .type _cabs,@function - .globl _hypot - .type _hypot,@function - .globl _z_abs - .type _z_abs,@function - .globl libm$cdabs_r6 - .type libm$cdabs_r6,@label - .globl libm$dsqrt_r5 - .type libm$dsqrt_r5,@label - /* entry for c functions cabs and hypot */ -_cabs: -_hypot: - .word 0x807c # save r2-r6, enable floating overflow +ALTENTRY(cabs) +ENTRY(hypot, 0x8040) # save r6, enable floating overflow movq 4(ap),r0 # r0:1 = x movq 12(ap),r2 # r2:3 = y - jmp cabs2 + jbr cabs2 + /* entry for Fortran use, call by: d = abs(z) */ -_z_abs: - .word 0x807c # save r2-r6, enable floating overflow +ENTRY(z_abs, 0x8040) # save r6, enable floating overflow movl 4(ap),r2 # indirect addressing is necessary here movq (r2)+,r0 # r0:1 = x movq (r2),r2 # r2:3 = y @@ -89,7 +78,7 @@ cont: return: ret -libm$cdabs_r6: # ENTRY POINT for cdsqrt +ENTRY(__libm_cdabs_r6,0) # ENTRY POINT for cdsqrt # calculates a scaled (factor in r6) # complex absolute value @@ -133,6 +122,7 @@ ordered: addl2 r5,r4 cvtld r4,r2 addd2 r2,r0 # r0:1 = scaled x^2 + y^2 - jmp libm$dsqrt_r5 # r0:1 = dsqrt(x^2+y^2)/2^r6 + jmp _C_LABEL(__libm_dsqrt_r5)+2 + # r0:1 = dsqrt(x^2+y^2)/2^r6 retsb: rsb # error < 0.86 ulp diff --git a/lib/libm/arch/vax/n_cbrt.S b/lib/libm/arch/vax/n_cbrt.S index 955374be6e77..193c3f75c136 100644 --- a/lib/libm/arch/vax/n_cbrt.S +++ b/lib/libm/arch/vax/n_cbrt.S @@ -1,4 +1,4 @@ -/* $NetBSD: n_cbrt.S,v 1.3 1999/07/02 15:37:35 simonb Exp $ */ +/* $NetBSD: n_cbrt.S,v 1.4 2000/07/14 04:50:58 matt Exp $ */ /* * Copyright (c) 1985, 1993 * The Regents of the University of California. All rights reserved. @@ -34,6 +34,8 @@ * @(#)cbrt.s 8.1 (Berkeley) 6/4/93 */ +#include + /* * double cbrt(double arg) * W. Kahan, 10/13/80. revised 1/13/84 for keeping sign symmetry @@ -42,22 +44,12 @@ * Max error less than 0.667 ulps (unit in the last places) */ - .globl _cbrt - .type _cbrt,@function - .globl _d_cbrt - .type _d_cbrt,@function - .globl _dcbrt_ - .type _dcbrt_,@function - .text - .align 1 - -_cbrt: -_d_cbrt: - .word 0x00fc # save r2 to r7 +ALTENTRY(cbrt) +ENTRY(d_cbrt, 0x00c0) # save r6 & r7 movq 4(ap),r0 # r0 = argument x - jmp dcbrt2 -_dcbrt_: - .word 0x00fc # save r2 to r7 + jbr dcbrt2 + +ENTRY(dcbrt_, 0x00c0) # save r6 & r7 movq *4(ap),r0 # r0 = argument x dcbrt2: bicw3 $0x807f,r0,r2 # biased exponent of x @@ -93,12 +85,10 @@ dcbrt2: bicw3 $0x807f,r0,r2 # biased exponent of x return: ret # error less than 0.667 ulps -.data -.align 2 + _ALIGN_TEXT B : .long 721142941 # (86-0.03306235651)*(2^23) C : .float 0f0.5428571429 # 19/35 D : .float 0f-0.7053061224 # -864/1225 E : .float 0f1.414285714 # 99/70 F : .float 0f1.607142857 # 45/28 G : .float 0f0.3571428571 # 5/14 - diff --git a/lib/libm/arch/vax/n_infnan.S b/lib/libm/arch/vax/n_infnan.S index 06aa4fdebbd0..084826c2be33 100644 --- a/lib/libm/arch/vax/n_infnan.S +++ b/lib/libm/arch/vax/n_infnan.S @@ -1,4 +1,4 @@ -/* $NetBSD: n_infnan.S,v 1.3 1999/07/02 15:37:35 simonb Exp $ */ +/* $NetBSD: n_infnan.S,v 1.4 2000/07/14 04:50:58 matt Exp $ */ /* * Copyright (c) 1985, 1993 * The Regents of the University of California. All rights reserved. @@ -33,10 +33,11 @@ * * @(#)infnan.s 8.1 (Berkeley) 6/4/93 */ - .data - .align 2 +#include + + .text _sccsid: -.asciz "@(#)infnan.s 1.1 (Berkeley) 8/21/85; 8.1 (ucb.elefunt) 6/4/93" + .asciz "@(#)infnan.s\t1.1 (Berkeley) 8/21/85; 8.1 (ucb.elefunt) 6/4/93" /* * infnan(arg) int arg; @@ -48,16 +49,12 @@ _sccsid: */ .set EDOM,33 .set ERANGE,34 - .text - .align 1 - .globl _infnan - .type _infnan,@function -_infnan: - .word 0x0 + +ENTRY(infnan, 0) cmpl 4(ap),$ERANGE bneq 1f - movl $ERANGE,_errno + movl $ERANGE,_C_LABEL(errno) brb 2f -1: movl $EDOM,_errno +1: movl $EDOM,_C_LABEL(errno) 2: emodd $0,$0,$0x8000,r0,r0 # generates the reserved operand fault ret diff --git a/lib/libm/arch/vax/n_sincos.S b/lib/libm/arch/vax/n_sincos.S index 45be868e5a6a..bd80852c4828 100644 --- a/lib/libm/arch/vax/n_sincos.S +++ b/lib/libm/arch/vax/n_sincos.S @@ -1,4 +1,4 @@ -/* $NetBSD: n_sincos.S,v 1.3 1999/07/02 15:37:35 simonb Exp $ */ +/* $NetBSD: n_sincos.S,v 1.4 2000/07/14 04:50:58 matt Exp $ */ /* * Copyright (c) 1985, 1993 * The Regents of the University of California. All rights reserved. @@ -49,12 +49,8 @@ * S. McDonald, April 4, 1985 */ #include - .text - .align 1 - .globl _sin - .type _sin@function -_sin: - .word 0xffc # save r2-r11 + +ENTRY(sin, 0xfc0) movq 4(ap),r0 bicw3 $0x807f,r0,r2 beql 1f # if x is zero or reserved operand then return x @@ -70,9 +66,9 @@ _sin: /* * Entered by sine ; save 0 in r4 . */ - jsb libm$argred + jsb _C_LABEL(__libm_argred)+2 movl $0,r4 - jsb libm$sincos + jsb _C_LABEL(__libm_sincos)+2 bispsw (sp)+ 1: ret @@ -82,12 +78,8 @@ _sin: * method: true range reduction to [-pi/4,pi/4], P. Tang & B. Corbett * S. McDonald, April 4, 1985 */ - .text - .align 1 - .globl _cos - .type _cos,@function -_cos: - .word 0xffc # save r2-r11 + +ENTRY(cos, 0x0fc0) movq 4(ap),r0 bicw3 $0x7f,r0,r2 cmpw $0x8000,r2 @@ -104,8 +96,8 @@ _cos: /* * Entered by cosine ; save 1 in r4 . */ - jsb libm$argred + jsb _C_LABEL(__libm_argred)+2 movl $1,r4 - jsb libm$sincos + jsb _C_LABEL(__libm_sincos)+2 bispsw (sp)+ 1: ret diff --git a/lib/libm/arch/vax/n_sqrt.S b/lib/libm/arch/vax/n_sqrt.S index 9ba43d0f32b3..1f0e24ee1749 100644 --- a/lib/libm/arch/vax/n_sqrt.S +++ b/lib/libm/arch/vax/n_sqrt.S @@ -1,4 +1,4 @@ -/* $NetBSD: n_sqrt.S,v 1.2 1998/10/31 02:06:02 matt Exp $ */ +/* $NetBSD: n_sqrt.S,v 1.3 2000/07/14 04:50:58 matt Exp $ */ /* * Copyright (c) 1985, 1993 * The Regents of the University of California. All rights reserved. @@ -34,6 +34,8 @@ * @(#)sqrt.s 8.1 (Berkeley) 6/4/93 */ +#include + /* * double sqrt(arg) revised August 15,1982 * double arg; @@ -45,31 +47,27 @@ * entry points:_d_sqrt address of double arg is on the stack * _sqrt double arg is on the stack */ - .text - .align 1 - .globl _sqrt - .type _sqrt,@function - .globl _d_sqrt - .type _d_sqrt,@function - .globl libm$dsqrt_r5 - .type libm$dsqrt_r5,@label .set EDOM,33 -_d_sqrt: - .word 0x003c # save r5,r4,r3,r2 +ENTRY(d_sqrt, 0x003c) # save r5,r4,r3,r2 movq *4(ap),r0 - jmp dsqrt2 -_sqrt: - .word 0x003c # save r5,r4,r3,r2 + jbr dsqrt2 + +ENTRY(sqrt, 0x003c) # save r5,r4,r3,r2 movq 4(ap),r0 + dsqrt2: bicw3 $0x807f,r0,r2 # check exponent of input jeql noexp # biased exponent is zero -> 0.0 or reserved - bsbb libm$dsqrt_r5 + bsbb _C_LABEL(__libm_dsqrt_r5)+2 noexp: ret /* **************************** internal procedure */ -libm$dsqrt_r5: /* ENTRY POINT FOR cdabs and cdsqrt */ + +ALTENTRY(__libm_dsqrt_r5) + nop + nop + /* ENTRY POINT FOR cdabs and cdsqrt */ /* returns double square root scaled by */ /* 2^r6 */ @@ -117,8 +115,8 @@ libm$dsqrt_r5: /* ENTRY POINT FOR cdabs and cdsqrt */ rsb # DONE! nonpos: jneq negarg - ret # argument and root are zero + ret # argument and root are zero negarg: pushl $EDOM - calls $1,_infnan # generate the reserved op fault + calls $1,_C_LABEL(infnan) # generate the reserved op fault ret diff --git a/lib/libm/arch/vax/n_support.S b/lib/libm/arch/vax/n_support.S index 394d2c147ff4..b954050b5816 100644 --- a/lib/libm/arch/vax/n_support.S +++ b/lib/libm/arch/vax/n_support.S @@ -1,4 +1,4 @@ -/* $NetBSD: n_support.S,v 1.2 1999/07/02 15:37:35 simonb Exp $ */ +/* $NetBSD: n_support.S,v 1.3 2000/07/14 04:51:00 matt Exp $ */ /* * Copyright (c) 1985, 1993 * The Regents of the University of California. All rights reserved. @@ -33,10 +33,11 @@ * * @(#)support.s 8.1 (Berkeley) 6/4/93 */ - .data - .align 2 +#include + + .text _sccsid: -.asciz "@(#)support.s 1.3 (Berkeley) 8/21/85; 8.1 (ucb.elefunt) 6/4/93" + .asciz "@(#)support.s\t1.3 (Berkeley) 8/21/85; 8.1 (ucb.elefunt) 6/4/93" /* * copysign(x,y), @@ -49,14 +50,10 @@ _sccsid: */ /* - * double copysign(x,y) - * double x,y; + * double copysign(double x,double y) */ - .globl _copysign - .text - .align 1 -_copysign: - .word 0x4 + +ENTRY(copysign, 0) movq 4(ap),r0 # load x into r0 bicw3 $0x807f,r0,r2 # mask off the exponent of x beql Lz # if zero or reserved op then return x @@ -66,14 +63,9 @@ _copysign: Lz: ret /* - * double logb(x) - * double x; + * double logb(double x); */ - .globl _logb - .text - .align 1 -_logb: - .word 0x0 +ENTRY(logb, 0) bicl3 $0xffff807f,4(ap),r0 # mask off the exponent of x beql Ln ashl $-7,r0,r0 # get the bias exponent @@ -86,14 +78,9 @@ Ln: movq 4(ap),r0 # r0:1 = x (zero or reserved op) 1: ret /* - * long finite(x) - * double x; + * long finite(double x); */ - .globl _finite - .text - .align 1 -_finite: - .word 0x0000 +ENTRY(finite, 0) bicw3 $0x7f,4(ap),r0 # mask off the mantissa cmpw r0,$0x8000 # to see if x is the reserved op beql 1f # if so, return FALSE (0) @@ -102,16 +89,27 @@ _finite: 1: clrl r0 ret +/* int isnan(double x); + */ +#if 0 +ENTRY(isnan, 0) + clrl r0 + ret +#endif + +/* int isnanf(float x); + */ +ENTRY(isnanf, 0) + clrl r0 + ret + /* * double scalb(x,N) * double x; double N; */ - .globl _scalb .set ERANGE,34 - .text - .align 1 -_scalb: - .word 0x3c + +ENTRY(scalb, 0) movq 4(ap),r0 bicl3 $0xffff807f,r0,r3 beql ret1 # 0 or reserved operand @@ -129,7 +127,7 @@ _scalb: addl2 r2,r0 ret ovfl: pushl $ERANGE - calls $1,_infnan # if it returns + calls $1,_C_LABEL(infnan) # if it returns bicw3 $0x7fff,4(ap),r2 # get the sign of input arg bisw2 r2,r0 # re-attach the sign to r0/1 ret @@ -142,12 +140,9 @@ ret1: ret * DOUBLE PRECISION (VAX D format 56 bits) * CODED IN VAX ASSEMBLY LANGUAGE BY K.C. NG, 4/8/85. */ - .globl _drem .set EDOM,33 - .text - .align 1 -_drem: - .word 0xffc + +ENTRY(drem, 0x0fc0) subl2 $12,sp movq 4(ap),r0 #r0=x movq 12(ap),r2 #r2=y @@ -192,13 +187,13 @@ C2: muld2 r8,r6 #n*t1 subd2 r6,r0 #x-n*t1 subd2 r4,r0 #(x-n*t1)-n*(t-t1) - brb loop + jbr loop E1: movw -4(fp),r6 #r6=nx beql C3 #if nx=0 goto C3 addw2 r6,r0 #x:=x*2**57 scale up x by nx movw $0,-4(fp) #clear nx - brb loop + jbr loop C3: movq r2,r4 #r4 = y subw2 $0x80,r4 #r4 = y/2 @@ -223,7 +218,7 @@ C5: ret Rop: #Reserved operand pushl $EDOM - calls $1,_infnan #generate reserved op fault + calls $1,_C_LABEL(infnan) #generate reserved op fault ret Ret: movq $0x8000,r0 #propagate reserved op diff --git a/lib/libm/arch/vax/n_tan.S b/lib/libm/arch/vax/n_tan.S index c8dc9014b66f..6e5d06d68d77 100644 --- a/lib/libm/arch/vax/n_tan.S +++ b/lib/libm/arch/vax/n_tan.S @@ -1,4 +1,4 @@ -/* $NetBSD: n_tan.S,v 1.3 1999/07/02 15:37:35 simonb Exp $ */ +/* $NetBSD: n_tan.S,v 1.4 2000/07/14 04:51:00 matt Exp $ */ /* * Copyright (c) 1985, 1993 * The Regents of the University of California. All rights reserved. @@ -34,6 +34,8 @@ * @(#)tan.s 8.1 (Berkeley) 6/4/93 */ +#include + /* This is the implementation of Peter Tang's double precision * tangent for the VAX using Bob Corbett's argument reduction. * @@ -46,12 +48,7 @@ * method: true range reduction to [-pi/4,pi/4], P. Tang & B. Corbett * S. McDonald, April 4, 1985 */ - .text - .align 1 - .globl _tan - .type _tan,@function - -_tan: .word 0xffc # save r2-r11 +ENTRY(tan, 0x0fc0) # save r6-r11 movq 4(ap),r0 bicw3 $0x807f,r0,r2 beql 1f # if x is zero or reserved operand then return x @@ -64,7 +61,7 @@ _tan: .word 0xffc # save r2-r11 * Clear the IV & FU bits. */ bicpsw $0x0060 - jsb libm$argred + jsb _C_LABEL(__libm_argred)+2 /* * At this point, * r0 contains the quadrant number, 0, 1, 2, or 3; @@ -79,7 +76,7 @@ _tan: .word 0xffc # save r2-r11 * Call sine. r4 = 0 implies sine. */ movl $0,r4 - jsb libm$sincos + jsb _C_LABEL(__libm_sincos)+2 /* * Save sin(x) in r11/r10 . */ @@ -90,7 +87,7 @@ _tan: .word 0xffc # save r2-r11 movq (sp)+,r0 movq (sp)+,r2 movl $1,r4 - jsb libm$sincos + jsb _C_LABEL(__libm_sincos)+2 divd3 r0,r10,r0 bispsw (sp)+ 1: ret diff --git a/lib/libm/noieee_src/n_pow.c b/lib/libm/noieee_src/n_pow.c index fa7da8f65220..184ab91c823e 100644 --- a/lib/libm/noieee_src/n_pow.c +++ b/lib/libm/noieee_src/n_pow.c @@ -1,4 +1,4 @@ -/* $NetBSD: n_pow.c,v 1.4 1999/07/02 15:37:37 simonb Exp $ */ +/* $NetBSD: n_pow.c,v 1.5 2000/07/14 04:51:01 matt Exp $ */ /* * Copyright (c) 1985, 1993 * The Regents of the University of California. All rights reserved. @@ -126,6 +126,12 @@ const static double zero=0.0, one=1.0, two=2.0, negone= -1.0; static double pow_P __P((double, double)); +float powf(x,y) +float x,y; +{ + return pow((double) x, (double) (y)); +} + double pow(x,y) double x,y; {