"src/compiler/node-properties.h",
"src/compiler/node.cc",
"src/compiler/node.h",
+ "src/compiler/opcodes.cc",
"src/compiler/opcodes.h",
"src/compiler/operator-properties.cc",
"src/compiler/operator-properties.h",
--- /dev/null
+// Copyright 2014 the V8 project authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+#include "src/compiler/opcodes.h"
+
+#include <algorithm>
+
+#include "src/base/macros.h"
+
+namespace v8 {
+namespace internal {
+namespace compiler {
+
+namespace {
+
+char const* const kMnemonics[] = {
+#define DECLARE_MNEMONIC(x) #x,
+ ALL_OP_LIST(DECLARE_MNEMONIC)
+#undef DECLARE_MNEMONIC
+ "UnknownOpcode"};
+
+} // namespace
+
+
+// static
+char const* IrOpcode::Mnemonic(Value value) {
+ size_t const n = std::max<size_t>(value, arraysize(kMnemonics) - 1);
+ return kMnemonics[n];
+}
+
+} // namespace compiler
+} // namespace internal
+} // namespace v8
};
// Returns the mnemonic name of an opcode.
- static const char* Mnemonic(Value val) {
- // TODO(turbofan): make this a table lookup.
- switch (val) {
-#define RETURN_NAME(x) \
- case k##x: \
- return #x;
- ALL_OP_LIST(RETURN_NAME)
-#undef RETURN_NAME
- default:
- return "UnknownOpcode";
- }
- }
+ static char const* Mnemonic(Value value);
static bool IsJsOpcode(Value val) {
switch (val) {
'../../src/compiler/node-properties.h',
'../../src/compiler/node.cc',
'../../src/compiler/node.h',
+ '../../src/compiler/opcodes.cc',
'../../src/compiler/opcodes.h',
'../../src/compiler/operator-properties.cc',
'../../src/compiler/operator-properties.h',