OLD | NEW |
---|---|
1 // Copyright 2006-2008 the V8 project authors. All rights reserved. | 1 // Copyright 2006-2008 the V8 project authors. All rights reserved. |
2 // Redistribution and use in source and binary forms, with or without | 2 // Redistribution and use in source and binary forms, with or without |
3 // modification, are permitted provided that the following conditions are | 3 // modification, are permitted provided that the following conditions are |
4 // met: | 4 // met: |
5 // | 5 // |
6 // * Redistributions of source code must retain the above copyright | 6 // * Redistributions of source code must retain the above copyright |
7 // notice, this list of conditions and the following disclaimer. | 7 // notice, this list of conditions and the following disclaimer. |
8 // * Redistributions in binary form must reproduce the above | 8 // * Redistributions in binary form must reproduce the above |
9 // copyright notice, this list of conditions and the following | 9 // copyright notice, this list of conditions and the following |
10 // disclaimer in the documentation and/or other materials provided | 10 // disclaimer in the documentation and/or other materials provided |
(...skipping 568 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
579 1, | 579 1, |
580 "Builtins::builtin_passed_function"); | 580 "Builtins::builtin_passed_function"); |
581 Add(ExternalReference::the_hole_value_location().address(), | 581 Add(ExternalReference::the_hole_value_location().address(), |
582 UNCLASSIFIED, | 582 UNCLASSIFIED, |
583 2, | 583 2, |
584 "Factory::the_hole_value().location()"); | 584 "Factory::the_hole_value().location()"); |
585 Add(ExternalReference::address_of_stack_guard_limit().address(), | 585 Add(ExternalReference::address_of_stack_guard_limit().address(), |
586 UNCLASSIFIED, | 586 UNCLASSIFIED, |
587 3, | 587 3, |
588 "StackGuard::address_of_limit()"); | 588 "StackGuard::address_of_limit()"); |
589 Add(ExternalReference::address_of_regexp_stack_limit().address(), | |
590 UNCLASSIFIED, | |
591 4, | |
592 "StackGuard::address_of_limit()"); | |
Mads Ager (chromium)
2009/01/13 14:26:10
RegexpStackGuard?
olehougaard
2009/01/13 14:35:22
Fixed.
| |
589 Add(ExternalReference::debug_break().address(), | 593 Add(ExternalReference::debug_break().address(), |
590 UNCLASSIFIED, | 594 UNCLASSIFIED, |
591 4, | 595 5, |
592 "Debug::Break()"); | 596 "Debug::Break()"); |
593 Add(ExternalReference::new_space_start().address(), | 597 Add(ExternalReference::new_space_start().address(), |
594 UNCLASSIFIED, | 598 UNCLASSIFIED, |
595 5, | 599 6, |
596 "Heap::NewSpaceStart()"); | 600 "Heap::NewSpaceStart()"); |
597 Add(ExternalReference::heap_always_allocate_scope_depth().address(), | 601 Add(ExternalReference::heap_always_allocate_scope_depth().address(), |
598 UNCLASSIFIED, | 602 UNCLASSIFIED, |
599 6, | 603 7, |
600 "Heap::always_allocate_scope_depth()"); | 604 "Heap::always_allocate_scope_depth()"); |
601 Add(ExternalReference::new_space_allocation_limit_address().address(), | 605 Add(ExternalReference::new_space_allocation_limit_address().address(), |
602 UNCLASSIFIED, | 606 UNCLASSIFIED, |
603 7, | 607 8, |
604 "Heap::NewSpaceAllocationLimitAddress()"); | 608 "Heap::NewSpaceAllocationLimitAddress()"); |
605 Add(ExternalReference::new_space_allocation_top_address().address(), | 609 Add(ExternalReference::new_space_allocation_top_address().address(), |
606 UNCLASSIFIED, | 610 UNCLASSIFIED, |
607 8, | 611 9, |
608 "Heap::NewSpaceAllocationTopAddress()"); | 612 "Heap::NewSpaceAllocationTopAddress()"); |
609 Add(ExternalReference::debug_step_in_fp_address().address(), | 613 Add(ExternalReference::debug_step_in_fp_address().address(), |
610 UNCLASSIFIED, | 614 UNCLASSIFIED, |
611 9, | 615 10, |
612 "Debug::step_in_fp_addr()"); | 616 "Debug::step_in_fp_addr()"); |
613 } | 617 } |
614 | 618 |
615 | 619 |
616 ExternalReferenceEncoder::ExternalReferenceEncoder() | 620 ExternalReferenceEncoder::ExternalReferenceEncoder() |
617 : encodings_(Match) { | 621 : encodings_(Match) { |
618 ExternalReferenceTable* external_references = | 622 ExternalReferenceTable* external_references = |
619 ExternalReferenceTable::instance(); | 623 ExternalReferenceTable::instance(); |
620 for (int i = 0; i < external_references->size(); ++i) { | 624 for (int i = 0; i < external_references->size(); ++i) { |
621 Put(external_references->address(i), i); | 625 Put(external_references->address(i), i); |
(...skipping 175 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
797 CHECK(*p == NULL ? code == 0 : code != 0); | 801 CHECK(*p == NULL ? code == 0 : code != 0); |
798 offsets_.Add(reinterpret_cast<Address>(p) - obj_address_); | 802 offsets_.Add(reinterpret_cast<Address>(p) - obj_address_); |
799 addresses_.Add(reinterpret_cast<Address>(code)); | 803 addresses_.Add(reinterpret_cast<Address>(code)); |
800 } | 804 } |
801 } | 805 } |
802 | 806 |
803 virtual void VisitRuntimeEntry(RelocInfo* rinfo) { | 807 virtual void VisitRuntimeEntry(RelocInfo* rinfo) { |
804 Address target = rinfo->target_address(); | 808 Address target = rinfo->target_address(); |
805 uint32_t encoding = reference_encoder_->Encode(target); | 809 uint32_t encoding = reference_encoder_->Encode(target); |
806 CHECK(target == NULL ? encoding == 0 : encoding != 0); | 810 CHECK(target == NULL ? encoding == 0 : encoding != 0); |
807 offsets_.Add(reinterpret_cast<Address>(rinfo->pc()) - obj_address_); | 811 offsets_.Add(rinfo->target_address_address() - obj_address_); |
808 addresses_.Add(reinterpret_cast<Address>(encoding)); | 812 addresses_.Add(reinterpret_cast<Address>(encoding)); |
809 } | 813 } |
810 | 814 |
811 void Update(Address start_address) { | 815 void Update(Address start_address) { |
812 for (int i = 0; i < offsets_.length(); i++) { | 816 for (int i = 0; i < offsets_.length(); i++) { |
813 Address* p = reinterpret_cast<Address*>(start_address + offsets_[i]); | 817 Address* p = reinterpret_cast<Address*>(start_address + offsets_[i]); |
814 *p = addresses_[i]; | 818 *p = addresses_[i]; |
815 } | 819 } |
816 } | 820 } |
817 | 821 |
(...skipping 444 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
1262 | 1266 |
1263 void Deserializer::VisitExternalReferences(Address* start, Address* end) { | 1267 void Deserializer::VisitExternalReferences(Address* start, Address* end) { |
1264 for (Address* p = start; p < end; ++p) { | 1268 for (Address* p = start; p < end; ++p) { |
1265 uint32_t code = reinterpret_cast<uint32_t>(*p); | 1269 uint32_t code = reinterpret_cast<uint32_t>(*p); |
1266 *p = reference_decoder_->Decode(code); | 1270 *p = reference_decoder_->Decode(code); |
1267 } | 1271 } |
1268 } | 1272 } |
1269 | 1273 |
1270 | 1274 |
1271 void Deserializer::VisitRuntimeEntry(RelocInfo* rinfo) { | 1275 void Deserializer::VisitRuntimeEntry(RelocInfo* rinfo) { |
1272 uint32_t* pc = reinterpret_cast<uint32_t*>(rinfo->pc()); | 1276 uint32_t* pc = reinterpret_cast<uint32_t*>(rinfo->target_address_address()); |
1273 uint32_t encoding = *pc; | 1277 uint32_t encoding = *pc; |
1274 Address target = reference_decoder_->Decode(encoding); | 1278 Address target = reference_decoder_->Decode(encoding); |
1275 rinfo->set_target_address(target); | 1279 rinfo->set_target_address(target); |
1276 } | 1280 } |
1277 | 1281 |
1278 | 1282 |
1279 void Deserializer::GetFlags() { | 1283 void Deserializer::GetFlags() { |
1280 reader_.ExpectC('F'); | 1284 reader_.ExpectC('F'); |
1281 int argc = reader_.GetInt() + 1; | 1285 int argc = reader_.GetInt() + 1; |
1282 char** argv = NewArray<char*>(argc); | 1286 char** argv = NewArray<char*>(argc); |
(...skipping 232 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
1515 ASSERT(index < large_objects_.length()); | 1519 ASSERT(index < large_objects_.length()); |
1516 } | 1520 } |
1517 return large_objects_[index]; // s.page_offset() is ignored. | 1521 return large_objects_[index]; // s.page_offset() is ignored. |
1518 } | 1522 } |
1519 UNREACHABLE(); | 1523 UNREACHABLE(); |
1520 return NULL; | 1524 return NULL; |
1521 } | 1525 } |
1522 | 1526 |
1523 | 1527 |
1524 } } // namespace v8::internal | 1528 } } // namespace v8::internal |
OLD | NEW |