| 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 #include "vm/instructions.h" |    10 #include "vm/instructions.h" | 
| (...skipping 1301 matching lines...) Expand 10 before | Expand all | Expand 10 after  Loading... | 
|  1312     // Double. |  1312     // Double. | 
|  1313     Format(instr, "fmovd 'vd, 'immd"); |  1313     Format(instr, "fmovd 'vd, 'immd"); | 
|  1314   } else { |  1314   } else { | 
|  1315     // Single. |  1315     // Single. | 
|  1316     Unknown(instr); |  1316     Unknown(instr); | 
|  1317   } |  1317   } | 
|  1318 } |  1318 } | 
|  1319  |  1319  | 
|  1320  |  1320  | 
|  1321 void ARM64Decoder::DecodeFPIntCvt(Instr* instr) { |  1321 void ARM64Decoder::DecodeFPIntCvt(Instr* instr) { | 
|  1322   if ((instr->Bit(29) != 0) || (instr->Bits(22, 2) != 1)) { |  1322   if ((instr->Bit(29) != 0)) { | 
|  1323     Unknown(instr); |  1323     Unknown(instr); | 
|  1324     return; |  1324     return; | 
|  1325   } |  1325   } | 
|  1326   if (instr->Bits(16, 5) == 2) { |  1326  | 
|  1327     Format(instr, "scvtfd'sf 'vd, 'rn"); |  1327   if ((instr->SFField() == 0) && (instr->Bits(22, 2) == 0)) { | 
|  1328   } else if (instr->Bits(16, 5) == 6) { |  1328     if (instr->Bits(16, 5) == 6) { | 
|  1329     Format(instr, "fmovrd'sf 'rd, 'vn"); |  1329       Format(instr, "fmovrs'sf 'rd, 'vn"); | 
|  1330   } else if (instr->Bits(16, 5) == 7) { |  1330     } else if (instr->Bits(16, 5) == 7) { | 
|  1331     Format(instr, "fmovdr'sf 'vd, 'rn"); |  1331       Format(instr, "fmovsr'sf 'vd, 'rn"); | 
|  1332   } else if (instr->Bits(16, 5) == 24) { |  1332     } else { | 
|  1333     Format(instr, "fcvtzds'sf 'rd, 'vn"); |  1333       Unknown(instr); | 
 |  1334     } | 
 |  1335   } else if (instr->Bits(22, 2) == 1) { | 
 |  1336     if (instr->Bits(16, 5) == 2) { | 
 |  1337       Format(instr, "scvtfd'sf 'vd, 'rn"); | 
 |  1338     } else if (instr->Bits(16, 5) == 6) { | 
 |  1339       Format(instr, "fmovrd'sf 'rd, 'vn"); | 
 |  1340     } else if (instr->Bits(16, 5) == 7) { | 
 |  1341       Format(instr, "fmovdr'sf 'vd, 'rn"); | 
 |  1342     } else if (instr->Bits(16, 5) == 24) { | 
 |  1343       Format(instr, "fcvtzds'sf 'rd, 'vn"); | 
 |  1344     } else { | 
 |  1345       Unknown(instr); | 
 |  1346     } | 
|  1334   } else { |  1347   } else { | 
|  1335     Unknown(instr); |  1348     Unknown(instr); | 
|  1336   } |  1349   } | 
|  1337 } |  1350 } | 
|  1338  |  1351  | 
|  1339  |  1352  | 
|  1340 void ARM64Decoder::DecodeFPOneSource(Instr* instr) { |  1353 void ARM64Decoder::DecodeFPOneSource(Instr* instr) { | 
|  1341   const int opc = instr->Bits(15, 6); |  1354   const int opc = instr->Bits(15, 6); | 
|  1342  |  1355  | 
|  1343   if ((opc != 5) && (instr->Bit(22) != 1)) { |  1356   if ((opc != 5) && (instr->Bit(22) != 1)) { | 
| (...skipping 141 matching lines...) Expand 10 before | Expand all | Expand 10 after  Loading... | 
|  1485       *object = NULL; |  1498       *object = NULL; | 
|  1486     } |  1499     } | 
|  1487   } |  1500   } | 
|  1488 } |  1501 } | 
|  1489  |  1502  | 
|  1490 #endif  // !PRODUCT |  1503 #endif  // !PRODUCT | 
|  1491  |  1504  | 
|  1492 }  // namespace dart |  1505 }  // namespace dart | 
|  1493  |  1506  | 
|  1494 #endif  // defined TARGET_ARCH_ARM |  1507 #endif  // defined TARGET_ARCH_ARM | 
| OLD | NEW |