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 107 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
118 static const char* shift_names[kMaxShift] = {"lsl", "lsr", "asr", "ror"}; | 118 static const char* shift_names[kMaxShift] = {"lsl", "lsr", "asr", "ror"}; |
119 | 119 |
120 | 120 |
121 static const char* extend_names[kMaxExtend] = { | 121 static const char* extend_names[kMaxExtend] = { |
122 "uxtb", "uxth", "uxtw", "uxtx", "sxtb", "sxth", "sxtw", "sxtx", | 122 "uxtb", "uxth", "uxtw", "uxtx", "sxtb", "sxth", "sxtw", "sxtx", |
123 }; | 123 }; |
124 | 124 |
125 | 125 |
126 // These condition names are defined in a way to match the native disassembler | 126 // These condition names are defined in a way to match the native disassembler |
127 // formatting. See for example the command "objdump -d <binary file>". | 127 // formatting. See for example the command "objdump -d <binary file>". |
128 static const char* cond_names[kNumberOfConditions] = { | 128 static const char* cond_names[kMaxCondition] = { |
129 "eq", "ne", "cs", "cc", "mi", "pl", "vs", "vc", | 129 "eq", "ne", "cs", "cc", "mi", "pl", "vs", "vc", |
130 "hi", "ls", "ge", "lt", "gt", "le", "", "invalid", | 130 "hi", "ls", "ge", "lt", "gt", "le", "", "invalid", |
131 }; | 131 }; |
132 | 132 |
133 | 133 |
134 // Print the condition guarding the instruction. | 134 // Print the condition guarding the instruction. |
135 void ARM64Decoder::PrintCondition(Instr* instr) { | 135 void ARM64Decoder::PrintCondition(Instr* instr) { |
136 if (instr->IsConditionalSelectOp()) { | 136 if (instr->IsConditionalSelectOp()) { |
137 Print(cond_names[instr->SelectConditionField()]); | 137 Print(cond_names[instr->SelectConditionField()]); |
138 } else { | 138 } else { |
(...skipping 1346 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1485 *object = NULL; | 1485 *object = NULL; |
1486 } | 1486 } |
1487 } | 1487 } |
1488 } | 1488 } |
1489 | 1489 |
1490 #endif // !PRODUCT | 1490 #endif // !PRODUCT |
1491 | 1491 |
1492 } // namespace dart | 1492 } // namespace dart |
1493 | 1493 |
1494 #endif // defined TARGET_ARCH_ARM | 1494 #endif // defined TARGET_ARCH_ARM |
OLD | NEW |