diff options
| author | Mark Dickinson <dickinsm@gmail.com> | 2009-10-24 13:28:38 +0000 |
|---|---|---|
| committer | Mark Dickinson <dickinsm@gmail.com> | 2009-10-24 13:28:38 +0000 |
| commit | fbf33861c19e43ae8519aecc917e28e94cc783a1 (patch) | |
| tree | bf23e23d009897b3b89b140d9223276d34cc4f2f /Python | |
| parent | d5a92874ae577e8b31b34bc41b4570dd94a849ff (diff) | |
| download | cpython-fbf33861c19e43ae8519aecc917e28e94cc783a1.tar.gz | |
Issue #7117 (backport py3k float repr) continued:
- add double endianness detection to configure script
- add configure-time check to see whether we can use inline
assembly to get and set x87 control word in configure script
- add functions to get and set x87 control word in Python/pymath.c
- add pyport.h logic to determine whether it's safe to use the
short float repr or not
Diffstat (limited to 'Python')
| -rw-r--r-- | Python/pymath.c | 18 |
1 files changed, 18 insertions, 0 deletions
diff --git a/Python/pymath.c b/Python/pymath.c index 643805856d..db2920ce20 100644 --- a/Python/pymath.c +++ b/Python/pymath.c @@ -13,6 +13,24 @@ double _Py_force_double(double x) } #endif +#ifdef HAVE_GCC_ASM_FOR_X87 + +/* inline assembly for getting and setting the 387 FPU control word on + gcc/x86 */ + +unsigned short _Py_get_387controlword(void) { + unsigned short cw; + __asm__ __volatile__ ("fnstcw %0" : "=m" (cw)); + return cw; +} + +void _Py_set_387controlword(unsigned short cw) { + __asm__ __volatile__ ("fldcw %0" : : "m" (cw)); +} + +#endif + + #ifndef HAVE_HYPOT double hypot(double x, double y) { |
