Home | History | Annotate | Download | only in src

Lines Matching full:code

6 //     * Redistributions of source code must retain the above copyright
151 // Encoding format in the Code object:
247 ScopeInfo<Allocator>::ScopeInfo(Code* code)
253 if (code == NULL || code->sinfo_size() == 0) return;
255 Object** p0 = &Memory::Object_at(code->sinfo_start());
262 ASSERT((p - p0) * kPointerSize == code->sinfo_size());
316 int ScopeInfo<Allocator>::Serialize(Code* code) {
324 if (code != NULL) {
325 CHECK(code->sinfo_size() == size);
326 Object** p0 = &Memory::Object_at(code->sinfo_start());
341 void ScopeInfo<Allocator>::IterateScopeInfo(Code* code, ObjectVisitor* v) {
342 Object** start = &Memory::Object_at(code->sinfo_start());
343 Object** end = &Memory::Object_at(code->sinfo_start() + code->sinfo_size());
348 static Object** ContextEntriesAddr(Code* code) {
349 ASSERT(code->sinfo_size() > 0);
351 return &Memory::Object_at(code->sinfo_start()) + 2;
355 static Object** ParameterEntriesAddr(Code* code) {
356 ASSERT(code->sinfo_size() > 0);
357 Object** p = ContextEntriesAddr(code);
364 static Object** StackSlotEntriesAddr(Code* code) {
365 ASSERT(code->sinfo_size() > 0);
366 Object** p = ParameterEntriesAddr(code);
374 bool ScopeInfo<Allocator>::CallsEval(Code* code) {
375 if (code->sinfo_size() > 0) {
377 Object** p = &Memory::Object_at(code->sinfo_start()) + 1;
387 int ScopeInfo<Allocator>::NumberOfStackSlots(Code* code) {
388 if (code->sinfo_size() > 0) {
389 Object** p = StackSlotEntriesAddr(code);
399 int ScopeInfo<Allocator>::NumberOfContextSlots(Code* code) {
400 if (code->sinfo_size() > 0) {
401 Object** p = ContextEntriesAddr(code);
411 int ScopeInfo<Allocator>::StackSlotIndex(Code* code, String* name) {
413 if (code->sinfo_size() > 0) {
415 ASSERT(NumberOfStackSlots(code) > 0 ||
416 *(StackSlotEntriesAddr(code) + 1) == NULL);
418 Object** p0 = StackSlotEntriesAddr(code) + 1;
430 int ScopeInfo<Allocator>::ContextSlotIndex(Code* code,
434 int result = ContextSlotCache::Lookup(code, name, mode);
436 if (code->sinfo_size() > 0) {
438 ASSERT(NumberOfContextSlots(code) >= Context::MIN_CONTEXT_SLOTS ||
439 *(ContextEntriesAddr(code) + 1) == NULL);
442 Object** p0 = ContextEntriesAddr(code) + 1;
453 ContextSlotCache::Update(code, name, mode_value, result);
459 ContextSlotCache::Update(code, name, Variable::INTERNAL, -1);
465 int ScopeInfo<Allocator>::ParameterIndex(Code* code, String* name) {
467 if (code->sinfo_size() > 0) {
476 // implementation of the ScopeInfo code. See also other
478 Object** p = ParameterEntriesAddr(code);
492 int ScopeInfo<Allocator>::FunctionContextSlotIndex(Code* code, String* name) {
494 if (code->sinfo_size() > 0) {
495 Object** p = &Memory::Object_at(code->sinfo_start());
497 p = ContextEntriesAddr(code);
535 int ContextSlotCache::Hash(Code* code, String* name) {
538 static_cast<uint32_t>(reinterpret_cast<uintptr_t>(code)) >> 2;
543 int ContextSlotCache::Lookup(Code* code,
546 int index = Hash(code, name);
548 if ((key.code == code) && key.name->Equals(name)) {
557 void ContextSlotCache::Update(Code* code,
564 int index = Hash(code, symbol);
566 key.code = code;
571 ValidateEntry(code, name, mode, slot_index);
578 for (int index = 0; index < kLength; index++) keys_[index].code = NULL;
590 void ContextSlotCache::ValidateEntry(Code* code,
596 int index = Hash(code, name);
598 ASSERT(key.code == code);