Changeset 130359 in webkit for trunk/Source/JavaScriptCore/llint/LowLevelInterpreter64.asm
- Timestamp:
- Oct 3, 2012, 9:03:14 PM (13 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/Source/JavaScriptCore/llint/LowLevelInterpreter64.asm
r129713 r130359 797 797 798 798 799 macro loadPropertyAtVariableOffsetKnownNot Final(propertyOffsetAsPointer, objectAndStorage, value)800 assert(macro (ok) bigteq propertyOffsetAsPointer, InlineStorageCapacity, ok end)799 macro loadPropertyAtVariableOffsetKnownNotInline(propertyOffsetAsPointer, objectAndStorage, value) 800 assert(macro (ok) bigteq propertyOffsetAsPointer, firstOutOfLineOffset, ok end) 801 801 negp propertyOffsetAsPointer 802 802 loadp JSObject::m_butterfly[objectAndStorage], objectAndStorage 803 loadp ( InlineStorageCapacity - 1) * 8 - sizeof IndexingHeader[objectAndStorage, propertyOffsetAsPointer, 8], value803 loadp (firstOutOfLineOffset - 2) * 8[objectAndStorage, propertyOffsetAsPointer, 8], value 804 804 end 805 805 806 806 macro loadPropertyAtVariableOffset(propertyOffsetAsInt, objectAndStorage, value) 807 bilt propertyOffsetAsInt, InlineStorageCapacity, .isInline807 bilt propertyOffsetAsInt, firstOutOfLineOffset, .isInline 808 808 loadp JSObject::m_butterfly[objectAndStorage], objectAndStorage 809 809 negi propertyOffsetAsInt … … 811 811 jmp .ready 812 812 .isInline: 813 addp JSFinalObject::m_inlineStorage - ( InlineStorageCapacity - 1) * 8 + sizeof IndexingHeader, objectAndStorage813 addp JSFinalObject::m_inlineStorage - (firstOutOfLineOffset - 2) * 8, objectAndStorage 814 814 .ready: 815 loadp ( InlineStorageCapacity - 1) * 8 - sizeof IndexingHeader[objectAndStorage, propertyOffsetAsInt, 8], value815 loadp (firstOutOfLineOffset - 2) * 8[objectAndStorage, propertyOffsetAsInt, 8], value 816 816 end 817 817 … … 827 827 bpneq t1, 24[PB, PC, 8], slow 828 828 loadis 32[PB, PC, 8], t1 829 loadPropertyAtVariableOffset (t1, t0, t2)829 loadPropertyAtVariableOffsetKnownNotInline(t1, t0, t2) 830 830 loadis 8[PB, PC, 8], t0 831 831 storep t2, [cfr, t0, 8] … … 1209 1209 subi 1, t3 1210 1210 biaeq t3, JSPropertyNameIterator::m_numCacheableSlots[t1], .opGetByPnameSlow 1211 addi JSPropertyNameIterator::m_offsetBase[t1], t3 1211 bilt t3, JSPropertyNameIterator::m_cachedStructureInlineCapacity[t1], .opGetByPnameInlineProperty 1212 addi firstOutOfLineOffset, t3 1213 subi JSPropertyNameIterator::m_cachedStructureInlineCapacity[t1], t3 1214 .opGetByPnameInlineProperty: 1212 1215 loadPropertyAtVariableOffset(t3, t0, t0) 1213 1216 loadis 8[PB, PC, 8], t1
Note:
See TracChangeset
for help on using the changeset viewer.