| 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/compiler.h" | 9 #include "vm/compiler.h" |
| 10 #include "vm/disassembler.h" | 10 #include "vm/disassembler.h" |
| (...skipping 1077 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1088 Representation rep = | 1088 Representation rep = |
| 1089 (value == NULL) ? kTagged : value->definition()->representation(); | 1089 (value == NULL) ? kTagged : value->definition()->representation(); |
| 1090 #else | 1090 #else |
| 1091 Representation rep = value->definition()->representation(); | 1091 Representation rep = value->definition()->representation(); |
| 1092 #endif | 1092 #endif |
| 1093 switch (rep) { | 1093 switch (rep) { |
| 1094 case kTagged: | 1094 case kTagged: |
| 1095 deopt_instr = | 1095 deopt_instr = |
| 1096 new (zone()) DeoptWordInstr(ToCpuRegisterSource(source_loc)); | 1096 new (zone()) DeoptWordInstr(ToCpuRegisterSource(source_loc)); |
| 1097 break; | 1097 break; |
| 1098 case kUnboxedMint: { | 1098 case kUnboxedInt64: { |
| 1099 if (source_loc.IsPairLocation()) { | 1099 if (source_loc.IsPairLocation()) { |
| 1100 PairLocation* pair = source_loc.AsPairLocation(); | 1100 PairLocation* pair = source_loc.AsPairLocation(); |
| 1101 deopt_instr = | 1101 deopt_instr = |
| 1102 new (zone()) DeoptMintPairInstr(ToCpuRegisterSource(pair->At(0)), | 1102 new (zone()) DeoptMintPairInstr(ToCpuRegisterSource(pair->At(0)), |
| 1103 ToCpuRegisterSource(pair->At(1))); | 1103 ToCpuRegisterSource(pair->At(1))); |
| 1104 } else { | 1104 } else { |
| 1105 ASSERT(!source_loc.IsPairLocation()); | 1105 ASSERT(!source_loc.IsPairLocation()); |
| 1106 deopt_instr = | 1106 deopt_instr = |
| 1107 new (zone()) DeoptMintInstr(ToCpuRegisterSource(source_loc)); | 1107 new (zone()) DeoptMintInstr(ToCpuRegisterSource(source_loc)); |
| 1108 } | 1108 } |
| (...skipping 315 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1424 GrowableArray<DeoptInstr*> unpacked; | 1424 GrowableArray<DeoptInstr*> unpacked; |
| 1425 Unpack(deopt_table, packed, &unpacked); | 1425 Unpack(deopt_table, packed, &unpacked); |
| 1426 ASSERT(unpacked.length() == original.length()); | 1426 ASSERT(unpacked.length() == original.length()); |
| 1427 for (intptr_t i = 0; i < unpacked.length(); ++i) { | 1427 for (intptr_t i = 0; i < unpacked.length(); ++i) { |
| 1428 ASSERT(unpacked[i]->Equals(*original[i])); | 1428 ASSERT(unpacked[i]->Equals(*original[i])); |
| 1429 } | 1429 } |
| 1430 return true; | 1430 return true; |
| 1431 } | 1431 } |
| 1432 | 1432 |
| 1433 } // namespace dart | 1433 } // namespace dart |
| OLD | NEW |