什么是OOL(行外)代码?我在ION编译器中找到它,但无法理解正在发生的事情。OOL(行外)代码
bool CodeGeneratorShared::generateOutOfLineCode() {
for (size_t i = 0; i < outOfLineCode_.length(); i++) {
// Add native => bytecode mapping entries for OOL sites.
// Not enabled on asm.js yet since asm doesn't contain bytecode mappings.
if (!gen->compilingAsmJS()) {
if (!addNativeToBytecodeEntry(outOfLineCode_[i]->bytecodeSite()))
return false;
}
if (!gen->alloc().ensureBallast())
return false;
JitSpew(JitSpew_Codegen, "# Emitting out of line code");
masm.setFramePushed(outOfLineCode_[i]->framePushed());
lastPC_ = outOfLineCode_[i]->pc();
outOfLineCode_[i]->bind(&masm);
outOfLineCode_[i]->generate(this);
}
return !masm.oom();
}
我试图用谷歌找到它的信息,但没有成功。也许你可以给我一些想法是什么?谢谢:)
你能链接源代码吗? – Bergi
所有代码都很大。我只附加了生成行外代码的方法。所以你可以从https://archive.mozilla.org/pub/mozilla.org/js/ – Mano
克隆所有的代码谢谢,是的,但具体哪个zip文件(或哪个引擎版本)是哪个文件? – Bergi