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

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

Issue 194503006: Code view tweaks and crasher fix (Closed) Base URL: https://dart.googlecode.com/svn/branches/bleeding_edge/dart
Patch Set: Created 6 years, 9 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 | Annotate | Revision Log
« no previous file with comments | « runtime/bin/vmservice/client/lib/src/service/object.dart ('k') | no next file » | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
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/intermediate_language.h" 9 #include "vm/intermediate_language.h"
10 #include "vm/locations.h" 10 #include "vm/locations.h"
(...skipping 173 matching lines...) Expand 10 before | Expand all | Expand 10 after
184 184
185 185
186 static bool IsObjectInstruction(DeoptInstr::Kind kind) { 186 static bool IsObjectInstruction(DeoptInstr::Kind kind) {
187 switch (kind) { 187 switch (kind) {
188 case DeoptInstr::kConstant: 188 case DeoptInstr::kConstant:
189 case DeoptInstr::kStackSlot: 189 case DeoptInstr::kStackSlot:
190 case DeoptInstr::kDoubleStackSlot: 190 case DeoptInstr::kDoubleStackSlot:
191 case DeoptInstr::kInt64StackSlot: 191 case DeoptInstr::kInt64StackSlot:
192 case DeoptInstr::kFloat32x4StackSlot: 192 case DeoptInstr::kFloat32x4StackSlot:
193 case DeoptInstr::kInt32x4StackSlot: 193 case DeoptInstr::kInt32x4StackSlot:
194 case DeoptInstr::kFloat64x2StackSlot:
194 case DeoptInstr::kPp: 195 case DeoptInstr::kPp:
195 case DeoptInstr::kCallerPp: 196 case DeoptInstr::kCallerPp:
196 case DeoptInstr::kMaterializedObjectRef: 197 case DeoptInstr::kMaterializedObjectRef:
197 return true; 198 return true;
198 199
199 case DeoptInstr::kRegister: 200 case DeoptInstr::kRegister:
200 case DeoptInstr::kFpuRegister: 201 case DeoptInstr::kFpuRegister:
201 case DeoptInstr::kInt64FpuRegister: 202 case DeoptInstr::kInt64FpuRegister:
202 case DeoptInstr::kFloat32x4FpuRegister: 203 case DeoptInstr::kFloat32x4FpuRegister:
203 case DeoptInstr::kInt32x4FpuRegister: 204 case DeoptInstr::kInt32x4FpuRegister:
205 case DeoptInstr::kFloat64x2FpuRegister:
204 // TODO(turnidge): Sometimes we encounter a deopt instruction 206 // TODO(turnidge): Sometimes we encounter a deopt instruction
205 // with a register source while deoptimizing frames during 207 // with a register source while deoptimizing frames during
206 // debugging but we haven't saved our register set. This 208 // debugging but we haven't saved our register set. This
207 // happens specifically when using the VMService to inspect the 209 // happens specifically when using the VMService to inspect the
208 // stack. In that case, the register values will have been 210 // stack. In that case, the register values will have been
209 // saved before the StackOverflow runtime call but we do not 211 // saved before the StackOverflow runtime call but we do not
210 // actually keep track of which registers were saved and 212 // actually keep track of which registers were saved and
211 // restored. 213 // restored.
212 // 214 //
213 // It is possible to save this information at the point of the 215 // It is possible to save this information at the point of the
(...skipping 1263 matching lines...) Expand 10 before | Expand all | Expand 10 after
1477 Smi* offset, 1479 Smi* offset,
1478 DeoptInfo* info, 1480 DeoptInfo* info,
1479 Smi* reason) { 1481 Smi* reason) {
1480 intptr_t i = index * kEntrySize; 1482 intptr_t i = index * kEntrySize;
1481 *offset ^= table.At(i); 1483 *offset ^= table.At(i);
1482 *info ^= table.At(i + 1); 1484 *info ^= table.At(i + 1);
1483 *reason ^= table.At(i + 2); 1485 *reason ^= table.At(i + 2);
1484 } 1486 }
1485 1487
1486 } // namespace dart 1488 } // namespace dart
OLDNEW
« no previous file with comments | « runtime/bin/vmservice/client/lib/src/service/object.dart ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698