V8 Project
machine-operator.cc File Reference
+ Include dependency graph for machine-operator.cc:

Go to the source code of this file.

Classes

struct  v8::internal::compiler::StaticParameterTraits< StoreRepresentation >
 
struct  v8::internal::compiler::StaticParameterTraits< LoadRepresentation >
 
struct  v8::internal::compiler::MachineOperatorBuilderImpl
 

Namespaces

 v8
 Debugger support for the V8 JavaScript engine.
 
 v8::internal
 
 v8::internal::compiler
 

Macros

#define PURE_OP_LIST(V)
 
#define MACHINE_TYPE_LIST(V)
 
#define PURE(Name, properties, input_count, output_count)
 
#define LOAD(Type)
 
#define STORE(Type)
 
#define PURE(Name, properties, input_count, output_count)    const Operator* MachineOperatorBuilder::Name() { return &impl_.k##Name; }
 
#define LOAD(Type)
 
#define STORE(Type)
 

Functions

OStream & v8::internal::compiler::operator<< (OStream &os, const WriteBarrierKind &write_barrier_kind)
 
OStream & v8::internal::compiler::operator<< (OStream &os, const StoreRepresentation &rep)
 

Variables

static base::LazyInstance< MachineOperatorBuilderImpl >::type v8::internal::compiler::kImpl
 

Macro Definition Documentation

◆ LOAD [1/2]

#define LOAD (   Type)
Value:
struct Load##Type##Operator FINAL : public Operator1<LoadRepresentation> { \
Load##Type##Operator() \
: Operator1<LoadRepresentation>( \
IrOpcode::kLoad, Operator::kNoThrow | Operator::kNoWrite, 2, 1, \
"Load", k##Type) {} \
}; \
Load##Type##Operator k##Load##Type;
#define FINAL
TypeImpl< ZoneTypeConfig > Type

Definition at line 154 of file machine-operator.cc.

◆ LOAD [2/2]

#define LOAD (   Type)
Value:
case k##Type: \
return &impl_.k##Load##Type;

Definition at line 154 of file machine-operator.cc.

◆ MACHINE_TYPE_LIST

#define MACHINE_TYPE_LIST (   V)
Value:
V(MachFloat32) \
V(MachFloat64) \
V(MachInt8) \
V(MachUint8) \
V(MachInt16) \
V(MachUint16) \
V(MachInt32) \
V(MachUint32) \
V(MachInt64) \
V(MachUint64) \
V(MachAnyTagged) \
V(RepBit) \
V(RepWord8) \
V(RepWord16) \
V(RepWord32) \
V(RepWord64) \
V(RepFloat32) \
V(RepFloat64) \
V(RepTagged)
#define V(NAME, Name, id)
Definition: execution.h:170

Definition at line 121 of file machine-operator.cc.

◆ PURE [1/2]

#define PURE (   Name,
  properties,
  input_count,
  output_count 
)
Value:
struct Name##Operator FINAL : public SimpleOperator { \
Name##Operator() \
: SimpleOperator(IrOpcode::k##Name, Operator::kPure | properties, \
input_count, output_count, #Name) {} \
}; \
Name##Operator k##Name;

Definition at line 199 of file machine-operator.cc.

◆ PURE [2/2]

#define PURE (   Name,
  properties,
  input_count,
  output_count 
)     const Operator* MachineOperatorBuilder::Name() { return &impl_.k##Name; }

Definition at line 199 of file machine-operator.cc.

◆ PURE_OP_LIST

#define PURE_OP_LIST (   V)

Definition at line 60 of file machine-operator.cc.

◆ STORE [1/2]

#define STORE (   Type)
Value:
struct Store##Type##Operator : public Operator1<StoreRepresentation> { \
explicit Store##Type##Operator(WriteBarrierKind write_barrier_kind) \
: Operator1<StoreRepresentation>( \
IrOpcode::kStore, Operator::kNoRead | Operator::kNoThrow, 3, 0, \
"Store", StoreRepresentation(k##Type, write_barrier_kind)) {} \
}; \
struct Store##Type##NoWriteBarrier##Operator FINAL \
: public Store##Type##Operator { \
Store##Type##NoWriteBarrier##Operator() \
: Store##Type##Operator(kNoWriteBarrier) {} \
}; \
struct Store##Type##FullWriteBarrier##Operator FINAL \
: public Store##Type##Operator { \
Store##Type##FullWriteBarrier##Operator() \
: Store##Type##Operator(kFullWriteBarrier) {} \
}; \
Store##Type##NoWriteBarrier##Operator k##Store##Type##NoWriteBarrier; \
Store##Type##FullWriteBarrier##Operator k##Store##Type##FullWriteBarrier;

Definition at line 165 of file machine-operator.cc.

◆ STORE [2/2]

#define STORE (   Type)
Value:
case k##Type: \
switch (rep.write_barrier_kind()) { \
return &impl_.k##Store##Type##NoWriteBarrier; \
return &impl_.k##Store##Type##FullWriteBarrier; \
} \
break;

Definition at line 165 of file machine-operator.cc.