// 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 #include #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) { DCHECK_LE(0, static_cast(value)); DCHECK_LE(static_cast(value), IrOpcode::Value::kLast); size_t const n = std::min(value, arraysize(kMnemonics) - 1); return kMnemonics[n]; } std::ostream& operator<<(std::ostream& os, IrOpcode::Value opcode) { return os << IrOpcode::Mnemonic(opcode); } } // namespace compiler } // namespace internal } // namespace v8