Log Message
Unreviewed, roll out 122790 because it broke the Windows build. I'm not sure what to do with exported symbols that are predicated on NDEBUG.
* _javascript_Core.vcproj/_javascript_Core/_javascript_Core.def: * bytecode/CodeBlock.cpp: (JSC): * bytecode/CodeBlock.h: (CodeBlock): * bytecompiler/BytecodeGenerator.cpp: (JSC::BytecodeGenerator::generate): * dfg/DFGJITCompiler.cpp: (JSC::DFG::JITCompiler::link): * interpreter/Interpreter.cpp: (JSC): (JSC::Interpreter::dumpRegisters): (JSC::getCallerInfo): (JSC::Interpreter::getStackTrace): (JSC::Interpreter::retrieveCallerFromVMCode): * interpreter/Interpreter.h: (Interpreter): * jsc.cpp: (GlobalObject::finishCreation):
Modified Paths
- trunk/Source/_javascript_Core/ChangeLog
- trunk/Source/_javascript_Core/_javascript_Core.vcproj/_javascript_Core/_javascript_Core.def
- trunk/Source/_javascript_Core/bytecode/CodeBlock.cpp
- trunk/Source/_javascript_Core/bytecode/CodeBlock.h
- trunk/Source/_javascript_Core/bytecompiler/BytecodeGenerator.cpp
- trunk/Source/_javascript_Core/dfg/DFGJITCompiler.cpp
- trunk/Source/_javascript_Core/interpreter/Interpreter.cpp
- trunk/Source/_javascript_Core/interpreter/Interpreter.h
- trunk/Source/_javascript_Core/jsc.cpp
Diff
Modified: trunk/Source/_javascript_Core/ChangeLog (122794 => 122795)
--- trunk/Source/_javascript_Core/ChangeLog 2012-07-17 01:39:40 UTC (rev 122794)
+++ trunk/Source/_javascript_Core/ChangeLog 2012-07-17 01:43:56 UTC (rev 122795)
@@ -1,3 +1,28 @@
+2012-07-16 Filip Pizlo <[email protected]>
+
+ Unreviewed, roll out 122790 because it broke the Windows build. I'm not
+ sure what to do with exported symbols that are predicated on NDEBUG.
+
+ * _javascript_Core.vcproj/_javascript_Core/_javascript_Core.def:
+ * bytecode/CodeBlock.cpp:
+ (JSC):
+ * bytecode/CodeBlock.h:
+ (CodeBlock):
+ * bytecompiler/BytecodeGenerator.cpp:
+ (JSC::BytecodeGenerator::generate):
+ * dfg/DFGJITCompiler.cpp:
+ (JSC::DFG::JITCompiler::link):
+ * interpreter/Interpreter.cpp:
+ (JSC):
+ (JSC::Interpreter::dumpRegisters):
+ (JSC::getCallerInfo):
+ (JSC::Interpreter::getStackTrace):
+ (JSC::Interpreter::retrieveCallerFromVMCode):
+ * interpreter/Interpreter.h:
+ (Interpreter):
+ * jsc.cpp:
+ (GlobalObject::finishCreation):
+
2012-07-16 Oliver Hunt <[email protected]>
dumpCallFrame is broken in ToT
Modified: trunk/Source/_javascript_Core/_javascript_Core.vcproj/_javascript_Core/_javascript_Core.def (122794 => 122795)
--- trunk/Source/_javascript_Core/_javascript_Core.vcproj/_javascript_Core/_javascript_Core.def 2012-07-17 01:39:40 UTC (rev 122794)
+++ trunk/Source/_javascript_Core/_javascript_Core.vcproj/_javascript_Core/_javascript_Core.def 2012-07-17 01:43:56 UTC (rev 122795)
@@ -163,7 +163,6 @@
?displayName@JSFunction@JSC@@QAE?BVUString@2@PAVExecState@2@@Z
?dtoa@WTF@@YAXQADNAA_NAAHAAI@Z
?dumpAllOptions@Options@JSC@@SAXPAU_iobuf@@@Z
- ?dumpCallFrame@Interpreter@JSC@@QAEXPAVExecState@2@@Z
?dumpSampleData@JSGlobalData@JSC@@QAEXPAVExecState@2@@Z
?empty@StringImpl@WTF@@SAPAV12@XZ
?enumerable@PropertyDescriptor@JSC@@QBE_NXZ
Modified: trunk/Source/_javascript_Core/bytecode/CodeBlock.cpp (122794 => 122795)
--- trunk/Source/_javascript_Core/bytecode/CodeBlock.cpp 2012-07-17 01:39:40 UTC (rev 122794)
+++ trunk/Source/_javascript_Core/bytecode/CodeBlock.cpp 2012-07-17 01:43:56 UTC (rev 122795)
@@ -2942,29 +2942,4 @@
return false;
}
-UString CodeBlock::nameForRegister(int registerNumber)
-{
- SymbolTable::iterator end = m_symbolTable->end();
- for (SymbolTable::iterator ptr = m_symbolTable->begin(); ptr != end; ++ptr) {
- if (ptr->second.getIndex() == registerNumber)
- return UString(ptr->first);
- }
- if (needsActivation() && registerNumber == activationRegister())
- return "activation";
- if (registerNumber == thisRegister())
- return "this";
- if (usesArguments()) {
- if (registerNumber == argumentsRegister())
- return "arguments";
- if (unmodifiedArgumentsRegister(argumentsRegister()) == registerNumber)
- return "real arguments";
- }
- if (registerNumber < 0) {
- int argumentPosition = -registerNumber;
- argumentPosition -= RegisterFile::CallFrameHeaderSize + 1;
- return String::format("arguments[%3d]", argumentPosition - 1).impl();
- }
- return "";
-}
-
} // namespace JSC
Modified: trunk/Source/_javascript_Core/bytecode/CodeBlock.h (122794 => 122795)
--- trunk/Source/_javascript_Core/bytecode/CodeBlock.h 2012-07-17 01:39:40 UTC (rev 122794)
+++ trunk/Source/_javascript_Core/bytecode/CodeBlock.h 2012-07-17 01:43:56 UTC (rev 122795)
@@ -578,9 +578,7 @@
void createActivation(CallFrame*);
void clearEvalCache();
-
- UString nameForRegister(int registerNumber);
-
+
void addPropertyAccessInstruction(unsigned propertyAccessInstruction)
{
m_propertyAccessInstructions.append(propertyAccessInstruction);
Modified: trunk/Source/_javascript_Core/bytecompiler/BytecodeGenerator.cpp (122794 => 122795)
--- trunk/Source/_javascript_Core/bytecompiler/BytecodeGenerator.cpp 2012-07-17 01:39:40 UTC (rev 122794)
+++ trunk/Source/_javascript_Core/bytecompiler/BytecodeGenerator.cpp 2012-07-17 01:43:56 UTC (rev 122795)
@@ -193,10 +193,8 @@
if (s_dumpsGeneratedCode)
m_codeBlock->dump(m_scopeChain->globalObject->globalExec());
-#ifdef NDEBUG
if ((m_codeType == FunctionCode && !m_codeBlock->needsFullScopeChain() && !m_codeBlock->usesArguments()) || m_codeType == EvalCode)
symbolTable().clear();
-#endif
m_codeBlock->shrinkToFit(CodeBlock::EarlyShrink);
Modified: trunk/Source/_javascript_Core/dfg/DFGJITCompiler.cpp (122794 => 122795)
--- trunk/Source/_javascript_Core/dfg/DFGJITCompiler.cpp 2012-07-17 01:39:40 UTC (rev 122794)
+++ trunk/Source/_javascript_Core/dfg/DFGJITCompiler.cpp 2012-07-17 01:43:56 UTC (rev 122795)
@@ -188,7 +188,6 @@
CallLinkInfo& info = m_codeBlock->callLinkInfo(i);
info.callType = m_jsCalls[i].m_callType;
info.isDFG = true;
- info.bytecodeIndex = m_jsCalls[i].m_codeOrigin.bytecodeIndex;
linkBuffer.link(m_jsCalls[i].m_slowCall, FunctionPtr((m_globalData->getCTIStub(info.callType == CallLinkInfo::Construct ? linkConstructThunkGenerator : linkCallThunkGenerator)).code().executableAddress()));
info.callReturnLocation = linkBuffer.locationOfNearCall(m_jsCalls[i].m_slowCall);
info.hotPathBegin = linkBuffer.locationOf(m_jsCalls[i].m_targetToCheck);
Modified: trunk/Source/_javascript_Core/interpreter/Interpreter.cpp (122794 => 122795)
--- trunk/Source/_javascript_Core/interpreter/Interpreter.cpp 2012-07-17 01:39:40 UTC (rev 122794)
+++ trunk/Source/_javascript_Core/interpreter/Interpreter.cpp 2012-07-17 01:43:56 UTC (rev 122795)
@@ -77,8 +77,6 @@
namespace JSC {
-static CallFrame* getCallerInfo(JSGlobalData*, CallFrame*, int& lineNumber, unsigned& bytecodeOffset);
-
// Returns the depth of the scope chain within a given call frame.
static int depth(CodeBlock* codeBlock, ScopeChainNode* sc)
{
@@ -626,42 +624,34 @@
CodeBlock* codeBlock = callFrame->codeBlock();
const Register* it;
const Register* end;
+ JSValue v;
- it = callFrame->registers() - RegisterFile::CallFrameHeaderSize - callFrame->argumentCountIncludingThis();
- end = callFrame->registers() - RegisterFile::CallFrameHeaderSize;
- while (it < end) {
- JSValue v = it->jsValue();
- int registerNumber = it - callFrame->registers();
- UString name = codeBlock->nameForRegister(registerNumber);
+ it = callFrame->registers() - RegisterFile::CallFrameHeaderSize - codeBlock->numParameters();
+ v = (*it).jsValue();
#if USE(JSVALUE32_64)
- dataLog("[r% 3d %14s] | %10p | %-16s 0x%llx \n", registerNumber, name.ascii().data(), it, v.description(), JSValue::encode(v));
+ dataLog("[this] | %10p | %-16s 0x%llx \n", it, v.description(), JSValue::encode(v)); ++it;
#else
- dataLog("[r% 3d %14s] | %10p | %-16s %p \n", registerNumber, name.ascii().data(), it, v.description(), JSValue::encode(v));
+ dataLog("[this] | %10p | %-16s %p \n", it, v.description(), JSValue::encode(v)); ++it;
#endif
- it++;
+ end = it + max(codeBlock->numParameters() - 1, 0); // - 1 to skip "this"
+ if (it != end) {
+ do {
+ v = (*it).jsValue();
+#if USE(JSVALUE32_64)
+ dataLog("[param] | %10p | %-16s 0x%llx \n", it, v.description(), JSValue::encode(v));
+#else
+ dataLog("[param] | %10p | %-16s %p \n", it, v.description(), JSValue::encode(v));
+#endif
+ ++it;
+ } while (it != end);
}
-
dataLog("-----------------------------------------------------------------------------\n");
- dataLog("[ArgumentCount] | %10p | %ld \n", it, callFrame->argumentCount());
- ++it;
- dataLog("[CallerFrame] | %10p | %p \n", it, callFrame->callerFrame());
- ++it;
- dataLog("[Callee] | %10p | %p \n", it, callFrame->callee());
- ++it;
- dataLog("[ScopeChain] | %10p | %p \n", it, callFrame->scopeChain());
- ++it;
-#if ENABLE(JIT)
- AbstractPC pc = callFrame->abstractReturnPC(callFrame->globalData());
- if (pc.hasJITReturnAddress())
- dataLog("[ReturnJITPC] | %10p | %p \n", it, pc.jitReturnAddress().value());
-#endif
- unsigned bytecodeOffset = 0;
- int line = 0;
- getCallerInfo(&callFrame->globalData(), callFrame, line, bytecodeOffset);
- dataLog("[ReturnVPC] | %10p | %d (line %d)\n", it, bytecodeOffset, line);
- ++it;
- dataLog("[CodeBlock] | %10p | %p \n", it, callFrame->codeBlock());
- ++it;
+ dataLog("[CodeBlock] | %10p | %p \n", it, (*it).codeBlock()); ++it;
+ dataLog("[ScopeChain] | %10p | %p \n", it, (*it).scopeChain()); ++it;
+ dataLog("[CallerRegisters] | %10p | %d \n", it, (*it).i()); ++it;
+ dataLog("[ReturnPC] | %10p | %p \n", it, (*it).vPC()); ++it;
+ dataLog("[ArgumentCount] | %10p | %d \n", it, (*it).i()); ++it;
+ dataLog("[Callee] | %10p | %p \n", it, (*it).function()); ++it;
dataLog("-----------------------------------------------------------------------------\n");
int registerCount = 0;
@@ -669,13 +659,11 @@
end = it + codeBlock->m_numVars;
if (it != end) {
do {
- JSValue v = it->jsValue();
- int registerNumber = it - callFrame->registers();
- UString name = codeBlock->nameForRegister(registerNumber);
+ v = (*it).jsValue();
#if USE(JSVALUE32_64)
- dataLog("[r% 3d %14s] | %10p | %-16s 0x%llx \n", registerNumber, name.ascii().data(), it, v.description(), JSValue::encode(v));
+ dataLog("[r%2d] | %10p | %-16s 0x%llx \n", registerCount, it, v.description(), JSValue::encode(v));
#else
- dataLog("[r% 3d %14s] | %10p | %-16s %p \n", registerNumber, name.ascii().data(), it, v.description(), JSValue::encode(v));
+ dataLog("[r%2d] | %10p | %-16s %p \n", registerCount, it, v.description(), JSValue::encode(v));
#endif
++it;
++registerCount;
@@ -686,11 +674,11 @@
end = it + codeBlock->m_numCalleeRegisters - codeBlock->m_numVars;
if (it != end) {
do {
- JSValue v = (*it).jsValue();
+ v = (*it).jsValue();
#if USE(JSVALUE32_64)
- dataLog("[r% 3d] | %10p | %-16s 0x%llx \n", registerCount, it, v.description(), JSValue::encode(v));
+ dataLog("[r%2d] | %10p | %-16s 0x%llx \n", registerCount, it, v.description(), JSValue::encode(v));
#else
- dataLog("[r% 3d] | %10p | %-16s %p \n", registerCount, it, v.description(), JSValue::encode(v));
+ dataLog("[r%2d] | %10p | %-16s %p \n", registerCount, it, v.description(), JSValue::encode(v));
#endif
++it;
++registerCount;
@@ -850,10 +838,10 @@
#endif
}
-static CallFrame* getCallerInfo(JSGlobalData* globalData, CallFrame* callFrame, int& lineNumber, unsigned& bytecodeOffset)
+static CallFrame* getCallerInfo(JSGlobalData* globalData, CallFrame* callFrame, int& lineNumber)
{
UNUSED_PARAM(globalData);
- bytecodeOffset = 0;
+ unsigned bytecodeOffset = 0;
lineNumber = -1;
ASSERT(!callFrame->hasHostCallFrameFlag());
CallFrame* callerFrame = callFrame->codeBlock() ? callFrame->trueCallerFrame() : callFrame->callerFrame()->removeHostCallFrameFlag();
@@ -985,8 +973,7 @@
StackFrame s = { Strong<JSObject>(*globalData, callFrame->callee()), StackFrameNativeCode, Strong<ExecutableBase>(), -1, UString()};
results.append(s);
}
- unsigned unusedBytecodeOffset = 0;
- callFrame = getCallerInfo(globalData, callFrame, line, unusedBytecodeOffset);
+ callFrame = getCallerInfo(globalData, callFrame, line);
}
}
@@ -5343,8 +5330,7 @@
return jsNull();
int lineNumber;
- unsigned bytecodeOffset;
- CallFrame* callerFrame = getCallerInfo(&callFrame->globalData(), functionCallFrame, lineNumber, bytecodeOffset);
+ CallFrame* callerFrame = getCallerInfo(&callFrame->globalData(), functionCallFrame, lineNumber);
if (!callerFrame)
return jsNull();
JSValue caller = callerFrame->callee();
@@ -5354,7 +5340,7 @@
// Skip over function bindings.
ASSERT(caller.isObject());
while (asObject(caller)->inherits(&JSBoundFunction::s_info)) {
- callerFrame = getCallerInfo(&callFrame->globalData(), callerFrame, lineNumber, bytecodeOffset);
+ callerFrame = getCallerInfo(&callFrame->globalData(), callerFrame, lineNumber);
if (!callerFrame)
return jsNull();
caller = callerFrame->callee();
Modified: trunk/Source/_javascript_Core/interpreter/Interpreter.h (122794 => 122795)
--- trunk/Source/_javascript_Core/interpreter/Interpreter.h 2012-07-17 01:39:40 UTC (rev 122794)
+++ trunk/Source/_javascript_Core/interpreter/Interpreter.h 2012-07-17 01:43:56 UTC (rev 122795)
@@ -248,11 +248,6 @@
void dumpSampleData(ExecState* exec);
void startSampling();
void stopSampling();
-
-#ifndef NDEBUG
- JS_EXPORT_PRIVATE void dumpCallFrame(CallFrame*);
-#endif
-
private:
enum ExecutionFlag { Normal, InitializeAndReturn };
@@ -284,6 +279,7 @@
JSValue privateExecute(ExecutionFlag, RegisterFile*, CallFrame*);
+ void dumpCallFrame(CallFrame*);
void dumpRegisters(CallFrame*);
bool isCallBytecode(Opcode opcode) { return opcode == getOpcode(op_call) || opcode == getOpcode(op_construct) || opcode == getOpcode(op_call_eval); }
Modified: trunk/Source/_javascript_Core/jsc.cpp (122794 => 122795)
--- trunk/Source/_javascript_Core/jsc.cpp 2012-07-17 01:39:40 UTC (rev 122794)
+++ trunk/Source/_javascript_Core/jsc.cpp 2012-07-17 01:43:56 UTC (rev 122795)
@@ -88,7 +88,6 @@
static EncodedJSValue JSC_HOST_CALL functionGC(ExecState*);
#ifndef NDEBUG
static EncodedJSValue JSC_HOST_CALL functionReleaseExecutableMemory(ExecState*);
-static EncodedJSValue JSC_HOST_CALL functionDumpCallFrame(ExecState*);
#endif
static EncodedJSValue JSC_HOST_CALL functionVersion(ExecState*);
static EncodedJSValue JSC_HOST_CALL functionRun(ExecState*);
@@ -195,7 +194,6 @@
addFunction(globalData, "quit", functionQuit, 0);
addFunction(globalData, "gc", functionGC, 0);
#ifndef NDEBUG
- addFunction(globalData, "dumpCallFrame", functionDumpCallFrame, 0);
addFunction(globalData, "releaseExecutableMemory", functionReleaseExecutableMemory, 0);
#endif
addFunction(globalData, "version", functionVersion, 1);
@@ -283,15 +281,6 @@
return JSValue::encode(jsUndefined());
}
-#ifndef NDEBUG
-EncodedJSValue JSC_HOST_CALL functionDumpCallFrame(ExecState* exec)
-{
- if (!exec->callerFrame()->hasHostCallFrameFlag())
- exec->globalData().interpreter->dumpCallFrame(exec->callerFrame());
- return JSValue::encode(jsUndefined());
-}
-#endif
-
EncodedJSValue JSC_HOST_CALL functionDebug(ExecState* exec)
{
fprintf(stderr, "--> %s\n", exec->argument(0).toString(exec)->value(exec).utf8().data());
_______________________________________________ webkit-changes mailing list [email protected] http://lists.webkit.org/mailman/listinfo/webkit-changes
