V8 Project
opcodes.h File Reference
+ This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Classes

class  v8::internal::compiler::IrOpcode
 

Namespaces

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

Macros

#define INNER_CONTROL_OP_LIST(V)
 
#define CONTROL_OP_LIST(V)
 
#define LEAF_OP_LIST(V)
 
#define INNER_OP_LIST(V)
 
#define COMMON_OP_LIST(V)
 
#define JS_COMPARE_BINOP_LIST(V)
 
#define JS_BITWISE_BINOP_LIST(V)
 
#define JS_ARITH_BINOP_LIST(V)
 
#define JS_SIMPLE_BINOP_LIST(V)
 
#define JS_LOGIC_UNOP_LIST(V)   V(JSUnaryNot)
 
#define JS_CONVERSION_UNOP_LIST(V)
 
#define JS_OTHER_UNOP_LIST(V)    V(JSTypeOf)
 
#define JS_SIMPLE_UNOP_LIST(V)
 
#define JS_OBJECT_OP_LIST(V)
 
#define JS_CONTEXT_OP_LIST(V)
 
#define JS_OTHER_OP_LIST(V)
 
#define JS_OP_LIST(V)
 
#define SIMPLIFIED_OP_LIST(V)
 
#define MACHINE_OP_LIST(V)
 
#define VALUE_OP_LIST(V)
 
#define ALL_OP_LIST(V)
 
#define DECLARE_OPCODE(x)   k##x,
 
#define COUNT_OPCODE(x)   +1
 
#define RETURN_NAME(x)
 
#define RETURN_NAME(x)
 
#define RETURN_NAME(x)
 
#define RETURN_NAME(x)
 

Macro Definition Documentation

◆ ALL_OP_LIST

#define ALL_OP_LIST (   V)
Value:
VALUE_OP_LIST(V)
#define CONTROL_OP_LIST(V)
Definition: opcodes.h:19

Definition at line 233 of file opcodes.h.

◆ COMMON_OP_LIST

#define COMMON_OP_LIST (   V)
Value:
INNER_OP_LIST(V)
#define LEAF_OP_LIST(V)
Definition: opcodes.h:25

Definition at line 46 of file opcodes.h.

◆ CONTROL_OP_LIST

#define CONTROL_OP_LIST (   V)
Value:
V(Start) \
V(End)
#define INNER_CONTROL_OP_LIST(V)
Definition: opcodes.h:9

Definition at line 19 of file opcodes.h.

◆ COUNT_OPCODE

#define COUNT_OPCODE (   x)    +1

◆ DECLARE_OPCODE

#define DECLARE_OPCODE (   x)    k##x,

Definition at line 246 of file opcodes.h.

◆ INNER_CONTROL_OP_LIST

#define INNER_CONTROL_OP_LIST (   V)
Value:
V(Dead) \
V(Loop) \
V(Branch) \
V(IfTrue) \
V(IfFalse) \
V(Merge) \
V(Return) \
V(Throw)
#define V(NAME, Name, id)
Definition: execution.h:170
static Handle< Value > Throw(Isolate *isolate, const char *message)
Definition: d8.cc:72

Definition at line 9 of file opcodes.h.

◆ INNER_OP_LIST

#define INNER_OP_LIST (   V)
Value:
V(Phi) \
V(EffectPhi) \
V(ControlEffect) \
V(ValueEffect) \
V(Finish) \
V(FrameState) \
V(StateValues) \
V(Call) \
V(Parameter) \
V(Projection)

Definition at line 34 of file opcodes.h.

◆ JS_ARITH_BINOP_LIST

#define JS_ARITH_BINOP_LIST (   V)
Value:
V(JSAdd) \
V(JSSubtract) \
V(JSMultiply) \
V(JSDivide) \
V(JSModulus)

Definition at line 69 of file opcodes.h.

◆ JS_BITWISE_BINOP_LIST

#define JS_BITWISE_BINOP_LIST (   V)
Value:
V(JSBitwiseOr) \
V(JSBitwiseXor) \
V(JSBitwiseAnd) \
V(JSShiftLeft) \
V(JSShiftRight) \
V(JSShiftRightLogical)

Definition at line 61 of file opcodes.h.

◆ JS_COMPARE_BINOP_LIST

#define JS_COMPARE_BINOP_LIST (   V)
Value:
V(JSEqual) \
V(JSNotEqual) \
V(JSStrictEqual) \
V(JSStrictNotEqual) \
V(JSLessThan) \
V(JSGreaterThan) \
V(JSLessThanOrEqual) \
V(JSGreaterThanOrEqual)

Definition at line 51 of file opcodes.h.

◆ JS_CONTEXT_OP_LIST

#define JS_CONTEXT_OP_LIST (   V)
Value:
V(JSLoadContext) \
V(JSStoreContext) \
V(JSCreateFunctionContext) \
V(JSCreateCatchContext) \
V(JSCreateWithContext) \
V(JSCreateBlockContext) \
V(JSCreateModuleContext) \
V(JSCreateGlobalContext)

