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

Unified Diff: runtime/vm/object.cc

Issue 150063004: Support reusable boxes for Float32x4 fields (Closed) Base URL: https://dart.googlecode.com/svn/branches/bleeding_edge/dart
Patch Set: Created 6 years, 10 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
Index: runtime/vm/object.cc
diff --git a/runtime/vm/object.cc b/runtime/vm/object.cc
index 22a93dc6dd1d65c597bd5ae1eb9cebfe5caf4f6f..5bcba766a85c855b7a711c2127e394a7e33d4dbc 100644
--- a/runtime/vm/object.cc
+++ b/runtime/vm/object.cc
@@ -6450,9 +6450,20 @@ void Field::set_guarded_list_length(intptr_t list_length) const {
bool Field::IsUnboxedField() const {
- // TODO(johnmccutchan): Add kFloat32x4Cid here.
+#if defined(TARGET_ARCH_MIPS)
+ bool valid_class = (guarded_cid() == kDoubleCid);
+#elif defined(TARGET_ARCH_ARM)
+ bool valid_class = (guarded_cid() == kDoubleCid) ||
+ (guarded_cid() == kFloat32x4Cid);
+#elif defined(TARGET_ARCH_X64)
+ bool valid_class = (guarded_cid() == kDoubleCid) ||
+ (guarded_cid() == kFloat32x4Cid);
+#elif defined(TARGET_ARCH_IA32)
+ bool valid_class = (guarded_cid() == kDoubleCid) ||
+ (guarded_cid() == kFloat32x4Cid);
+#endif
return is_unboxing_candidate() && !is_final() && !is_nullable() &&
- ((guarded_cid() == kDoubleCid));
+ valid_class;
srdjan 2014/02/05 22:20:09 How about moving Field::IsUnboxedField in an archi
Cutch 2014/02/05 23:16:02 Done.
}

Powered by Google App Engine
This is Rietveld 408576698