home bbs files messages ]

Forums before death by AOL, social media and spammers... "We can't have nice things"

   comp.lang.forth      Forth programmers eat a lot of Bratwurst      117,927 messages   

[   << oldest   |   < older   |   list   |   newer >   |   newest >>   ]

   Message 117,410 of 117,927   
   Anton Ertl to dxf   
   FP stack (was: Parsing timestamps?)   
   04 Jul 25 06:06:20   
   
   From: anton@mips.complang.tuwien.ac.at   
      
   dxf  writes:   
   >He said he uses the hardware fp stack for speed.  Is he really only   
   >using 8 levels of stack?   
      
   An 8-deep FP stack.  Yes, SwiftForth users do:   
      
   SwiftForth x64-Linux 4.0.0-RC89 15-Jul-2024   
   : foo f+ f* ;  ok   
   : bar f@ f@ f@ execute f! ;  ok   
   fvariable a  ok   
   fvariable b   
   B isn't unique.  ok   
   fvariable c  ok   
   fvariable d  ok   
   2e a f!  ok   
   3e b f!  ok   
   4e c f!  ok   
   d ' foo c b a bar  ok   
   d f@ f. 14.00000000  ok   
   see foo   
   4519B7   ST(0) ST(1) FADDP              DEC1   
   4519B9   ST(0) ST(1) FMULP              DEC9   
   4519BB   RET                            C3 ok   
   see bar   
   4519D3   0 [RBX] TBYTE FLD              DB2B   
   4519D5   0 [RBP] RBX MOV                488B5D00   
   4519D9   8 [RBP] RBP LEA                488D6D08   
   4519DD   0 [RBX] TBYTE FLD              DB2B   
   4519DF   0 [RBP] RBX MOV                488B5D00   
   4519E3   8 [RBP] RBP LEA                488D6D08   
   4519E7   0 [RBX] TBYTE FLD              DB2B   
   4519E9   0 [RBP] RBX MOV                488B5D00   
   4519ED   8 [RBP] RBP LEA                488D6D08   
   4519F1   4028CB ( EXECUTE ) CALL        E8D50EFBFF   
   4519F6   0 [RBX] TBYTE FSTP             DB3B   
   4519F8   0 [RBP] RBX MOV                488B5D00   
   4519FC   8 [RBP] RBP LEA                488D6D08   
   451A00   RET                            C3 ok   
      
   No saving of FP values elsewhere around the EXECUTE in BAR, and no   
   loading of FP values from elsewhere in FOO.  So yes, on SwiftForth, if   
   you push more than 8 FP stack values at the same time, you are in   
   trouble.   
      
   On VFX with the default FP package, it's the same, but VFX has   
   alternative FP packages for those who cannot live with this   
   limitation.   
      
   As long as you use the FP stack just withing a colon definition and   
   for parameter passing, i.e., not as temporary storage while calling   
   another word, that limitation should not be particularly onerous.   
   Moore uses 6 data stack items on his hardware since the uP20, and   
   that's not just the FP stack.   
      
   - anton   
   --   
   M. Anton Ertl  http://www.complang.tuwien.ac.at/anton/home.html   
   comp.lang.forth FAQs: http://www.complang.tuwien.ac.at/forth/faq/toc.html   
        New standard: https://forth-standard.org/   
   EuroForth 2023 proceedings: http://www.euroforth.org/ef23/papers/   
   EuroForth 2024 proceedings: http://www.euroforth.org/ef24/papers/   
      
   --- SoupGate-Win32 v1.05   
    * Origin: you cannot sedate... all the things you hate (1:229/2)   

[   << oldest   |   < older   |   list   |   newer >   |   newest >>   ]


(c) 1994,  bbs@darkrealms.ca