Definition at line 108 of file opcodes.h.

◆ JS_CONVERSION_UNOP_LIST

#define JS_CONVERSION_UNOP_LIST (   V)
Value:
V(JSToBoolean) \
V(JSToNumber) \
V(JSToString) \
V(JSToName) \
V(JSToObject)

Definition at line 83 of file opcodes.h.

◆ JS_LOGIC_UNOP_LIST

#define JS_LOGIC_UNOP_LIST (   V)    V(JSUnaryNot)

Definition at line 81 of file opcodes.h.

◆ JS_OBJECT_OP_LIST

#define JS_OBJECT_OP_LIST (   V)
Value:
V(JSCreate) \
V(JSLoadProperty) \
V(JSLoadNamed) \
V(JSStoreProperty) \
V(JSStoreNamed) \
V(JSDeleteProperty) \
V(JSHasProperty) \
V(JSInstanceOf)

Definition at line 98 of file opcodes.h.

◆ JS_OP_LIST

#define JS_OP_LIST (   V)
Value:
JS_SIMPLE_UNOP_LIST(V) \
JS_OBJECT_OP_LIST(V) \
JS_CONTEXT_OP_LIST(V) \
JS_OTHER_OP_LIST(V)
#define JS_SIMPLE_BINOP_LIST(V)
Definition: opcodes.h:76

Definition at line 125 of file opcodes.h.

◆ JS_OTHER_OP_LIST

#define JS_OTHER_OP_LIST (   V)
Value:
V(JSCallConstruct) \
V(JSCallFunction) \
V(JSCallRuntime) \
V(JSYield) \
V(JSDebugger)

Definition at line 118 of file opcodes.h.

◆ JS_OTHER_UNOP_LIST

#define JS_OTHER_UNOP_LIST (   V)     V(JSTypeOf)

Definition at line 90 of file opcodes.h.

◆ JS_SIMPLE_BINOP_LIST

#define JS_SIMPLE_BINOP_LIST (   V)
Value:
JS_BITWISE_BINOP_LIST(V) \
JS_ARITH_BINOP_LIST(V)
#define JS_COMPARE_BINOP_LIST(V)
Definition: opcodes.h:51

Definition at line 76 of file opcodes.h.

◆ JS_SIMPLE_UNOP_LIST

#define JS_SIMPLE_UNOP_LIST (   V)
Value:
JS_CONVERSION_UNOP_LIST(V) \
JS_OTHER_UNOP_LIST(V)
#define JS_LOGIC_UNOP_LIST(V)
Definition: opcodes.h:81

Definition at line 93 of file opcodes.h.

◆ LEAF_OP_LIST

#define LEAF_OP_LIST (   V)
Value:
V(Int32Constant) \
V(Int64Constant) \
V(Float32Constant) \
V(Float64Constant) \
V(ExternalConstant) \
V(NumberConstant) \
V(HeapConstant)

Definition at line 25 of file opcodes.h.

◆ MACHINE_OP_LIST

#define MACHINE_OP_LIST (   V)

Definition at line 165 of file opcodes.h.

◆ RETURN_NAME [1/4]

#define RETURN_NAME (   x)
Value:
case k##x: \
return #x;

◆ RETURN_NAME [2/4]

#define RETURN_NAME (   x)
Value:
case k##x: \
return true;

◆ RETURN_NAME [3/4]

#define RETURN_NAME (   x)
Value:
case k##x: \
return true;

◆ RETURN_NAME [4/4]

#define RETURN_NAME (   x)
Value:
case k##x: \
return true;

◆ SIMPLIFIED_OP_LIST

#define SIMPLIFIED_OP_LIST (   V)
Value:
V(BooleanNot) \
V(BooleanToNumber) \
V(NumberEqual) \
V(NumberLessThan) \
V(NumberLessThanOrEqual) \
V(NumberAdd) \
V(NumberSubtract) \
V(NumberMultiply) \
V(NumberDivide) \
V(NumberModulus) \
V(ReferenceEqual) \
V(StringEqual) \
V(StringLessThan) \
V(StringLessThanOrEqual) \
V(StringAdd) \
V(ChangeTaggedToInt32) \
V(ChangeTaggedToUint32) \
V(ChangeTaggedToFloat64) \
V(ChangeInt32ToTagged) \
V(ChangeUint32ToTagged) \
V(ChangeFloat64ToTagged) \
V(ChangeBoolToBit) \
V(ChangeBitToBool) \
V(LoadField) \
V(LoadElement) \
V(StoreField) \
V(StoreElement)
int32_t NumberToInt32(Object *number)
Definition: conversions.h:189
uint32_t NumberToUint32(Object *number)
Definition: conversions.h:195

Definition at line 133 of file opcodes.h.

◆ VALUE_OP_LIST

#define VALUE_OP_LIST (   V)
Value:
SIMPLIFIED_OP_LIST(V) \
MACHINE_OP_LIST(V) \
JS_OP_LIST(V)
#define COMMON_OP_LIST(V)
Definition: opcodes.h:46

Definition at line 226 of file opcodes.h.