Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(63)

Side by Side Diff: src/serialize.cc

Issue 196139: X64: Convert smis to holding 32 bits of payload. (Closed)
Patch Set: Addressed review comments. Forwarded to head. Created 11 years, 2 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
« no previous file with comments | « src/runtime.cc ('k') | src/top.cc » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
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 20 matching lines...) Expand all
31 #include "api.h" 31 #include "api.h"
32 #include "execution.h" 32 #include "execution.h"
33 #include "global-handles.h" 33 #include "global-handles.h"
34 #include "ic-inl.h" 34 #include "ic-inl.h"
35 #include "natives.h" 35 #include "natives.h"
36 #include "platform.h" 36 #include "platform.h"
37 #include "runtime.h" 37 #include "runtime.h"
38 #include "serialize.h" 38 #include "serialize.h"
39 #include "stub-cache.h" 39 #include "stub-cache.h"
40 #include "v8threads.h" 40 #include "v8threads.h"
41 #include "top.h"
41 42
42 namespace v8 { 43 namespace v8 {
43 namespace internal { 44 namespace internal {
44 45
45 // 32-bit encoding: a RelativeAddress must be able to fit in a 46 // 32-bit encoding: a RelativeAddress must be able to fit in a
46 // pointer: it is encoded as an Address with (from LS to MS bits): 47 // pointer: it is encoded as an Address with (from LS to MS bits):
47 // - 2 bits identifying this as a HeapObject. 48 // - 2 bits identifying this as a HeapObject.
48 // - 4 bits to encode the AllocationSpace (including special values for 49 // - 4 bits to encode the AllocationSpace (including special values for
49 // code and fixed arrays in LO space) 50 // code and fixed arrays in LO space)
50 // - 27 bits identifying a word in the space, in one of three formats: 51 // - 27 bits identifying a word in the space, in one of three formats:
(...skipping 554 matching lines...) Expand 10 before | Expand all | Expand 10 after
605 606
606 for (size_t i = 0; i < ARRAY_SIZE(stats_ref_table); ++i) { 607 for (size_t i = 0; i < ARRAY_SIZE(stats_ref_table); ++i) {
607 Add(reinterpret_cast<Address>( 608 Add(reinterpret_cast<Address>(
608 GetInternalPointer(stats_ref_table[i].counter)), 609 GetInternalPointer(stats_ref_table[i].counter)),
609 STATS_COUNTER, 610 STATS_COUNTER,
610 stats_ref_table[i].id, 611 stats_ref_table[i].id,
611 stats_ref_table[i].name); 612 stats_ref_table[i].name);
612 } 613 }
613 614
614 // Top addresses 615 // Top addresses
615 const char* top_address_format = "Top::get_address_from_id(%i)"; 616 const char* top_address_format = "Top::%s";
616 size_t top_format_length = strlen(top_address_format); 617
618 const char* AddressNames[] = {
619 #define C(name) #name,
620 TOP_ADDRESS_LIST(C)
621 TOP_ADDRESS_LIST_PROF(C)
622 NULL
623 #undef C
624 };
625
626 size_t top_format_length = strlen(top_address_format) - 2;
617 for (uint16_t i = 0; i < Top::k_top_address_count; ++i) { 627 for (uint16_t i = 0; i < Top::k_top_address_count; ++i) {
618 Vector<char> name = Vector<char>::New(top_format_length + 1); 628 const char* address_name = AddressNames[i];
629 Vector<char> name =
630 Vector<char>::New(top_format_length + strlen(address_name) + 1);
619 const char* chars = name.start(); 631 const char* chars = name.start();
620 OS::SNPrintF(name, top_address_format, i); 632 OS::SNPrintF(name, top_address_format, address_name);
621 Add(Top::get_address_from_id((Top::AddressId)i), TOP_ADDRESS, i, chars); 633 Add(Top::get_address_from_id((Top::AddressId)i), TOP_ADDRESS, i, chars);
622 } 634 }
623 635
624 // Extensions 636 // Extensions
625 Add(FUNCTION_ADDR(GCExtension::GC), EXTENSION, 1, 637 Add(FUNCTION_ADDR(GCExtension::GC), EXTENSION, 1,
626 "GCExtension::GC"); 638 "GCExtension::GC");
627 639
628 // Accessors 640 // Accessors
629 #define ACCESSOR_DESCRIPTOR_DECLARATION(name) \ 641 #define ACCESSOR_DESCRIPTOR_DECLARATION(name) \
630 Add((Address)&Accessors::name, \ 642 Add((Address)&Accessors::name, \
(...skipping 1091 matching lines...) Expand 10 before | Expand all | Expand 10 after
1722 ASSERT(index < large_objects_.length()); 1734 ASSERT(index < large_objects_.length());
1723 } 1735 }
1724 return large_objects_[index]; // s.page_offset() is ignored. 1736 return large_objects_[index]; // s.page_offset() is ignored.
1725 } 1737 }
1726 UNREACHABLE(); 1738 UNREACHABLE();
1727 return NULL; 1739 return NULL;
1728 } 1740 }
1729 1741
1730 1742
1731 } } // namespace v8::internal 1743 } } // namespace v8::internal
OLDNEW
« no previous file with comments | « src/runtime.cc ('k') | src/top.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698