summaryrefslogtreecommitdiff
path: root/Source/JavaScriptCore/llint
diff options
context:
space:
mode:
Diffstat (limited to 'Source/JavaScriptCore/llint')
-rw-r--r--Source/JavaScriptCore/llint/LowLevelInterpreter32_64.asm5
-rw-r--r--Source/JavaScriptCore/llint/LowLevelInterpreter64.asm5
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