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

Unified Diff: runtime/vm/object.cc

Issue 13818006: Unboxed load/store indexed of Float32x4 (Closed) Base URL: https://dart.googlecode.com/svn/branches/bleeding_edge/dart
Patch Set: Created 7 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 side-by-side diff with in-line comments
Download patch
« no previous file with comments | « runtime/vm/object.h ('k') | runtime/vm/object_store.h » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: runtime/vm/object.cc
diff --git a/runtime/vm/object.cc b/runtime/vm/object.cc
index c1c5615b5d2b1bd0ed606ecdcd9a8b7ea0bc3290..b8b53612569f97344365db80ffa3348d6fe538b9 100644
--- a/runtime/vm/object.cc
+++ b/runtime/vm/object.cc
@@ -914,6 +914,19 @@ RawError* Object::Init(Isolate* isolate) {
object_store->set_uint32x4_class(cls);
RegisterPrivateClass(cls, Symbols::_Uint32x4(), lib);
+ cls = Class::New<Instance>(Symbols::Float32x4(), script,
+ Scanner::kDummyTokenIndex);
+ RegisterClass(cls, Symbols::Float32x4(), lib);
+ pending_classes.Add(cls, Heap::kOld);
+ type = Type::NewNonParameterizedType(cls);
+ object_store->set_float32x4_type(type);
+
+ cls = Class::New<Instance>(Symbols::Uint32x4(), script,
+ Scanner::kDummyTokenIndex);
+ pending_classes.Add(cls, Heap::kOld);
+ type = Type::NewNonParameterizedType(cls);
+ object_store->set_uint32x4_type(type);
+
object_store->set_typeddata_classes(typeddata_classes);
// Set the super type of class Stacktrace to Object type so that the
@@ -9246,6 +9259,18 @@ bool AbstractType::IsDoubleType() const {
}
+bool AbstractType::IsFloat32x4Type() const {
+ return HasResolvedTypeClass() &&
+ (type_class() == Type::Handle(Type::Float32x4()).type_class());
+}
+
+
+bool AbstractType::IsUint32x4Type() const {
+ return HasResolvedTypeClass() &&
+ (type_class() == Type::Handle(Type::Uint32x4()).type_class());
+}
+
+
bool AbstractType::IsNumberType() const {
return HasResolvedTypeClass() &&
(type_class() == Type::Handle(Type::Number()).type_class());
@@ -9394,6 +9419,16 @@ RawType* Type::Double() {
}
+RawType* Type::Float32x4() {
+ return Isolate::Current()->object_store()->float32x4_type();
+}
+
+
+RawType* Type::Uint32x4() {
+ return Isolate::Current()->object_store()->uint32x4_type();
+}
+
+
RawType* Type::Number() {
return Isolate::Current()->object_store()->number_type();
}
« no previous file with comments | « runtime/vm/object.h ('k') | runtime/vm/object_store.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698