>When did using 10-byte reals become common? As far as I remember, you
>don't even have a store instruction for that. The 80-bit load is slower
>than the 64-bit load too, I think.

Win32Forth can be compiled either way. Here's some of the code from FLOAT.F:


B/FLOAT 10 =
[IF]    synonym FSIZE extended
[ELSE]  synonym FSIZE double
[THEN]


code fpush      ( f: r -- )  ( fs: -- r )   \ push on simulated stack
                mov     ecx, FSP [edi]
                fstp    FSIZE FSTACK [ecx] [edi]
                fwait
                add     ecx, # B/FLOAT
                mov     FSP [edi], ecx
                next,
                end-code


code fpop       ( f: -- r )   ( fs: r -- )      \ push on real stack
                mov     ecx, FSP [edi]
                sub     ecx, # B/FLOAT
                js      L$1
                fld     FSIZE FSTACK [ecx] [edi]
                mov     FSP [edi], ecx
\               fwait
                jmp     L$2

_________________________________________________________________
Unsubscribe & list info -- http://www.scruz.net/~luke/signup.htm
Mersenne Prime FAQ      -- http://www.tasam.com/~lrwiman/FAQ-mers

Reply via email to