| OLD | NEW |
| 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 209 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 220 return false; | 220 return false; |
| 221 | 221 |
| 222 case DeoptInstr::kRetAddress: | 222 case DeoptInstr::kRetAddress: |
| 223 case DeoptInstr::kPcMarker: | 223 case DeoptInstr::kPcMarker: |
| 224 case DeoptInstr::kCallerFp: | 224 case DeoptInstr::kCallerFp: |
| 225 case DeoptInstr::kCallerPc: | 225 case DeoptInstr::kCallerPc: |
| 226 return false; | 226 return false; |
| 227 | 227 |
| 228 case DeoptInstr::kSuffix: | 228 case DeoptInstr::kSuffix: |
| 229 case DeoptInstr::kMaterializeObject: | 229 case DeoptInstr::kMaterializeObject: |
| 230 default: |
| 230 // We should not encounter these instructions when filling stack slots. | 231 // We should not encounter these instructions when filling stack slots. |
| 231 UNIMPLEMENTED(); | 232 UNREACHABLE(); |
| 232 return false; | 233 return false; |
| 233 } | 234 } |
| 235 UNREACHABLE(); |
| 236 return false; |
| 234 } | 237 } |
| 235 | 238 |
| 236 | 239 |
| 237 void DeoptContext::FillDestFrame() { | 240 void DeoptContext::FillDestFrame() { |
| 238 const Code& code = Code::Handle(code_); | 241 const Code& code = Code::Handle(code_); |
| 239 const DeoptInfo& deopt_info = DeoptInfo::Handle(deopt_info_); | 242 const DeoptInfo& deopt_info = DeoptInfo::Handle(deopt_info_); |
| 240 | 243 |
| 241 const intptr_t len = deopt_info.TranslationLength(); | 244 const intptr_t len = deopt_info.TranslationLength(); |
| 242 GrowableArray<DeoptInstr*> deopt_instructions(len); | 245 GrowableArray<DeoptInstr*> deopt_instructions(len); |
| 243 const Array& deopt_table = Array::Handle(code.deopt_info_array()); | 246 const Array& deopt_table = Array::Handle(code.deopt_info_array()); |
| (...skipping 1159 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1403 Smi* offset, | 1406 Smi* offset, |
| 1404 DeoptInfo* info, | 1407 DeoptInfo* info, |
| 1405 Smi* reason) { | 1408 Smi* reason) { |
| 1406 intptr_t i = index * kEntrySize; | 1409 intptr_t i = index * kEntrySize; |
| 1407 *offset ^= table.At(i); | 1410 *offset ^= table.At(i); |
| 1408 *info ^= table.At(i + 1); | 1411 *info ^= table.At(i + 1); |
| 1409 *reason ^= table.At(i + 2); | 1412 *reason ^= table.At(i + 2); |
| 1410 } | 1413 } |
| 1411 | 1414 |
| 1412 } // namespace dart | 1415 } // namespace dart |
| OLD | NEW |