home *** CD-ROM | disk | FTP | other *** search
- Newsgroups: comp.lang.forth
- Path: sparky!uunet!gumby!destroyer!sol.ctr.columbia.edu!venezia!penev
- From: penev@venezia (Penio Penev)
- Subject: Re: native FORTH for R3000/IRIX available /beta/ (was Re: forth+)
- References: <1992Dec14.130553.11948@sol.ctr.columbia.edu>
- Sender: nobody@ctr.columbia.edu
- Organization: Rockefeller University
- Date: Mon, 21 Dec 1992 13:03:07 GMT
- X-Newsreader: TIN [version 1.1 PL6]
- Message-ID: <1992Dec21.130307.16311@sol.ctr.columbia.edu>
- Reply-To: penev@venezia.rockefeller.edu
- X-Posted-From: venezia.rockefeller.edu
- NNTP-Posting-Host: sol.ctr.columbia.edu
- Lines: 37
-
- I received feedback from several people and think, that the following
- may be of somewhat more general interest.
-
- This FORTH (pF) is direct threaded. The incetive is to be able to mix
- word calls and direct assembler, which will allow optimisation. One
- reference to a word is 2 intructions (8 bytes). The call is executed
- in 2 clocks. The branch delay slot is utilised. The return from a CODE
- word is 2 clocks, the return from a : word is 4 clocks, the branch
- delay slots being utilised.
-
- The kernel is written in assembler, which means that it is optimised.
- In general it is fairly easy to write the optimal code for this
- processor. Almost all delay slots are utilised, very few and
- unimportant ones are not. To my surprise, there are no lengthy pipe
- refils after a branch. If the branch is at time T, the branch delay
- slot istruction is at T+1, and the instruction at the destination is
- at T+2. That means, that the fastest empty loop can be done for
- 2 clocks/iteration.
-
- I have not made optimisation yet. DUP, DROP, SWAP, @, C@, R>, >R
- compile directly inline, but without optimisation. This should be
- possible in general. My notion is that the time critical portions
- should be written in assembler anyway. OK, that depends on what is
- time critical.
-
- I have not made measurements to see exactly how much faster is it, but
- I'll do some soon. It target compiles itself for ~ 5 seconds on a
- 33 MHz R3000.
-
- Once again, feel free to request it from me, I'll send it to You. Any
- comments and suggestions are welcome.
-
- -- Penio.
-
-
-
-
-