|
|
|
|
|
by tom_mellior
2748 days ago
|
|
> direct threaded code (DTC): a VM instruction is just a pointer to the C function implementing it. Nitpick: This sounds more like subroutine threading than direct threading. https://en.wikipedia.org/wiki/Threaded_code In subroutine threaded code, each function implementing an instruction returns before the next one is called. In direct threading, each code snippet implementing an instruction loads the next address and jumps to it directly without going through a return and another call. |
|
In DTC to call a function of the VM code (ie a another piece of DTC) you typically have a "call" virtual instruction, followed by the virtual address to call. you also have a virtual "return" function that pops the virtual instruction pointer from the virtual call stack.
Subroutine threaded is really just a very primitive form of AoT compilation.