Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(701)

Side by Side Diff: runtime/vm/disassembler_arm.cc

Issue 606893002: Avoids vmovsr on ARM. (Closed) Base URL: http://dart.googlecode.com/svn/branches/bleeding_edge/dart/
Patch Set: Created 6 years, 2 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
OLDNEW
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 9
10 #include "platform/assert.h" 10 #include "platform/assert.h"
(...skipping 1290 matching lines...) Expand 10 before | Expand all | Expand 10 after
1301 break; 1301 break;
1302 } 1302 }
1303 } else { 1303 } else {
1304 // 8, 16, or 32-bit Transfer between ARM Core and VFP 1304 // 8, 16, or 32-bit Transfer between ARM Core and VFP
1305 if ((instr->Bits(21, 3) == 0) && (instr->Bit(8) == 0)) { 1305 if ((instr->Bits(21, 3) == 0) && (instr->Bit(8) == 0)) {
1306 if (instr->Bit(20) == 0) { 1306 if (instr->Bit(20) == 0) {
1307 Format(instr, "vmovs'cond 'sn, 'rd"); 1307 Format(instr, "vmovs'cond 'sn, 'rd");
1308 } else { 1308 } else {
1309 Format(instr, "vmovr'cond 'rd, 'sn"); 1309 Format(instr, "vmovr'cond 'rd, 'sn");
1310 } 1310 }
1311 } else if ((instr->Bits(22, 3) == 0) && (instr->Bit(20) == 0) &&
1312 (instr->Bit(8) == 1) && (instr->Bits(5, 2) == 0)) {
1313 if (instr->Bit(21) == 0) {
1314 Format(instr, "vmovd'cond 'dn[0], 'rd");
1315 } else {
1316 Format(instr, "vmovd'cond 'dn[1], 'rd");
1317 }
1311 } else if ((instr->Bits(20, 4) == 0xf) && (instr->Bit(8) == 0) && 1318 } else if ((instr->Bits(20, 4) == 0xf) && (instr->Bit(8) == 0) &&
1312 (instr->Bits(12, 4) == 0xf)) { 1319 (instr->Bits(12, 4) == 0xf)) {
1313 Format(instr, "vmstat'cond"); 1320 Format(instr, "vmstat'cond");
1314 } else { 1321 } else {
1315 Unknown(instr); 1322 Unknown(instr);
1316 } 1323 }
1317 } 1324 }
1318 } else { 1325 } else {
1319 Unknown(instr); 1326 Unknown(instr);
1320 } 1327 }
(...skipping 225 matching lines...) Expand 10 before | Expand all | Expand 10 after
1546 human_buffer, 1553 human_buffer,
1547 sizeof(human_buffer), 1554 sizeof(human_buffer),
1548 pc); 1555 pc);
1549 pc += instruction_length; 1556 pc += instruction_length;
1550 } 1557 }
1551 } 1558 }
1552 1559
1553 } // namespace dart 1560 } // namespace dart
1554 1561
1555 #endif // defined TARGET_ARCH_ARM 1562 #endif // defined TARGET_ARCH_ARM
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698