Mat2 / extended-ngaro
- Source
- Commits
- Network (1)
- Issues (0)
- Downloads (0)
- Wiki (1)
- Graphs
-
Branch:
master
W (author)
Thu Aug 27 01:20:58 -0700 2009
commit 680e3c3d5318fddc89282647cd95bf8583d2925b
tree bb71a3e511645bf8dcbcba86e5270aea04c0f262
parent 73587630a90f70b9ef5ee68d4f618b34706397b2
tree bb71a3e511645bf8dcbcba86e5270aea04c0f262
parent 73587630a90f70b9ef5ee68d4f618b34706397b2
| name | age | message | |
|---|---|---|---|
| |
LICENSE | Thu Aug 06 17:05:50 -0700 2009 | |
| |
Makefile | Thu Aug 06 07:30:57 -0700 2009 | |
| |
README | Wed Aug 26 05:24:11 -0700 2009 | |
| |
bench/ | Thu Aug 27 01:20:58 -0700 2009 | |
| |
extend.fs | Thu Aug 27 01:20:58 -0700 2009 | |
| |
nas/ | Thu Aug 27 01:20:58 -0700 2009 | |
| |
retroImage | Thu Aug 27 01:20:58 -0700 2009 | |
| |
source/ | Wed Aug 26 05:24:11 -0700 2009 | |
| |
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 (version 0.1): * The vm is usable and the compiler can be invoked from Ngaro with opcode 31 (ins). Compiled traces are executable with opcode 32 (aot) and tail branch locations can be computed with opcode 33 (cofs). * A simple assembler and disassembler (retrospect) is included in the retro vm-image. TO-DO for version 0.2: * x86-64 and ARM back-ends. * Documentation (ISA, compiler and optimation guides). TO-DO for version 0.3: * PowerPC and TMS320C64x back-ends. * add port interfaces for block (via virtual images) and serial devices (keyboard, mouse, etc), GPU, interrupts, multiprocessing. Compilation: * "make" Remark: The replicated-switch threading method performs better on my Athlon64 3000x than the older token threading interpreter (see ngaro-fast [retro10.1]) and results in an equal performance on Celeron M and possibly Atom based cpu's. For a maximum of performance use the AOT compiler, generate an individual instruction set for your application and optimate the microcode. The extended-instruction set allows very sophisticated optimation strategies !
