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

Side by Side Diff: runtime/vm/object.cc

Issue 15502004: Intrinsify random nextState, improve perfromance significantly. (Closed) Base URL: http://dart.googlecode.com/svn/branches/bleeding_edge/dart/
Patch Set: Created 7 years, 7 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 | Annotate | Revision Log
« no previous file with comments | « runtime/vm/intrinsifier_x64.cc ('k') | runtime/vm/symbols.h » ('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 (c) 2012, the Dart project authors. Please see the AUTHORS file 1 // Copyright (c) 2012, the Dart project authors. Please see the AUTHORS file
2 // for details. All rights reserved. Use of this source code is governed by a 2 // for details. All rights reserved. Use of this source code is governed by a
3 // BSD-style license that can be found in the LICENSE file. 3 // BSD-style license that can be found in the LICENSE file.
4 4
5 #include "vm/object.h" 5 #include "vm/object.h"
6 6
7 #include "include/dart_api.h" 7 #include "include/dart_api.h"
8 #include "platform/assert.h" 8 #include "platform/assert.h"
9 #include "vm/assembler.h" 9 #include "vm/assembler.h"
10 #include "vm/cpu.h" 10 #include "vm/cpu.h"
(...skipping 2464 matching lines...) Expand 10 before | Expand all | Expand 10 after
2475 RawField* Class::LookupField(const String& name) const { 2475 RawField* Class::LookupField(const String& name) const {
2476 Isolate* isolate = Isolate::Current(); 2476 Isolate* isolate = Isolate::Current();
2477 const Array& flds = Array::Handle(isolate, fields()); 2477 const Array& flds = Array::Handle(isolate, fields());
2478 Field& field = Field::Handle(isolate, Field::null()); 2478 Field& field = Field::Handle(isolate, Field::null());
2479 String& field_name = String::Handle(isolate, String::null()); 2479 String& field_name = String::Handle(isolate, String::null());
2480 intptr_t len = flds.Length(); 2480 intptr_t len = flds.Length();
2481 for (intptr_t i = 0; i < len; i++) { 2481 for (intptr_t i = 0; i < len; i++) {
2482 field ^= flds.At(i); 2482 field ^= flds.At(i);
2483 field_name ^= field.name(); 2483 field_name ^= field.name();
2484 if (String::EqualsIgnoringPrivateKey(field_name, name)) { 2484 if (String::EqualsIgnoringPrivateKey(field_name, name)) {
2485 return field.raw(); 2485 return field.raw();
2486 } 2486 }
2487 } 2487 }
2488 // No field found. 2488 // No field found.
2489 return Field::null(); 2489 return Field::null();
2490 } 2490 }
2491 2491
2492 2492
2493 RawLibraryPrefix* Class::LookupLibraryPrefix(const String& name) const { 2493 RawLibraryPrefix* Class::LookupLibraryPrefix(const String& name) const {
2494 Isolate* isolate = Isolate::Current(); 2494 Isolate* isolate = Isolate::Current();
2495 const Library& lib = Library::Handle(isolate, library()); 2495 const Library& lib = Library::Handle(isolate, library());
(...skipping 2317 matching lines...) Expand 10 before | Expand all | Expand 10 after
4813 } 4813 }
4814 4814
4815 4815
4816 RawString* Field::UserVisibleName() const { 4816 RawString* Field::UserVisibleName() const {
4817 const String& str = String::Handle(name()); 4817 const String& str = String::Handle(name());
4818 return IdentifierPrettyName(str); 4818 return IdentifierPrettyName(str);
4819 } 4819 }
4820 4820
4821 4821
4822 const char* Field::ToCString() const { 4822 const char* Field::ToCString() const {
4823 if (IsNull()) {
4824 return "Field::null";
4825 }
4823 const char* kF0 = is_static() ? " static" : ""; 4826 const char* kF0 = is_static() ? " static" : "";
4824 const char* kF1 = is_final() ? " final" : ""; 4827 const char* kF1 = is_final() ? " final" : "";
4825 const char* kF2 = is_const() ? " const" : ""; 4828 const char* kF2 = is_const() ? " const" : "";
4826 const char* kFormat = "Field <%s.%s>:%s%s%s"; 4829 const char* kFormat = "Field <%s.%s>:%s%s%s";
4827 const char* field_name = String::Handle(name()).ToCString(); 4830 const char* field_name = String::Handle(name()).ToCString();
4828 const Class& cls = Class::Handle(owner()); 4831 const Class& cls = Class::Handle(owner());
4829 const char* cls_name = String::Handle(cls.Name()).ToCString(); 4832 const char* cls_name = String::Handle(cls.Name()).ToCString();
4830 intptr_t len = 4833 intptr_t len =
4831 OS::SNPrint(NULL, 0, kFormat, cls_name, field_name, kF0, kF1, kF2) + 1; 4834 OS::SNPrint(NULL, 0, kFormat, cls_name, field_name, kF0, kF1, kF2) + 1;
4832 char* chars = Isolate::Current()->current_zone()->Alloc<char>(len); 4835 char* chars = Isolate::Current()->current_zone()->Alloc<char>(len);
(...skipping 2251 matching lines...) Expand 10 before | Expand all | Expand 10 after
7084 NoGCScope no_gc; 7087 NoGCScope no_gc;
7085 result ^= raw; 7088 result ^= raw;
7086 result.SetLength(num_descriptors); 7089 result.SetLength(num_descriptors);
7087 } 7090 }
7088 return result.raw(); 7091 return result.raw();
7089 } 7092 }
7090 7093
7091 7094
7092 const char* PcDescriptors::KindAsStr(intptr_t index) const { 7095 const char* PcDescriptors::KindAsStr(intptr_t index) const {
7093 switch (DescriptorKind(index)) { 7096 switch (DescriptorKind(index)) {
7094 case PcDescriptors::kDeopt: return "deopt "; 7097 case PcDescriptors::kDeopt: return "deopt ";
7095 case PcDescriptors::kEntryPatch: return "entry-patch "; 7098 case PcDescriptors::kEntryPatch: return "entry-patch ";
7096 case PcDescriptors::kPatchCode: return "patch "; 7099 case PcDescriptors::kPatchCode: return "patch ";
7097 case PcDescriptors::kLazyDeoptJump: return "lazy-deopt "; 7100 case PcDescriptors::kLazyDeoptJump: return "lazy-deopt ";
7098 case PcDescriptors::kIcCall: return "ic-call "; 7101 case PcDescriptors::kIcCall: return "ic-call ";
7099 case PcDescriptors::kFuncCall: return "fn-call "; 7102 case PcDescriptors::kFuncCall: return "fn-call ";
7100 case PcDescriptors::kClosureCall: return "closure-call "; 7103 case PcDescriptors::kClosureCall: return "closure-call ";
7101 case PcDescriptors::kReturn: return "return "; 7104 case PcDescriptors::kReturn: return "return ";
7102 case PcDescriptors::kEqualNull: return "equal-null "; 7105 case PcDescriptors::kEqualNull: return "equal-null ";
7103 case PcDescriptors::kOther: return "other "; 7106 case PcDescriptors::kOther: return "other ";
7104 } 7107 }
(...skipping 6152 matching lines...) Expand 10 before | Expand all | Expand 10 after
13257 } 13260 }
13258 return result.raw(); 13261 return result.raw();
13259 } 13262 }
13260 13263
13261 13264
13262 const char* WeakProperty::ToCString() const { 13265 const char* WeakProperty::ToCString() const {
13263 return "_WeakProperty"; 13266 return "_WeakProperty";
13264 } 13267 }
13265 13268
13266 } // namespace dart 13269 } // namespace dart
OLDNEW
« no previous file with comments | « runtime/vm/intrinsifier_x64.cc ('k') | runtime/vm/symbols.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698