diff options
author | Simon Hausmann <simon.hausmann@nokia.com> | 2012-07-11 13:45:28 +0200 |
---|---|---|
committer | Simon Hausmann <simon.hausmann@nokia.com> | 2012-07-11 13:45:28 +0200 |
commit | d6a599dbc9d824a462b2b206316e102bf8136446 (patch) | |
tree | ecb257a5e55b2239d74b90fdad62fccd661cf286 /Source/JavaScriptCore/llint/LowLevelInterpreter.asm | |
parent | 3ccc3a85f09a83557b391aae380d3bf5f81a2911 (diff) | |
download | qtwebkit-d6a599dbc9d824a462b2b206316e102bf8136446.tar.gz |
Imported WebKit commit 8ff1f22783a32de82fee915abd55bd1b298f2644 (http://svn.webkit.org/repository/webkit/trunk@122325)
New snapshot that should work with the latest Qt build system changes
Diffstat (limited to 'Source/JavaScriptCore/llint/LowLevelInterpreter.asm')
-rw-r--r-- | Source/JavaScriptCore/llint/LowLevelInterpreter.asm | 25 |
1 files changed, 23 insertions, 2 deletions
diff --git a/Source/JavaScriptCore/llint/LowLevelInterpreter.asm b/Source/JavaScriptCore/llint/LowLevelInterpreter.asm index e59ddeba4..492535bb2 100644 --- a/Source/JavaScriptCore/llint/LowLevelInterpreter.asm +++ b/Source/JavaScriptCore/llint/LowLevelInterpreter.asm @@ -84,6 +84,13 @@ const LLIntReturnPC = ArgumentCount + TagOffset # String flags. const HashFlags8BitBuffer = 64 +# Property storage constants +if JSVALUE64 + const InlineStorageCapacity = 4 +else + const InlineStorageCapacity = 6 +end + # Allocation constants if JSVALUE64 const JSFinalObjectSizeClassIndex = 1 @@ -312,8 +319,7 @@ macro allocateBasicJSObject(sizeClassIndex, classInfoOffset, structure, result, storep scratch2, [result] storep structure, JSCell::m_structure[result] storep 0, JSObject::m_inheritorID[result] - addp sizeof JSObject, result, scratch1 - storep scratch1, JSObject::m_propertyStorage[result] + storep 0, JSObject::m_outOfLineStorage[result] end end @@ -481,6 +487,21 @@ _llint_op_resolve_with_this: dispatch(5) +macro withInlineStorage(object, propertyStorage, continuation) + # Indicate that the object is the property storage, and that the + # property storage register is unused. + continuation(object, propertyStorage) +end + +macro withOutOfLineStorage(object, propertyStorage, continuation) + loadp JSObject::m_outOfLineStorage[object], propertyStorage + # Indicate that the propertyStorage register now points to the + # property storage, and that the object register may be reused + # if the object pointer is not needed anymore. + continuation(propertyStorage, object) +end + + _llint_op_del_by_id: traceExecution() callSlowPath(_llint_slow_path_del_by_id) |