LuaJIT 为什么将操作码放在结尾而不是放在前面?

我一直在研究解释性语言的虚拟机。通常来说,字节码的格式是 Opcode : Operand/s,但是在 LuaJIT 中却相反:

http://wiki.luajit.org/Bytecode-2.0

单个字节码指令的宽度为 32 位,具有8位操作码字段和多个 8 或 16 位的操作字段。指令有两种格式之一:

B | C | A | OP
  D   | A | OP

其中,OP 是操作码,A、B、C、D 是操作数。

我的问题是:为什么 LuaJIT 在此处与众不同?这种顺序是否有益处(例如字节对齐)或者这只是一种任意的设计选择?

点赞