Lua 虚拟机寄存器大小
Lua Virtual Machine Register size
在基于寄存器的 lua 虚拟机中,寄存器的大小是固定的吗?
还是动态结构?
我在第 17 页找到了一个字节码示例,其中常量字符串 "hello" 被加载到寄存器中,所以它一定是动态的?这对于寄存器来说不是很常见吗?
http://luaforge.net/docman/83/98/ANoFrillsIntroToLua51VMInstructions.pdf
每个寄存器包含一个 Lua 值。 Lua 值在 C 中作为标记联合实现。另见:The Implementation Of Lua 5.0。这个带标记的联合按值存储小类型(布尔值、数字),将其他所有内容(字符串、表、函数等)存储为指针。所以寄存器的大小是恒定的,尽管比一个本地机器字大。
在基于寄存器的 lua 虚拟机中,寄存器的大小是固定的吗? 还是动态结构?
我在第 17 页找到了一个字节码示例,其中常量字符串 "hello" 被加载到寄存器中,所以它一定是动态的?这对于寄存器来说不是很常见吗?
http://luaforge.net/docman/83/98/ANoFrillsIntroToLua51VMInstructions.pdf
每个寄存器包含一个 Lua 值。 Lua 值在 C 中作为标记联合实现。另见:The Implementation Of Lua 5.0。这个带标记的联合按值存储小类型(布尔值、数字),将其他所有内容(字符串、表、函数等)存储为指针。所以寄存器的大小是恒定的,尽管比一个本地机器字大。