FTLAbstractHeapRepository.cpp [plain text]
#include "config.h"
#include "FTLAbstractHeapRepository.h"
#if ENABLE(FTL_JIT)
#include "JSScope.h"
#include "JSVariableObject.h"
#include "JSCInlines.h"
namespace JSC { namespace FTL {
AbstractHeapRepository::AbstractHeapRepository(LContext context)
: root(0, "jscRoot")
#define ABSTRACT_HEAP_INITIALIZATION(name) , name(&root, #name)
FOR_EACH_ABSTRACT_HEAP(ABSTRACT_HEAP_INITIALIZATION)
#undef ABSTRACT_HEAP_INITIALIZATION
#define ABSTRACT_FIELD_INITIALIZATION(name, offset) , name(&root, #name, offset)
FOR_EACH_ABSTRACT_FIELD(ABSTRACT_FIELD_INITIALIZATION)
#undef ABSTRACT_FIELD_INITIALIZATION
, JSCell_freeListNext(JSCell_structureID)
#define INDEXED_ABSTRACT_HEAP_INITIALIZATION(name, offset, size) , name(context, &root, #name, offset, size)
FOR_EACH_INDEXED_ABSTRACT_HEAP(INDEXED_ABSTRACT_HEAP_INITIALIZATION)
#undef INDEXED_ABSTRACT_HEAP_INITIALIZATION
#define NUMBERED_ABSTRACT_HEAP_INITIALIZATION(name) , name(context, &root, #name)
FOR_EACH_NUMBERED_ABSTRACT_HEAP(NUMBERED_ABSTRACT_HEAP_INITIALIZATION)
#undef NUMBERED_ABSTRACT_HEAP_INITIALIZATION
, absolute(context, &root, "absolute")
, m_context(context)
, m_tbaaKind(mdKindID(m_context, "tbaa"))
{
root.m_tbaaMetadata = mdNode(m_context, mdString(m_context, root.m_heapName));
RELEASE_ASSERT(m_tbaaKind);
RELEASE_ASSERT(root.m_tbaaMetadata);
RELEASE_ASSERT(!JSCell_freeListNext.offset());
}
AbstractHeapRepository::~AbstractHeapRepository()
{
}
} }
#endif // ENABLE(FTL_JIT)