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

Unified Diff: runtime/vm/flow_graph_allocator.cc

Issue 172653002: Unbox/Box Float64x2 and inline typed array loads and stores (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
« no previous file with comments | « runtime/vm/deopt_instructions.cc ('k') | runtime/vm/flow_graph_compiler.h » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: runtime/vm/flow_graph_allocator.cc
diff --git a/runtime/vm/flow_graph_allocator.cc b/runtime/vm/flow_graph_allocator.cc
index b59a05b8c2d1d3a5e86dc44d521dc6238de1a5cc..cce24b94c5b4ac276ab46e02509cd1d2d4054a0b 100644
--- a/runtime/vm/flow_graph_allocator.cc
+++ b/runtime/vm/flow_graph_allocator.cc
@@ -606,7 +606,8 @@ static Location::Kind RegisterKindForResult(Instruction* instr) {
if ((instr->representation() == kUnboxedDouble) ||
(instr->representation() == kUnboxedMint) ||
(instr->representation() == kUnboxedFloat32x4) ||
- (instr->representation() == kUnboxedInt32x4)) {
+ (instr->representation() == kUnboxedInt32x4) ||
+ (instr->representation() == kUnboxedFloat64x2)) {
return Location::kFpuRegister;
} else {
return Location::kRegister;
@@ -1602,7 +1603,8 @@ void FlowGraphAllocator::AllocateSpillSlotFor(LiveRange* range) {
// parallel move resolution.
const bool need_quad = (register_kind_ == Location::kFpuRegister) &&
((range->representation() == kUnboxedFloat32x4) ||
- (range->representation() == kUnboxedInt32x4));
+ (range->representation() == kUnboxedInt32x4) ||
+ (range->representation() == kUnboxedFloat64x2));
// Search for a free spill slot among allocated: the value in it should be
// dead and its type should match (e.g. it should not be a part of the quad if
@@ -1651,7 +1653,8 @@ void FlowGraphAllocator::AllocateSpillSlotFor(LiveRange* range) {
Location location;
if ((range->representation() == kUnboxedFloat32x4) ||
- (range->representation() == kUnboxedInt32x4)) {
+ (range->representation() == kUnboxedInt32x4) ||
+ (range->representation() == kUnboxedFloat64x2)) {
ASSERT(need_quad);
location = Location::QuadStackSlot(slot_idx);
} else {
« no previous file with comments | « runtime/vm/deopt_instructions.cc ('k') | runtime/vm/flow_graph_compiler.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698