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

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

Issue 1858283002: Initial SIMDBC interpreter. (Closed) Base URL: git@github.com:dart-lang/sdk.git@master
Patch Set: Created 4 years, 8 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
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/native_entry.h" 5 #include "vm/native_entry.h"
6 #include "vm/object.h" 6 #include "vm/object.h"
7 #include "vm/object_store.h" 7 #include "vm/object_store.h"
8 #include "vm/snapshot.h" 8 #include "vm/snapshot.h"
9 #include "vm/stub_code.h" 9 #include "vm/stub_code.h"
10 #include "vm/symbols.h" 10 #include "vm/symbols.h"
(...skipping 1610 matching lines...) Expand 10 before | Expand all | Expand 10 after
1621 ASSERT(info_array != TypedData::null()); 1621 ASSERT(info_array != TypedData::null());
1622 1622
1623 writer->Write<intptr_t>(length); 1623 writer->Write<intptr_t>(length);
1624 for (intptr_t i = 0; i < length; i++) { 1624 for (intptr_t i = 0; i < length; i++) {
1625 ObjectPool::EntryType entry_type = 1625 ObjectPool::EntryType entry_type =
1626 static_cast<ObjectPool::EntryType>(info_array->data()[i]); 1626 static_cast<ObjectPool::EntryType>(info_array->data()[i]);
1627 writer->Write<int8_t>(entry_type); 1627 writer->Write<int8_t>(entry_type);
1628 Entry& entry = ptr()->data()[i]; 1628 Entry& entry = ptr()->data()[i];
1629 switch (entry_type) { 1629 switch (entry_type) {
1630 case ObjectPool::kTaggedObject: { 1630 case ObjectPool::kTaggedObject: {
1631 #if !defined(TARGET_ARCH_DBC)
1631 if (entry.raw_obj_ == StubCode::CallNativeCFunction_entry()->code()) { 1632 if (entry.raw_obj_ == StubCode::CallNativeCFunction_entry()->code()) {
1632 // Natives can run while precompiling, becoming linked and switching 1633 // Natives can run while precompiling, becoming linked and switching
1633 // their stub. Reset to the initial stub used for lazy-linking. 1634 // their stub. Reset to the initial stub used for lazy-linking.
1634 writer->WriteObjectImpl( 1635 writer->WriteObjectImpl(
1635 StubCode::CallBootstrapCFunction_entry()->code(), kAsReference); 1636 StubCode::CallBootstrapCFunction_entry()->code(), kAsReference);
1636 } else { 1637 break;
1637 writer->WriteObjectImpl(entry.raw_obj_, kAsReference);
1638 } 1638 }
1639 #endif
1640 writer->WriteObjectImpl(entry.raw_obj_, kAsReference);
1639 break; 1641 break;
1640 } 1642 }
1641 case ObjectPool::kImmediate: { 1643 case ObjectPool::kImmediate: {
1642 writer->Write<intptr_t>(entry.raw_value_); 1644 writer->Write<intptr_t>(entry.raw_value_);
1643 break; 1645 break;
1644 } 1646 }
1645 case ObjectPool::kNativeEntry: { 1647 case ObjectPool::kNativeEntry: {
1646 // Write nothing. Will initialize with the lazy link entry. 1648 // Write nothing. Will initialize with the lazy link entry.
1647 break; 1649 break;
1648 } 1650 }
(...skipping 2081 matching lines...) Expand 10 before | Expand all | Expand 10 after
3730 // We do not allow objects with native fields in an isolate message. 3732 // We do not allow objects with native fields in an isolate message.
3731 writer->SetWriteException(Exceptions::kArgument, 3733 writer->SetWriteException(Exceptions::kArgument,
3732 "Illegal argument in isolate message" 3734 "Illegal argument in isolate message"
3733 " : (object is a UserTag)"); 3735 " : (object is a UserTag)");
3734 } else { 3736 } else {
3735 UNREACHABLE(); 3737 UNREACHABLE();
3736 } 3738 }
3737 } 3739 }
3738 3740
3739 } // namespace dart 3741 } // namespace dart
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698