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

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

Issue 2937933002: Reduce copying, redundancy & repetition for codegen of comparison instructions (Closed)
Patch Set: Feedback from Slava Created 3 years, 6 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
« no previous file with comments | « runtime/vm/disassembler_arm.cc ('k') | runtime/vm/intermediate_language.h » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
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
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[kMaxCondition] = { 128 static const char* cond_names[kNumberOfConditions] = {
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
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
OLDNEW
« no previous file with comments | « runtime/vm/disassembler_arm.cc ('k') | runtime/vm/intermediate_language.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698