diff options
author | Simon Hausmann <simon.hausmann@nokia.com> | 2012-07-23 09:28:44 +0200 |
---|---|---|
committer | Simon Hausmann <simon.hausmann@nokia.com> | 2012-07-23 09:28:44 +0200 |
commit | 815f1ed417bd26fbe2abbdf20ac5d3423b30796c (patch) | |
tree | 923c9a9e2834ccab60f5caecfb8f0ac410c1dd9e /Source/JavaScriptCore/bytecode/CodeBlock.cpp | |
parent | b4ad5d9d2b96baacd0180ead50de5195ca78af2d (diff) | |
download | qtwebkit-815f1ed417bd26fbe2abbdf20ac5d3423b30796c.tar.gz |
Imported WebKit commit e65cbc5b6ac32627c797e7fc7f46eb7794410c92 (http://svn.webkit.org/repository/webkit/trunk@123308)
New snapshot with better configure tests
Diffstat (limited to 'Source/JavaScriptCore/bytecode/CodeBlock.cpp')
-rw-r--r-- | Source/JavaScriptCore/bytecode/CodeBlock.cpp | 25 |
1 files changed, 25 insertions, 0 deletions
diff --git a/Source/JavaScriptCore/bytecode/CodeBlock.cpp b/Source/JavaScriptCore/bytecode/CodeBlock.cpp index d417a5fbd..363efa28a 100644 --- a/Source/JavaScriptCore/bytecode/CodeBlock.cpp +++ b/Source/JavaScriptCore/bytecode/CodeBlock.cpp @@ -2942,4 +2942,29 @@ bool CodeBlock::usesOpcode(OpcodeID opcodeID) 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 |