Index: runtime/vm/object.cc |
diff --git a/runtime/vm/object.cc b/runtime/vm/object.cc |
index 22a93dc6dd1d65c597bd5ae1eb9cebfe5caf4f6f..79bb838d407e9600c607f6db9a39ca7fe6ac7321 100644 |
--- a/runtime/vm/object.cc |
+++ b/runtime/vm/object.cc |
@@ -26,6 +26,7 @@ |
#include "vm/double_conversion.h" |
#include "vm/exceptions.h" |
#include "vm/flow_graph_builder.h" |
+#include "vm/flow_graph_compiler.h" |
#include "vm/growable_array.h" |
#include "vm/heap.h" |
#include "vm/intermediate_language.h" |
@@ -6450,9 +6451,11 @@ void Field::set_guarded_list_length(intptr_t list_length) const { |
bool Field::IsUnboxedField() const { |
- // TODO(johnmccutchan): Add kFloat32x4Cid here. |
+ bool valid_class = (guarded_cid() == kDoubleCid) || |
+ (FlowGraphCompiler::SupportsUnboxedFloat32x4() && |
+ (guarded_cid() == kFloat32x4Cid)); |
return is_unboxing_candidate() && !is_final() && !is_nullable() && |
- ((guarded_cid() == kDoubleCid)); |
+ valid_class; |
} |