crcx / extended-ngaro forked from Mat2/extended-ngaro
- Source
- Commits
- Network (1)
- Downloads (0)
- Wiki (1)
- Graphs
-
Branch:
master
| name | age | message | |
|---|---|---|---|
| |
LICENSE | Thu Aug 06 17:05:50 -0700 2009 | |
| |
Makefile | ||
| |
README | ||
| |
bench/ | ||
| |
extend.fs | ||
| |
nas/ | ||
| |
retroImage | ||
| |
retroImage.bak | ||
| |
source/ | ||
| |
tools/ | Thu Aug 06 07:30:57 -0700 2009 |
README
Extended Ngaro VM ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ This is a very low-level, but platform independent, vm written in C. It evolved from Ngaro (see Retro Forth 10) and is binary compatible with it. It is uncommon mainly in tree aspects: * New instructions can be generated at runtime (which extend the instruction set) from vm-code sequences. * The vm encoding is extended though a native-code compiler with added support for stack and register operations. This way optimized machine code can be generated in a platform independent way. * It's a accumulator/store design with efficient interpretation in mind. Current status: * The vm is usable and the compiler can be invoked from Ngaro with opcode 31 (stream). Compiled traces are executable with opcode 32 (aot). Compilation: * "make" To do: - Compiler back-ends for x86-64, ARM, PowerPC and TMS320C64x. - Assembler for the extended-instruction set. - Documentation: Ngaro ISA reference guide, Compiler Manual. Remark: The replicated-switch threading method performs better on my Athlon64 3000x than the older indirect-token threading interpreter (see ngaro-fast [retro10.1]) and results in an equal performance on Celeron M and possibly Atom based cpu's. So, for performance reasons use this vm !

