*BSD News Article 10957


Return to BSD News archive

Received: by minnie.vk1xwt.ampr.org with NNTP
	id AA1078 ; Tue, 23 Feb 93 14:25:17 EST
Newsgroups: comp.unix.bsd
Path: sserve!manuel.anu.edu.au!munnari.oz.au!spool.mu.edu!howland.reston.ans.net!usenet.ins.cwru.edu!agate!doc.ic.ac.uk!warwick!pipex!demon!robobar!steve
From: steve@robobar.co.uk (Steve Bleazard)
Subject: Re: [386bsd] PATCH: libc::ldexp()
Organization: Robobar Ltd., Perivale, Middx., ENGLAND.
Date: Wed, 10 Feb 1993 09:25:46 GMT
Message-ID: <1993Feb10.092546.27272@robobar.co.uk>
References: <1993Feb1.133820.9016@data.fls.dk>
Lines: 30

In article <1993Feb1.133820.9016@data.fls.dk> phk@data.fls.dk (P-HK/Poul-Henning Kamp) writes:
>Here is a patch which creates a new file:
>
>	/usr/src/lib/libc/i386/gen/ldexp.s
>
>containing an assembler version of ldexp() instead of inline assembler in C.

[stuff deleted]

>+ ENTRY(ldexp)
>+ 	fildl 12(%esp)
>+ 	fldl 4(%esp)
>+ 	fscale
>+ 	fxch %st(1)
>+ 	fstpl -8(%esp)	/* How do I pop a value ??? */
	
	fstp	%st(0)	/* official way to pop a value

>+ 	ret

On SCO Unix the fstpl -8(%esp) caused a memory fault because the address
was out of bounds.  Dunno why, but this may cause a problem on BSD if
the stack is managed in the same way.

Steve
-- 
Steve.Bleazard@RoboBar.Co.Uk        | Phone:  +44 81 991 1142 x153
Snr Software Engineer, Robobar Ltd. | Fax:    +44 81 998 8343 (G3)
22 Wadsworth Road, Perivale.        |
Middx., UB6 7JD ENGLAND.            | ...!ibmpcug!robobar!steve