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 1183 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 1194 // Double. | 1194 // Double. |
| 1195 Format(instr, "fmovd 'vd, 'immd"); | 1195 Format(instr, "fmovd 'vd, 'immd"); |
| 1196 } else { | 1196 } else { |
| 1197 // Single. | 1197 // Single. |
| 1198 Unknown(instr); | 1198 Unknown(instr); |
| 1199 } | 1199 } |
| 1200 } | 1200 } |
| 1201 | 1201 |
| 1202 | 1202 |
| 1203 void ARM64Decoder::DecodeFPIntCvt(Instr* instr) { | 1203 void ARM64Decoder::DecodeFPIntCvt(Instr* instr) { |
| 1204 if ((instr->SFField() != 1) || (instr->Bit(29) != 0) || | 1204 if ((instr->Bit(29) != 0) || (instr->Bits(22, 2) != 1)) { |
| 1205 (instr->Bits(22, 2) != 1)) { | |
| 1206 Unknown(instr); | 1205 Unknown(instr); |
| 1207 return; | 1206 return; |
| 1208 } | 1207 } |
| 1208 if (instr->SFField() == 0) { | |
|
zra
2014/10/09 18:00:30
Remove this if() {} and just use the format string
Cutch
2014/10/09 18:49:11
Done.
| |
| 1209 if (instr->Bits(16, 5) == 2) { | |
| 1210 Format(instr, "scvtfd 'vd, 'vn"); | |
| 1211 } else { | |
| 1212 Unknown(instr); | |
| 1213 } | |
| 1214 return; | |
| 1215 } | |
| 1209 if (instr->Bits(16, 5) == 2) { | 1216 if (instr->Bits(16, 5) == 2) { |
| 1210 Format(instr, "scvtfd 'vd, 'vn"); | 1217 Format(instr, "scvtfd 'vd, 'vn"); |
|
zra
2014/10/09 18:00:30
"scvtfd'sf 'vd, 'rn"
Cutch
2014/10/09 18:49:11
Done.
| |
| 1211 } else if (instr->Bits(16, 5) == 6) { | 1218 } else if (instr->Bits(16, 5) == 6) { |
| 1212 Format(instr, "fmovrd 'rd, 'vn"); | 1219 Format(instr, "fmovrd 'rd, 'vn"); |
| 1213 } else if (instr->Bits(16, 5) == 7) { | 1220 } else if (instr->Bits(16, 5) == 7) { |
| 1214 Format(instr, "fmovdr 'vd, 'rn"); | 1221 Format(instr, "fmovdr 'vd, 'rn"); |
| 1215 } else if (instr->Bits(16, 5) == 24) { | 1222 } else if (instr->Bits(16, 5) == 24) { |
| 1216 Format(instr, "fcvtzds 'rd, 'vn"); | 1223 Format(instr, "fcvtzds 'rd, 'vn"); |
| 1217 } else { | 1224 } else { |
| 1218 Unknown(instr); | 1225 Unknown(instr); |
| 1219 } | 1226 } |
| 1220 } | 1227 } |
| (...skipping 165 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 1386 human_buffer, | 1393 human_buffer, |
| 1387 sizeof(human_buffer), | 1394 sizeof(human_buffer), |
| 1388 pc); | 1395 pc); |
| 1389 pc += instruction_length; | 1396 pc += instruction_length; |
| 1390 } | 1397 } |
| 1391 } | 1398 } |
| 1392 | 1399 |
| 1393 } // namespace dart | 1400 } // namespace dart |
| 1394 | 1401 |
| 1395 #endif // defined TARGET_ARCH_ARM | 1402 #endif // defined TARGET_ARCH_ARM |
| OLD | NEW |