[Mono-devel-list] Question regarding ASM in mini-x86.c

Paolo Molaro lupus at ximian.com
Sun Feb 13 10:58:39 EST 2005

On 02/12/05 J Lothian wrote:
> Ah, much thanks,  it compiles, which may not be saying much at this
> point, but I can work out bugs later when it all links correctly.
> stuck this in the cpu_init, think its going to work, I'm not
> -entirely- sure if it's doing the same thing ( I may be way off here)
> #ifndef _MSC_VER
> 	__asm__  __volatile__ ("fnstcw %0\n": "=m" (fpcw));
> 	fpcw &= ~X86_FPCW_PRECC_MASK;
> 	fpcw |= X86_FPCW_PREC_DOUBLE;
> 	__asm__  __volatile__ ("fldcw %0\n": : "m" (fpcw));
> 	__asm__  __volatile__ ("fnstcw %0\n": "=m" (fpcw));
> #else
> 	_control87( _PC_64, MCW_PC );
> #endif

You could try using:
	__asm {fnstcw fpcw};
 	fpcw &= ~X86_FPCW_PRECC_MASK;
 	fpcw |= X86_FPCW_PREC_DOUBLE;
 	__asm {fldcw fpcw};
 	__asm {fnstcw fpcw};

Note: I haven't tested and I never used the MS compiler, so be warned:-)
You can also disable the code, it's not important for now
(same for the cpuid detection).


lupus at debian.org                                     debian/rules
lupus at ximian.com                             Monkeys do it better

More information about the Mono-devel-list mailing list