summaryrefslogtreecommitdiff
path: root/Source/JavaScriptCore/llint/LowLevelInterpreter64.asm
diff options
context:
space:
mode:
Diffstat (limited to 'Source/JavaScriptCore/llint/LowLevelInterpreter64.asm')
-rw-r--r--Source/JavaScriptCore/llint/LowLevelInterpreter64.asm17
1 files changed, 10 insertions, 7 deletions
diff --git a/Source/JavaScriptCore/llint/LowLevelInterpreter64.asm b/Source/JavaScriptCore/llint/LowLevelInterpreter64.asm
index b976421f0..6e752a6d0 100644
--- a/Source/JavaScriptCore/llint/LowLevelInterpreter64.asm
+++ b/Source/JavaScriptCore/llint/LowLevelInterpreter64.asm
@@ -778,20 +778,23 @@ _llint_op_is_string:
dispatch(3)
-macro loadPropertyAtVariableOffsetKnownNotFinal(propertyOffset, objectAndStorage, value)
- assert(macro (ok) bigteq propertyOffset, InlineStorageCapacity, ok end)
+macro loadPropertyAtVariableOffsetKnownNotFinal(propertyOffsetAsPointer, objectAndStorage, value)
+ assert(macro (ok) bigteq propertyOffsetAsPointer, InlineStorageCapacity, ok end)
+ negp propertyOffsetAsPointer
loadp JSObject::m_outOfLineStorage[objectAndStorage], objectAndStorage
- loadp -8 * InlineStorageCapacity[objectAndStorage, propertyOffset, 8], value
+ loadp (InlineStorageCapacity - 2) * 8[objectAndStorage, propertyOffsetAsPointer, 8], value
end
-macro loadPropertyAtVariableOffset(propertyOffset, objectAndStorage, value)
- bilt propertyOffset, InlineStorageCapacity, .isInline
+macro loadPropertyAtVariableOffset(propertyOffsetAsInt, objectAndStorage, value)
+ bilt propertyOffsetAsInt, InlineStorageCapacity, .isInline
loadp JSObject::m_outOfLineStorage[objectAndStorage], objectAndStorage
+ negi propertyOffsetAsInt
+ sxi2p propertyOffsetAsInt, propertyOffsetAsInt
jmp .ready
.isInline:
- addp JSFinalObject::m_inlineStorage + InlineStorageCapacity * 8, objectAndStorage
+ addp JSFinalObject::m_inlineStorage - (InlineStorageCapacity - 2) * 8, objectAndStorage
.ready:
- loadp -8 * InlineStorageCapacity[objectAndStorage, propertyOffset, 8], value
+ loadp (InlineStorageCapacity - 2) * 8[objectAndStorage, propertyOffsetAsInt, 8], value
end
macro resolveGlobal(size, slow)