diff options
Diffstat (limited to 'Source/JavaScriptCore/llint')
-rw-r--r-- | Source/JavaScriptCore/llint/LowLevelInterpreter32_64.asm | 5 | ||||
-rw-r--r-- | Source/JavaScriptCore/llint/LowLevelInterpreter64.asm | 5 |
2 files changed, 6 insertions, 4 deletions
diff --git a/Source/JavaScriptCore/llint/LowLevelInterpreter32_64.asm b/Source/JavaScriptCore/llint/LowLevelInterpreter32_64.asm index 41926d8db..953bb3a92 100644 --- a/Source/JavaScriptCore/llint/LowLevelInterpreter32_64.asm +++ b/Source/JavaScriptCore/llint/LowLevelInterpreter32_64.asm @@ -1388,8 +1388,8 @@ _llint_op_put_by_val: loadi 4[PC], t0 loadConstantOrVariablePayload(t0, CellTag, t1, .opPutByValSlow) loadp JSCell::m_structure[t1], t2 - loadp 16[PC], t0 - arrayProfile(t2, t0, t3) + loadp 16[PC], t3 + arrayProfile(t2, t3, t0) btiz t2, HasArrayStorage, .opPutByValSlow loadi 8[PC], t0 loadConstantOrVariablePayload(t0, Int32Tag, t2, .opPutByValSlow) @@ -1405,6 +1405,7 @@ _llint_op_put_by_val: dispatch(5) .opPutByValEmpty: + storeb 1, ArrayProfile::m_mayStoreToHole[t3] addi 1, ArrayStorage::m_numValuesInVector[t0] bib t2, -sizeof IndexingHeader + IndexingHeader::m_publicLength[t0], .opPutByValStoreResult addi 1, t2, t1 diff --git a/Source/JavaScriptCore/llint/LowLevelInterpreter64.asm b/Source/JavaScriptCore/llint/LowLevelInterpreter64.asm index 51a11f53f..812be0ec9 100644 --- a/Source/JavaScriptCore/llint/LowLevelInterpreter64.asm +++ b/Source/JavaScriptCore/llint/LowLevelInterpreter64.asm @@ -1231,8 +1231,8 @@ _llint_op_put_by_val: 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) + loadp 32[PB, PC, 8], t3 + arrayProfile(t2, t3, t0) btiz t2, HasArrayStorage, .opPutByValSlow loadis 16[PB, PC, 8], t0 loadConstantOrVariableInt32(t0, t2, .opPutByValSlow) @@ -1248,6 +1248,7 @@ _llint_op_put_by_val: dispatch(5) .opPutByValEmpty: + storeb 1, ArrayProfile::m_mayStoreToHole[t3] addi 1, ArrayStorage::m_numValuesInVector[t0] bib t2, -sizeof IndexingHeader + IndexingHeader::m_publicLength[t0], .opPutByValStoreResult addi 1, t2, t1 |