4 ms·
I thought Lua used a register based VM.
by s_baby 14y ago
I thought Lua used a register based VM.
- wereHamster 14y agoNo, it's a stack machine. See http://www.lua.org/manual/5.1/manual.html#3 http://www.lua.org/manual/5.1/manual.html#3
- LeafStorm 14y agoThe stack is an abstraction used in the C API. If you look at the actual bytecode generated, it's all register-based.
- munificent 14y agoYou're both right. It has a stack that it uses for callframes and local variables, but the opcodes have operands to directly reference variables on it by index. In other words, it treats all of the stack for a given callframe as a set of registers.