X-Git-Url: https://git.saurik.com/apple/javascriptcore.git/blobdiff_plain/81345200c95645a1b0d2635520f96ad55dfde63f..ed1e77d3adeb83d26fd1dfb16dd84cabdcefd250:/ftl/FTLAbstractHeapRepository.h diff --git a/ftl/FTLAbstractHeapRepository.h b/ftl/FTLAbstractHeapRepository.h index d59ad6a..912754d 100644 --- a/ftl/FTLAbstractHeapRepository.h +++ b/ftl/FTLAbstractHeapRepository.h @@ -1,5 +1,5 @@ /* - * Copyright (C) 2013 Apple Inc. All rights reserved. + * Copyright (C) 2013-2015 Apple Inc. All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions @@ -35,10 +35,7 @@ namespace JSC { namespace FTL { #define FOR_EACH_ABSTRACT_HEAP(macro) \ - macro(length) \ - macro(structureTable) \ - macro(typedArrayProperties) \ - macro(WriteBarrierBuffer_bufferContents) + macro(typedArrayProperties) #define FOR_EACH_ABSTRACT_FIELD(macro) \ macro(ArrayBuffer_data, ArrayBuffer::offsetOfData()) \ @@ -46,25 +43,45 @@ namespace JSC { namespace FTL { macro(Butterfly_publicLength, Butterfly::offsetOfPublicLength()) \ macro(Butterfly_vectorLength, Butterfly::offsetOfVectorLength()) \ macro(CallFrame_callerFrame, CallFrame::callerFrameOffset()) \ + macro(DirectArguments_callee, DirectArguments::offsetOfCallee()) \ + macro(DirectArguments_length, DirectArguments::offsetOfLength()) \ + macro(DirectArguments_minCapacity, DirectArguments::offsetOfMinCapacity()) \ + macro(DirectArguments_overrides, DirectArguments::offsetOfOverrides()) \ + macro(GetterSetter_getter, GetterSetter::offsetOfGetter()) \ + macro(GetterSetter_setter, GetterSetter::offsetOfSetter()) \ macro(JSArrayBufferView_length, JSArrayBufferView::offsetOfLength()) \ macro(JSArrayBufferView_mode, JSArrayBufferView::offsetOfMode()) \ macro(JSArrayBufferView_vector, JSArrayBufferView::offsetOfVector()) \ macro(JSCell_structureID, JSCell::structureIDOffset()) \ + macro(JSCell_usefulBytes, JSCell::indexingTypeOffset()) \ macro(JSCell_typeInfoFlags, JSCell::typeInfoFlagsOffset()) \ macro(JSCell_typeInfoType, JSCell::typeInfoTypeOffset()) \ macro(JSCell_indexingType, JSCell::indexingTypeOffset()) \ macro(JSCell_gcData, JSCell::gcDataOffset()) \ macro(JSFunction_executable, JSFunction::offsetOfExecutable()) \ macro(JSFunction_scope, JSFunction::offsetOfScopeChain()) \ + macro(JSFunction_rareData, JSFunction::offsetOfRareData()) \ macro(JSObject_butterfly, JSObject::butterflyOffset()) \ + macro(JSPropertyNameEnumerator_cachedInlineCapacity, JSPropertyNameEnumerator::cachedInlineCapacityOffset()) \ + macro(JSPropertyNameEnumerator_cachedPropertyNamesVector, JSPropertyNameEnumerator::cachedPropertyNamesVectorOffset()) \ + macro(JSPropertyNameEnumerator_cachedStructureID, JSPropertyNameEnumerator::cachedStructureIDOffset()) \ + macro(JSPropertyNameEnumerator_endGenericPropertyIndex, JSPropertyNameEnumerator::endGenericPropertyIndexOffset()) \ + macro(JSPropertyNameEnumerator_endStructurePropertyIndex, JSPropertyNameEnumerator::endStructurePropertyIndexOffset()) \ + macro(JSPropertyNameEnumerator_indexLength, JSPropertyNameEnumerator::indexedLengthOffset()) \ macro(JSScope_next, JSScope::offsetOfNext()) \ macro(JSString_flags, JSString::offsetOfFlags()) \ macro(JSString_length, JSString::offsetOfLength()) \ macro(JSString_value, JSString::offsetOfValue()) \ - macro(JSVariableObject_registers, JSVariableObject::offsetOfRegisters()) \ + macro(JSSymbolTableObject_symbolTable, JSSymbolTableObject::offsetOfSymbolTable()) \ macro(JSWrapperObject_internalValue, JSWrapperObject::internalValueOffset()) \ macro(MarkedAllocator_freeListHead, MarkedAllocator::offsetOfFreeListHead()) \ macro(MarkedBlock_markBits, MarkedBlock::offsetOfMarks()) \ + macro(ScopedArguments_overrodeThings, ScopedArguments::offsetOfOverrodeThings()) \ + macro(ScopedArguments_scope, ScopedArguments::offsetOfScope()) \ + macro(ScopedArguments_table, ScopedArguments::offsetOfTable()) \ + macro(ScopedArguments_totalLength, ScopedArguments::offsetOfTotalLength()) \ + macro(ScopedArgumentsTable_arguments, ScopedArgumentsTable::offsetOfArguments()) \ + macro(ScopedArgumentsTable_length, ScopedArgumentsTable::offsetOfLength()) \ macro(StringImpl_data, StringImpl::dataOffset()) \ macro(StringImpl_hashAndFlags, StringImpl::flagsOffset()) \ macro(Structure_classInfo, Structure::classInfoOffset()) \ @@ -73,14 +90,23 @@ namespace JSC { namespace FTL { macro(Structure_structureID, Structure::structureIDOffset()) #define FOR_EACH_INDEXED_ABSTRACT_HEAP(macro) \ + macro(DirectArguments_storage, DirectArguments::storageOffset(), sizeof(EncodedJSValue)) \ + macro(JSEnvironmentRecord_variables, JSEnvironmentRecord::offsetOfVariables(), sizeof(EncodedJSValue)) \ + macro(JSPropertyNameEnumerator_cachedPropertyNamesVectorContents, 0, sizeof(WriteBarrier)) \ macro(JSRopeString_fibers, JSRopeString::offsetOfFibers(), sizeof(WriteBarrier)) \ + macro(MarkedSpace_Subspace_impreciseAllocators, OBJECT_OFFSETOF(MarkedSpace::Subspace, impreciseAllocators), sizeof(MarkedAllocator)) \ + macro(MarkedSpace_Subspace_preciseAllocators, OBJECT_OFFSETOF(MarkedSpace::Subspace, preciseAllocators), sizeof(MarkedAllocator)) \ + macro(ScopedArguments_overflowStorage, ScopedArguments::overflowStorageOffset(), sizeof(EncodedJSValue)) \ + macro(WriteBarrierBuffer_bufferContents, 0, sizeof(JSCell*)) \ macro(characters8, 0, sizeof(LChar)) \ macro(characters16, 0, sizeof(UChar)) \ macro(indexedInt32Properties, 0, sizeof(EncodedJSValue)) \ macro(indexedDoubleProperties, 0, sizeof(double)) \ macro(indexedContiguousProperties, 0, sizeof(EncodedJSValue)) \ macro(indexedArrayStorageProperties, 0, sizeof(EncodedJSValue)) \ + macro(scopedArgumentsTableArguments, 0, sizeof(int32_t)) \ macro(singleCharacterStrings, 0, sizeof(JSString*)) \ + macro(structureTable, 0, sizeof(Structure*)) \ macro(variables, 0, sizeof(Register)) #define FOR_EACH_NUMBERED_ABSTRACT_HEAP(macro) \