-
Notifications
You must be signed in to change notification settings - Fork 1
/
Win32-API-0.58-gcc4.patch
46 lines (45 loc) · 1.44 KB
/
Win32-API-0.58-gcc4.patch
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
difforig Win32-API-0.58
diff -u Win32-API-0.58/API.xs.orig
--- Win32-API-0.58/API.xs.orig 2008-10-16 21:33:11.000000000 +0200
+++ Win32-API-0.58/API.xs 2009-06-28 14:12:33.015625000 +0200
@@ -609,15 +609,19 @@
#if (defined(_MSC_VER) || defined(__BORLANDC__))
/*
_asm {
- call dword ptr [ApiFunctionFloat]
- fstp qword ptr [fReturn]
+ call dword ptr [ApiFunctionDouble]
+ fstp qword ptr [dReturn]
}
*/
- fReturn = ApiFunctionDouble();
+ dReturn = ApiFunctionDouble();
#elif (defined(__GNUC__))
- asm ("call *%0"::"g"(ApiFunctionDouble));
- asm ("fstpl %0"::"g"(fReturn));
- /* XST_mNV(0, (float) fReturn); */
+ dReturn = ApiFunctionDouble();
+ /*
+ asm ("call *%0"::"g" (ApiFunctionDouble));
+ asm ("fstpl %st(0)");
+ asm ("movl %0,(%esp)");
+ */
+ /* XST_mNV(0, (double) dReturn); */
#endif
#ifdef WIN32_API_DEBUG
printf("(XS)Win32::API::Call: ApiFunctionDouble returned %f\n", dReturn);
@@ -741,8 +745,12 @@
}
/* XSRETURN_NV(dReturn); */
#elif (defined(__GNUC__))
- asm ("call *%0"::"g"(ApiFunctionDouble));
- asm ("fstpl %0"::"g"(dReturn));
+ dReturn = ApiFunctionDouble();
+ /*
+ asm ("call *%0"::"g" (ApiFunctionDouble));
+ asm ("fstpl %st(0)");
+ asm ("movl %0,(%esp)");
+ */
/* XST_mNV(0, dReturn); */
#endif
break;