void double_precision_asm() {
+- asm("push %eax \n fnclex \n fstcw (%esp) \n movw (%esp), %eax \n "
+- "and $0x0000fcff, %eax \n or $0x000002ff, %eax \n mov %eax, (%esp) \n "
+#ifdef __i386__
- asm("push %eax \n fnclex \n fstcw (%esp) \n movw (%esp), %eax \n "
- "and $0x0000fcff, %eax \n or $0x000002ff, %eax \n mov %eax, (%esp) \n "
++ asm("push %eax \n fnclex \n fstcw (%esp) \n movl (%esp), %eax \n "
++ "and $0x0000fcff, %eax \n or $0x000002ff, %eax \n movl %eax, (%esp) \n "
"fldcw (%esp) \n pop %eax");
+#endif
}