5 #ifndef V8_COMPILER_OPERATOR_H_
6 #define V8_COMPILER_OPERATOR_H_
111 int output_count,
const char*
mnemonic);
115 return opcode() == that->opcode();
134 template <
typename T>
152 static bool Equals(
int a,
int b) {
return a == b; }
162 return static_cast<int>(bit_cast<int64_t>(a));
165 return bit_cast<int64_t>(a) == bit_cast<int64_t>(b);
176 return static_cast<int>(a.
Hashcode());
204 static bool Equals(Handle<Object> a, Handle<Object> b) {
214 template <
typename T>
227 if (
opcode() != other->opcode())
return false;
253 template <
typename T>
255 return reinterpret_cast<const Operator1<T>*
>(op)->parameter();
#define DEFINE_OPERATORS_FOR_FLAGS(Type)
An object reference managed by the v8 garbage collector.
intptr_t Hashcode() const
Handle< T > handle() const
const T & parameter() const
virtual int HashCode() const OVERRIDE
virtual OStream & PrintParameter(OStream &os) const
virtual bool Equals(const Operator *other) const OVERRIDE
virtual int OutputCount() const OVERRIDE
virtual OStream & PrintTo(OStream &os) const FINAL
virtual int InputCount() const OVERRIDE
Operator1(Opcode opcode, Properties properties, int input_count, int output_count, const char *mnemonic, T parameter)
virtual bool Equals(const Operator *other) const =0
friend OStream & operator<<(OStream &os, const Operator &op)
Properties properties() const
virtual int OutputCount() const =0
base::Flags< Property, uint8_t > Properties
DISALLOW_COPY_AND_ASSIGN(Operator)
virtual int HashCode() const =0
const char * mnemonic() const
bool HasProperty(Property property) const
Operator(Opcode opcode, Properties properties, const char *mnemonic)
virtual int InputCount() const =0
virtual OStream & PrintTo(OStream &os) const =0
virtual int OutputCount() const FINAL
virtual OStream & PrintTo(OStream &os) const FINAL
virtual bool Equals(const Operator *that) const FINAL
SimpleOperator(Opcode opcode, Properties properties, int input_count, int output_count, const char *mnemonic)
virtual int HashCode() const FINAL
DISALLOW_COPY_AND_ASSIGN(SimpleOperator)
virtual int InputCount() const FINAL
std::ostream & operator<<(std::ostream &os, const MachineType &type)
static const T & OpParameter(const Node *node)
Debugger support for the V8 JavaScript engine.
static int HashCode(Unique< Name > a)
static OStream & PrintTo(OStream &os, Unique< Name > val)
static bool Equals(Unique< Name > a, Unique< Name > b)
static int HashCode(Unique< Object > a)
static OStream & PrintTo(OStream &os, Unique< Object > val)
static bool Equals(Unique< Object > a, Unique< Object > b)
static bool Equals(double a, double b)
static OStream & PrintTo(OStream &os, double val)
static int HashCode(double a)
static bool Equals(int a, int b)
static int HashCode(int a)
static OStream & PrintTo(OStream &os, int val)
static bool Equals(T a, T b)
static OStream & PrintTo(OStream &os, T val)
#define T(name, string, precedence)