1 // Copyright 2014 the V8 project authors. All rights reserved. 2 // Use of this source code is governed by a BSD-style license that can be 3 // found in the LICENSE file. 4 5 #include "src/compiler/opcodes.h" 6 7 #include <algorithm> 8 #include <ostream> 9 10 #include "src/base/macros.h" 11 12 namespace v8 { 13 namespace internal { 14 namespace compiler { 15 16 namespace { 17 18 char const* const kMnemonics[] = { 19 #define DECLARE_MNEMONIC(x) #x, 20 ALL_OP_LIST(DECLARE_MNEMONIC) 21 #undef DECLARE_MNEMONIC 22 "UnknownOpcode"}; 23 24 } // namespace 25 26 27 // static Mnemonic(Value value)28char const* IrOpcode::Mnemonic(Value value) { 29 size_t const n = std::min<size_t>(value, arraysize(kMnemonics) - 1); 30 return kMnemonics[n]; 31 } 32 33 operator <<(std::ostream & os,IrOpcode::Value opcode)34std::ostream& operator<<(std::ostream& os, IrOpcode::Value opcode) { 35 return os << IrOpcode::Mnemonic(opcode); 36 } 37 38 } // namespace compiler 39 } // namespace internal 40 } // namespace v8 41