OLD | NEW |
1 // Copyright (c) 2012, the Dart project authors. Please see the AUTHORS file | 1 // Copyright (c) 2012, 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_IA32. | 7 #include "vm/globals.h" // Needed here to get TARGET_ARCH_IA32. |
8 #if defined(TARGET_ARCH_IA32) | 8 #if defined(TARGET_ARCH_IA32) |
9 #include "platform/utils.h" | 9 #include "platform/utils.h" |
10 #include "vm/allocation.h" | 10 #include "vm/allocation.h" |
(...skipping 711 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
722 case 1: mnem = "or"; break; | 722 case 1: mnem = "or"; break; |
723 case 2: mnem = "adc"; break; | 723 case 2: mnem = "adc"; break; |
724 case 3: mnem = "sbb"; break; | 724 case 3: mnem = "sbb"; break; |
725 case 4: mnem = "and"; break; | 725 case 4: mnem = "and"; break; |
726 case 5: mnem = "sub"; break; | 726 case 5: mnem = "sub"; break; |
727 case 6: mnem = "xor"; break; | 727 case 6: mnem = "xor"; break; |
728 case 7: mnem = "cmp"; break; | 728 case 7: mnem = "cmp"; break; |
729 default: UNIMPLEMENTED(); | 729 default: UNIMPLEMENTED(); |
730 } | 730 } |
731 Print(mnem); | 731 Print(mnem); |
732 if (size_override) { | |
733 Print("_w"); | |
734 } else if (sign_extension_bit) { | |
735 Print("_b"); | |
736 } | |
737 Print(" "); | 732 Print(" "); |
738 int count = PrintRightOperand(data+1); | 733 int count = PrintRightOperand(data+1); |
739 Print(","); | 734 Print(","); |
740 if (size_override) { | 735 if (size_override) { |
741 PrintHex(*reinterpret_cast<int16_t*>(data + 1 + count)); | 736 PrintHex(*reinterpret_cast<int16_t*>(data + 1 + count)); |
742 return 1 + count + 2 /*int16_t*/; | 737 return 1 + count + 2 /*int16_t*/; |
743 } else if (sign_extension_bit) { | 738 } else if (sign_extension_bit) { |
744 PrintHex(*(data + 1 + count)); | 739 PrintHex(*(data + 1 + count)); |
745 return 1 + count + 1 /*int8_t*/; | 740 return 1 + count + 1 /*int8_t*/; |
746 } else { | 741 } else { |
(...skipping 1127 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1874 } | 1869 } |
1875 hex_buffer[hex_index] = '\0'; | 1870 hex_buffer[hex_index] = '\0'; |
1876 if (out_instr_len) { | 1871 if (out_instr_len) { |
1877 *out_instr_len = instruction_length; | 1872 *out_instr_len = instruction_length; |
1878 } | 1873 } |
1879 } | 1874 } |
1880 | 1875 |
1881 } // namespace dart | 1876 } // namespace dart |
1882 | 1877 |
1883 #endif // defined TARGET_ARCH_IA32 | 1878 #endif // defined TARGET_ARCH_IA32 |
OLD | NEW |