Mail Archives: djgpp/1993/07/17/16:57:22
Under both emu387 and wm-emu387, "fldt" seems to silently fail.
Specifically, it doesn't seem to actually push a value on the FP
stack, which right now is causing me to get a stack underflow error.
"fldl" works. Here is a small test program:
int
main ()
{
static unsigned char n[10];
double x;
#ifdef CAUSE_STACK_UNDERFLOW
asm volatile ("fldt %1" : "=t" (x) : "m" (n[0]));
#else
asm volatile ("fldl %1" : "=t" (x) : "m" (n[0]));
#endif
return (int) x;
}
I also have reason to believe that "fstpt" is silently ignored,
eventually causing stack overflow errors; I can cook up a test case
for that if anyone wants one.
Thanks!
-Mat
- Raw text -