[webkit-reviews] review denied: [Bug 129051] GetMyArgumentsByLength in FTL doesn't work with inline code : [Attachment 224890] Fixed GetMyArgumentsLength in FTL to work with inline code
bugzilla-daemon at webkit.org
bugzilla-daemon at webkit.org
Fri Feb 21 12:33:21 PST 2014
Filip Pizlo <fpizlo at apple.com> has denied Matthew Mirman <mmirman at apple.com>'s
request for review:
Bug 129051: GetMyArgumentsByLength in FTL doesn't work with inline code
https://bugs.webkit.org/show_bug.cgi?id=129051
Attachment 224890: Fixed GetMyArgumentsLength in FTL to work with inline code
https://bugs.webkit.org/attachment.cgi?id=224890&action=review
------- Additional Comments from Filip Pizlo <fpizlo at apple.com>
View in context: https://bugs.webkit.org/attachment.cgi?id=224890&action=review
> Source/JavaScriptCore/ftl/FTLLowerDFGToLLVM.cpp:300
> + case GetMyArgumentsLengthSafe:
I don't think you want to combine these two. The purpose of
GetMyArgumenstLengthSafe is to have a slow path, rather than a speculation, for
the arguments-created case. See what the DFG does, notice the slow path call:
case GetMyArgumentsLengthSafe: {
GPRTemporary result(this);
GPRReg resultGPR = result.gpr();
JITCompiler::Jump created = m_jit.branchTest64(
JITCompiler::NonZero,
JITCompiler::addressFor(
m_jit.graph().machineArgumentsRegisterFor(node->origin.semantic)));
if (node->origin.semantic.inlineCallFrame) {
m_jit.move(
Imm64(JSValue::encode(jsNumber(node->origin.semantic.inlineCallFrame->arguments
.size() - 1))),
resultGPR);
} else {
m_jit.load32(JITCompiler::payloadFor(JSStack::ArgumentCount),
resultGPR);
m_jit.sub32(TrustedImm32(1), resultGPR);
m_jit.or64(GPRInfo::tagTypeNumberRegister, resultGPR);
}
// FIXME: the slow path generator should perform a forward speculation
that the
// result is an integer. For now we postpone the speculation by having
this return
// a JSValue.
addSlowPathGenerator(
slowPathCall(
created, this, operationGetArgumentsLength, resultGPR,
m_jit.graph().machineArgumentsRegisterFor(node->origin.semantic).offset()));
jsValueResult(resultGPR, node);
break;
}
More information about the webkit-reviews
mailing list