1
0
mirror of https://git.FreeBSD.org/src.git synced 2024-12-01 08:27:59 +00:00

Workaround LLVM bug #4434:

Reorder inline assembly arguments temp2, temp, value and texp to follow
the st(0), st(1), etc. style.
Also mark the temp2 variable as volatile to workaround another clang
bug.
This allows clang to buildworld FreeBSD/i386.

Submitted by:	dim
This commit is contained in:
Rui Paulo 2010-09-21 20:23:19 +00:00
parent a8103ae8ca
commit 7e78863707
Notes: svn2git 2020-12-20 02:59:44 +00:00
svn path=/head/; revision=212976

View File

@ -51,12 +51,16 @@ __FBSDID("$FreeBSD$");
double
ldexp (double value, int exp)
{
double temp, texp, temp2;
double temp, texp;
#ifdef __clang__
volatile
#endif
double temp2;
texp = exp;
#ifdef __GNUC__
__asm ("fscale "
: "=u" (temp2), "=t" (temp)
: "0" (texp), "1" (value));
: "=t" (temp), "=u" (temp2)
: "0" (value), "1" (texp));
#else
#error unknown asm
#endif