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)   
|