Chromium Code Reviews| OLD | NEW |
|---|---|
| 1 // Copyright (c) 2014, the Dart project authors. Please see the AUTHORS file | 1 // Copyright (c) 2014, 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_ARM64. | 7 #include "vm/globals.h" // Needed here to get TARGET_ARCH_ARM64. |
| 8 #if defined(TARGET_ARCH_ARM64) | 8 #if defined(TARGET_ARCH_ARM64) |
| 9 #include "platform/assert.h" | 9 #include "platform/assert.h" |
| 10 | 10 |
| (...skipping 1257 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 1268 // Double. | 1268 // Double. |
| 1269 Format(instr, "fmovd 'vd, 'immd"); | 1269 Format(instr, "fmovd 'vd, 'immd"); |
| 1270 } else { | 1270 } else { |
| 1271 // Single. | 1271 // Single. |
| 1272 Unknown(instr); | 1272 Unknown(instr); |
| 1273 } | 1273 } |
| 1274 } | 1274 } |
| 1275 | 1275 |
| 1276 | 1276 |
| 1277 void ARM64Decoder::DecodeFPIntCvt(Instr* instr) { | 1277 void ARM64Decoder::DecodeFPIntCvt(Instr* instr) { |
| 1278 if ((instr->SFField() != 1) || (instr->Bit(29) != 0) || | 1278 if ((instr->Bit(29) != 0) || (instr->Bits(22, 2) != 1)) { |
| 1279 (instr->Bits(22, 2) != 1)) { | |
| 1280 Unknown(instr); | 1279 Unknown(instr); |
| 1281 return; | 1280 return; |
| 1282 } | 1281 } |
| 1283 if (instr->Bits(16, 5) == 2) { | 1282 if (instr->Bits(16, 5) == 2) { |
| 1284 Format(instr, "scvtfd 'vd, 'vn"); | 1283 Format(instr, "scvtfd'sf 'vd, 'vn"); |
|
zra
2014/10/09 19:21:51
'vn -> 'rn
Cutch
2014/10/09 20:48:22
Done.
| |
| 1285 } else if (instr->Bits(16, 5) == 6) { | 1284 } else if (instr->Bits(16, 5) == 6) { |
| 1286 Format(instr, "fmovrd 'rd, 'vn"); | 1285 Format(instr, "fmovrd'sf 'rd, 'vn"); |
| 1287 } else if (instr->Bits(16, 5) == 7) { | 1286 } else if (instr->Bits(16, 5) == 7) { |
| 1288 Format(instr, "fmovdr 'vd, 'rn"); | 1287 Format(instr, "fmovdr'sf 'vd, 'rn"); |
| 1289 } else if (instr->Bits(16, 5) == 24) { | 1288 } else if (instr->Bits(16, 5) == 24) { |
| 1290 Format(instr, "fcvtzds 'rd, 'vn"); | 1289 Format(instr, "fcvtzds'sf 'rd, 'vn"); |
| 1291 } else { | 1290 } else { |
| 1292 Unknown(instr); | 1291 Unknown(instr); |
| 1293 } | 1292 } |
| 1294 } | 1293 } |
| 1295 | 1294 |
| 1296 | 1295 |
| 1297 void ARM64Decoder::DecodeFPOneSource(Instr* instr) { | 1296 void ARM64Decoder::DecodeFPOneSource(Instr* instr) { |
| 1298 const int opc = instr->Bits(15, 6); | 1297 const int opc = instr->Bits(15, 6); |
| 1299 | 1298 |
| 1300 if ((opc != 5) && (instr->Bit(22) != 1)) { | 1299 if ((opc != 5) && (instr->Bit(22) != 1)) { |
| (...skipping 159 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 1460 human_buffer, | 1459 human_buffer, |
| 1461 sizeof(human_buffer), | 1460 sizeof(human_buffer), |
| 1462 pc); | 1461 pc); |
| 1463 pc += instruction_length; | 1462 pc += instruction_length; |
| 1464 } | 1463 } |
| 1465 } | 1464 } |
| 1466 | 1465 |
| 1467 } // namespace dart | 1466 } // namespace dart |
| 1468 | 1467 |
| 1469 #endif // defined TARGET_ARCH_ARM | 1468 #endif // defined TARGET_ARCH_ARM |
| OLD | NEW |