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.
|
} |