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

Side by Side Diff: runtime/vm/deopt_instructions.cc

Issue 2120703002: DBC: Enables unboxed doubles (Closed) Base URL: git@github.com:dart-lang/sdk.git@master
Patch Set: Comparison ops Created 4 years, 5 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 unified diff | Download patch
OLDNEW
1 // Copyright (c) 2013, the Dart project authors. Please see the AUTHORS file 1 // Copyright (c) 2013, the Dart project authors. Please see the AUTHORS file
2 // for details. All rights reserved. Use of this source code is governed by a 2 // for details. All rights reserved. Use of this source code is governed by a
3 // BSD-style license that can be found in the LICENSE file. 3 // BSD-style license that can be found in the LICENSE file.
4 4
5 #include "vm/deopt_instructions.h" 5 #include "vm/deopt_instructions.h"
6 6
7 #include "vm/assembler.h" 7 #include "vm/assembler.h"
8 #include "vm/code_patcher.h" 8 #include "vm/code_patcher.h"
9 #include "vm/compiler.h" 9 #include "vm/compiler.h"
10 #include "vm/intermediate_language.h" 10 #include "vm/intermediate_language.h"
(...skipping 1104 matching lines...) Expand 10 before | Expand all | Expand 10 after
1115 } 1115 }
1116 case kUnboxedInt32: 1116 case kUnboxedInt32:
1117 deopt_instr = new(zone()) DeoptInt32Instr( 1117 deopt_instr = new(zone()) DeoptInt32Instr(
1118 ToCpuRegisterSource(source_loc)); 1118 ToCpuRegisterSource(source_loc));
1119 break; 1119 break;
1120 case kUnboxedUint32: 1120 case kUnboxedUint32:
1121 deopt_instr = new(zone()) DeoptUint32Instr( 1121 deopt_instr = new(zone()) DeoptUint32Instr(
1122 ToCpuRegisterSource(source_loc)); 1122 ToCpuRegisterSource(source_loc));
1123 break; 1123 break;
1124 case kUnboxedDouble: 1124 case kUnboxedDouble:
1125 #if !defined(TARGET_ARCH_DBC)
1125 deopt_instr = new(zone()) DeoptDoubleInstr( 1126 deopt_instr = new(zone()) DeoptDoubleInstr(
1126 ToFpuRegisterSource(source_loc, Location::kDoubleStackSlot)); 1127 ToFpuRegisterSource(source_loc, Location::kDoubleStackSlot));
1128 #else
1129 // DBC stores unboxed doubles in regular registers (i.e. stack slots).
1130 deopt_instr = new(zone()) DeoptWordInstr(
Vyacheslav Egorov (Google) 2016/07/14 16:26:24 This seems incorrect. DeoptDoubleInstr takes care
zra 2016/07/14 21:12:10 Done.
1131 ToCpuRegisterSource(source_loc));
1132 #endif
1127 break; 1133 break;
1128 case kUnboxedFloat32x4: 1134 case kUnboxedFloat32x4:
1129 deopt_instr = new(zone()) DeoptFloat32x4Instr( 1135 deopt_instr = new(zone()) DeoptFloat32x4Instr(
1130 ToFpuRegisterSource(source_loc, Location::kQuadStackSlot)); 1136 ToFpuRegisterSource(source_loc, Location::kQuadStackSlot));
1131 break; 1137 break;
1132 case kUnboxedFloat64x2: 1138 case kUnboxedFloat64x2:
1133 deopt_instr = new(zone()) DeoptFloat64x2Instr( 1139 deopt_instr = new(zone()) DeoptFloat64x2Instr(
1134 ToFpuRegisterSource(source_loc, Location::kQuadStackSlot)); 1140 ToFpuRegisterSource(source_loc, Location::kQuadStackSlot));
1135 break; 1141 break;
1136 case kUnboxedInt32x4: 1142 case kUnboxedInt32x4:
(...skipping 203 matching lines...) Expand 10 before | Expand all | Expand 10 after
1340 Smi* offset, 1346 Smi* offset,
1341 TypedData* info, 1347 TypedData* info,
1342 Smi* reason) { 1348 Smi* reason) {
1343 intptr_t i = index * kEntrySize; 1349 intptr_t i = index * kEntrySize;
1344 *offset ^= table.At(i); 1350 *offset ^= table.At(i);
1345 *info ^= table.At(i + 1); 1351 *info ^= table.At(i + 1);
1346 *reason ^= table.At(i + 2); 1352 *reason ^= table.At(i + 2);
1347 } 1353 }
1348 1354
1349 } // namespace dart 1355 } // namespace dart
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698