| 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/disassembler.h" | 5 #include "vm/disassembler.h" |
| 6 | 6 |
| 7 #include "vm/globals.h" // Needed here to get TARGET_ARCH_ARM. | 7 #include "vm/globals.h" // Needed here to get TARGET_ARCH_ARM. |
| 8 #if defined(TARGET_ARCH_ARM) | 8 #if defined(TARGET_ARCH_ARM) |
| 9 #include "platform/assert.h" | 9 #include "platform/assert.h" |
| 10 | 10 |
| (...skipping 1194 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1205 } else { | 1205 } else { |
| 1206 Format(instr, "vmovr'cond 'rd, 'sn"); | 1206 Format(instr, "vmovr'cond 'rd, 'sn"); |
| 1207 } | 1207 } |
| 1208 } else if ((instr->Bits(20, 4) == 0xf) && (instr->Bit(8) == 0) && | 1208 } else if ((instr->Bits(20, 4) == 0xf) && (instr->Bit(8) == 0) && |
| 1209 (instr->Bits(12, 4) == 0xf)) { | 1209 (instr->Bits(12, 4) == 0xf)) { |
| 1210 Format(instr, "vmstat'cond"); | 1210 Format(instr, "vmstat'cond"); |
| 1211 } else { | 1211 } else { |
| 1212 Unknown(instr); | 1212 Unknown(instr); |
| 1213 } | 1213 } |
| 1214 } | 1214 } |
| 1215 } else if (instr->IsMrcIdIsar0()) { | |
| 1216 Format(instr, "mrc'cond p15, 0, 'rd, c0, c2, 0"); | |
| 1217 } else { | 1215 } else { |
| 1218 Unknown(instr); | 1216 Unknown(instr); |
| 1219 } | 1217 } |
| 1220 } | 1218 } |
| 1221 | 1219 |
| 1222 | 1220 |
| 1223 void ARMDecoder::InstructionDecode(uword pc) { | 1221 void ARMDecoder::InstructionDecode(uword pc) { |
| 1224 Instr* instr = Instr::At(pc); | 1222 Instr* instr = Instr::At(pc); |
| 1225 | 1223 |
| 1226 if (instr->ConditionField() == kSpecialCondition) { | 1224 if (instr->ConditionField() == kSpecialCondition) { |
| (...skipping 84 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1311 human_buffer, | 1309 human_buffer, |
| 1312 sizeof(human_buffer), | 1310 sizeof(human_buffer), |
| 1313 pc); | 1311 pc); |
| 1314 pc += instruction_length; | 1312 pc += instruction_length; |
| 1315 } | 1313 } |
| 1316 } | 1314 } |
| 1317 | 1315 |
| 1318 } // namespace dart | 1316 } // namespace dart |
| 1319 | 1317 |
| 1320 #endif // defined TARGET_ARCH_ARM | 1318 #endif // defined TARGET_ARCH_ARM |
| OLD | NEW |