summaryrefslogtreecommitdiffstats
path: root/loader
diff options
context:
space:
mode:
authorpl <pl@b3059339-0415-0410-9bf9-f77b7e298cf2>2002-01-01 02:00:57 +0000
committerpl <pl@b3059339-0415-0410-9bf9-f77b7e298cf2>2002-01-01 02:00:57 +0000
commitfec75a7bcf7a76d68574741f792a93b04055f13a (patch)
tree88143e417e028f71990a649d2e05decb775be561 /loader
parent5b7e3a9724b6c0c22bfc1252fb3d31440e1cc46c (diff)
downloadmpv-fec75a7bcf7a76d68574741f792a93b04055f13a.tar.bz2
mpv-fec75a7bcf7a76d68574741f792a93b04055f13a.tar.xz
applied "magic" Michael real fix ;)
(tested with gcc 2.95.4 and 3.0.3) git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@3926 b3059339-0415-0410-9bf9-f77b7e298cf2
Diffstat (limited to 'loader')
-rw-r--r--loader/win32.c23
1 files changed, 7 insertions, 16 deletions
diff --git a/loader/win32.c b/loader/win32.c
index 411b61bdfe..4fe172a8ed 100644
--- a/loader/win32.c
+++ b/loader/win32.c
@@ -3411,17 +3411,6 @@ static void expcos(void)
// _ftol - operated on the float value which is already on the FPU stack
-#ifdef MPLAYER
-// Note: the asm version is buggy and causes mysterious sig11 with gcc-3.0
-// flavors so we'd better stick to the old one for the moment (C version
-// is found in release 1.39 of this file in MPlayer CVS) - pl
-int
-exp_ftol (float f)
-{
- return (int) (f + .5);
-}
-#else
-#warning "exp_ftol may cause sig11"
static void exp_ftol(void)
{
__asm__ __volatile__
@@ -3429,16 +3418,18 @@ static void exp_ftol(void)
"sub $12, %esp \n\t"
"fstcw -2(%ebp) \n\t"
"wait \n\t"
- "mov -2(%ebp), %ax \n\t"
- "or $0x0C, %ah \n\t"
- "mov %ax, -4(%ebp) \n\t"
+ "movw -2(%ebp), %ax \n\t"
+ "orb $0x0C, %ah \n\t"
+ "movw %ax, -4(%ebp) \n\t"
"fldcw -4(%ebp) \n\t"
"fistpl -12(%ebp) \n\t"
"fldcw -2(%ebp) \n\t"
- "mov -12(%ebp), %eax \n\t"
+ "movl -12(%ebp), %eax \n\t"
+ //Note: gcc 3.03 does not do the following op if it
+ // knows that ebp=esp
+ "movl %ebp, %esp \n\t"
);
}
-#endif
static double exppow(double x, double y)
{