summaryrefslogtreecommitdiff
path: root/Source/JavaScriptCore/llint/LowLevelInterpreter64.asm
diff options
context:
space:
mode:
authorSimon Hausmann <simon.hausmann@digia.com>2012-09-18 15:53:33 +0200
committerSimon Hausmann <simon.hausmann@digia.com>2012-09-18 15:53:33 +0200
commit6bbb7fbbac94d0f511a7bd0cbd50854ab643bfb2 (patch)
treed9c68d1cca0b3e352f1e438561f3e504e641a08f /Source/JavaScriptCore/llint/LowLevelInterpreter64.asm
parentd0424a769059c84ae20beb3c217812792ea6726b (diff)
downloadqtwebkit-6bbb7fbbac94d0f511a7bd0cbd50854ab643bfb2.tar.gz
Imported WebKit commit c7503cef7ecb236730d1309676ab9fc723fd061d (http://svn.webkit.org/repository/webkit/trunk@128886)
New snapshot with various build fixes
Diffstat (limited to 'Source/JavaScriptCore/llint/LowLevelInterpreter64.asm')
-rw-r--r--Source/JavaScriptCore/llint/LowLevelInterpreter64.asm31
1 files changed, 12 insertions, 19 deletions
diff --git a/Source/JavaScriptCore/llint/LowLevelInterpreter64.asm b/Source/JavaScriptCore/llint/LowLevelInterpreter64.asm
index 7dfcb6728..51a11f53f 100644
--- a/Source/JavaScriptCore/llint/LowLevelInterpreter64.asm
+++ b/Source/JavaScriptCore/llint/LowLevelInterpreter64.asm
@@ -1023,12 +1023,9 @@ _llint_op_get_array_length:
loadp 32[PB, PC, 8], t1
loadConstantOrVariableCell(t0, t3, .opGetArrayLengthSlow)
loadp JSCell::m_structure[t3], t2
- if VALUE_PROFILER
- storep t2, ArrayProfile::m_lastSeenStructure[t1]
- end
- loadb Structure::m_indexingType[t2], t1
- btiz t1, IsArray, .opGetArrayLengthSlow
- btiz t1, HasArrayStorage, .opGetArrayLengthSlow
+ arrayProfile(t2, t1, t0)
+ btiz t2, IsArray, .opGetArrayLengthSlow
+ btiz t2, HasArrayStorage, .opGetArrayLengthSlow
loadis 8[PB, PC, 8], t1
loadp 64[PB, PC, 8], t2
loadp JSObject::m_butterfly[t3], t0
@@ -1152,16 +1149,14 @@ _llint_op_put_by_id_transition_normal_out_of_line:
_llint_op_get_by_val:
traceExecution()
loadis 16[PB, PC, 8], t2
- loadis 24[PB, PC, 8], t3
loadConstantOrVariableCell(t2, t0, .opGetByValSlow)
+ loadp JSCell::m_structure[t0], t2
+ loadp 32[PB, PC, 8], t3
+ arrayProfile(t2, t3, t1)
+ loadis 24[PB, PC, 8], t3
+ btiz t2, HasArrayStorage, .opGetByValSlow
loadConstantOrVariableInt32(t3, t1, .opGetByValSlow)
sxi2p t1, t1
- loadp JSCell::m_structure[t0], t3
- loadp 32[PB, PC, 8], t2
- if VALUE_PROFILER
- storep t3, ArrayProfile::m_lastSeenStructure[t2]
- end
- btbz Structure::m_indexingType[t3], HasArrayStorage, .opGetByValSlow
loadp JSObject::m_butterfly[t0], t3
biaeq t1, -sizeof IndexingHeader + IndexingHeader::m_vectorLength[t3], .opGetByValSlow
loadis 8[PB, PC, 8], t0
@@ -1235,15 +1230,13 @@ _llint_op_put_by_val:
traceExecution()
loadis 8[PB, PC, 8], t0
loadConstantOrVariableCell(t0, t1, .opPutByValSlow)
+ loadp JSCell::m_structure[t1], t2
+ loadp 32[PB, PC, 8], t0
+ arrayProfile(t2, t0, t3)
+ btiz t2, HasArrayStorage, .opPutByValSlow
loadis 16[PB, PC, 8], t0
loadConstantOrVariableInt32(t0, t2, .opPutByValSlow)
sxi2p t2, t2
- loadp JSCell::m_structure[t1], t3
- loadp 32[PB, PC, 8], t0
- if VALUE_PROFILER
- storep t3, ArrayProfile::m_lastSeenStructure[t0]
- end
- btbz Structure::m_indexingType[t3], HasArrayStorage, .opPutByValSlow
loadp JSObject::m_butterfly[t1], t0
biaeq t2, -sizeof IndexingHeader + IndexingHeader::m_vectorLength[t0], .opPutByValSlow
btpz ArrayStorage::m_vector[t0, t2, 8], .opPutByValEmpty