aboutsummaryrefslogtreecommitdiff
path: root/src/compiler/opcodes.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/compiler/opcodes.h')
-rw-r--r--src/compiler/opcodes.h130
1 files changed, 65 insertions, 65 deletions
diff --git a/src/compiler/opcodes.h b/src/compiler/opcodes.h
index fdbe001d..b50754c2 100644
--- a/src/compiler/opcodes.h
+++ b/src/compiler/opcodes.h
@@ -25,6 +25,8 @@
V(Deoptimize) \
V(DeoptimizeIf) \
V(DeoptimizeUnless) \
+ V(TrapIf) \
+ V(TrapUnless) \
V(Return) \
V(TailCall) \
V(Terminate) \
@@ -57,6 +59,7 @@
V(FrameState) \
V(StateValues) \
V(TypedStateValues) \
+ V(ArgumentsObjectState) \
V(ObjectState) \
V(TypedObjectState) \
V(Call) \
@@ -104,7 +107,9 @@
#define JS_SIMPLE_BINOP_LIST(V) \
JS_COMPARE_BINOP_LIST(V) \
JS_BITWISE_BINOP_LIST(V) \
- JS_ARITH_BINOP_LIST(V)
+ JS_ARITH_BINOP_LIST(V) \
+ V(JSInstanceOf) \
+ V(JSOrdinaryHasInstance)
#define JS_CONVERSION_UNOP_LIST(V) \
V(JSToBoolean) \
@@ -116,32 +121,34 @@
V(JSToString)
#define JS_OTHER_UNOP_LIST(V) \
+ V(JSClassOf) \
V(JSTypeOf)
#define JS_SIMPLE_UNOP_LIST(V) \
JS_CONVERSION_UNOP_LIST(V) \
JS_OTHER_UNOP_LIST(V)
-#define JS_OBJECT_OP_LIST(V) \
- V(JSCreate) \
- V(JSCreateArguments) \
- V(JSCreateArray) \
- V(JSCreateClosure) \
- V(JSCreateIterResultObject) \
- V(JSCreateKeyValueArray) \
- V(JSCreateLiteralArray) \
- V(JSCreateLiteralObject) \
- V(JSCreateLiteralRegExp) \
- V(JSLoadProperty) \
- V(JSLoadNamed) \
- V(JSLoadGlobal) \
- V(JSStoreProperty) \
- V(JSStoreNamed) \
- V(JSStoreGlobal) \
- V(JSDeleteProperty) \
- V(JSHasProperty) \
- V(JSInstanceOf) \
- V(JSOrdinaryHasInstance)
+#define JS_OBJECT_OP_LIST(V) \
+ V(JSCreate) \
+ V(JSCreateArguments) \
+ V(JSCreateArray) \
+ V(JSCreateClosure) \
+ V(JSCreateIterResultObject) \
+ V(JSCreateKeyValueArray) \
+ V(JSCreateLiteralArray) \
+ V(JSCreateLiteralObject) \
+ V(JSCreateLiteralRegExp) \
+ V(JSLoadProperty) \
+ V(JSLoadNamed) \
+ V(JSLoadGlobal) \
+ V(JSStoreProperty) \
+ V(JSStoreNamed) \
+ V(JSStoreNamedOwn) \
+ V(JSStoreGlobal) \
+ V(JSStoreDataPropertyInLiteral) \
+ V(JSDeleteProperty) \
+ V(JSHasProperty) \
+ V(JSGetSuperConstructor)
#define JS_CONTEXT_OP_LIST(V) \
V(JSLoadContext) \
@@ -153,8 +160,11 @@
V(JSCreateScriptContext)
#define JS_OTHER_OP_LIST(V) \
- V(JSCallConstruct) \
- V(JSCallFunction) \
+ V(JSConstruct) \
+ V(JSConstructWithSpread) \
+ V(JSCallForwardVarargs) \
+ V(JSCall) \
+ V(JSCallWithSpread) \
V(JSCallRuntime) \
V(JSConvertReceiver) \
V(JSForInNext) \
@@ -166,7 +176,8 @@
V(JSGeneratorStore) \
V(JSGeneratorRestoreContinuation) \
V(JSGeneratorRestoreRegister) \
- V(JSStackCheck)
+ V(JSStackCheck) \
+ V(JSDebugger)
#define JS_OP_LIST(V) \
JS_SIMPLE_BINOP_LIST(V) \
@@ -181,6 +192,7 @@
V(ChangeTaggedToInt32) \
V(ChangeTaggedToUint32) \
V(ChangeTaggedToFloat64) \
+ V(ChangeTaggedToTaggedSigned) \
V(ChangeInt31ToTaggedSigned) \
V(ChangeInt32ToTagged) \
V(ChangeUint32ToTagged) \
@@ -294,13 +306,17 @@
V(PlainPrimitiveToWord32) \
V(PlainPrimitiveToFloat64) \
V(BooleanNot) \
+ V(StringCharAt) \
V(StringCharCodeAt) \
V(StringFromCharCode) \
V(StringFromCodePoint) \
+ V(StringIndexOf) \
V(CheckBounds) \
V(CheckIf) \
V(CheckMaps) \
V(CheckNumber) \
+ V(CheckInternalizedString) \
+ V(CheckReceiver) \
V(CheckString) \
V(CheckSmi) \
V(CheckHeapObject) \
@@ -316,12 +332,15 @@
V(StoreBuffer) \
V(StoreElement) \
V(StoreTypedElement) \
- V(ObjectIsCallable) \
+ V(ObjectIsDetectableCallable) \
+ V(ObjectIsNonCallable) \
V(ObjectIsNumber) \
V(ObjectIsReceiver) \
V(ObjectIsSmi) \
V(ObjectIsString) \
V(ObjectIsUndetectable) \
+ V(NewRestParameterElements) \
+ V(NewUnmappedArgumentsElements) \
V(ArrayBufferWasNeutered) \
V(EnsureWritableFastElements) \
V(MaybeGrowFastElements) \
@@ -527,6 +546,7 @@
V(Word32PairShr) \
V(Word32PairSar) \
V(ProtectedLoad) \
+ V(ProtectedStore) \
V(AtomicLoad) \
V(AtomicStore) \
V(UnsafePointerAdd)
@@ -553,9 +573,6 @@
V(Float32x4LessThanOrEqual) \
V(Float32x4GreaterThan) \
V(Float32x4GreaterThanOrEqual) \
- V(Float32x4Select) \
- V(Float32x4Swizzle) \
- V(Float32x4Shuffle) \
V(Float32x4FromInt32x4) \
V(Float32x4FromUint32x4) \
V(CreateInt32x4) \
@@ -574,9 +591,6 @@
V(Int32x4LessThanOrEqual) \
V(Int32x4GreaterThan) \
V(Int32x4GreaterThanOrEqual) \
- V(Int32x4Select) \
- V(Int32x4Swizzle) \
- V(Int32x4Shuffle) \
V(Int32x4FromFloat32x4) \
V(Uint32x4Min) \
V(Uint32x4Max) \
@@ -587,16 +601,10 @@
V(Uint32x4GreaterThan) \
V(Uint32x4GreaterThanOrEqual) \
V(Uint32x4FromFloat32x4) \
- V(CreateBool32x4) \
- V(Bool32x4ReplaceLane) \
V(Bool32x4And) \
V(Bool32x4Or) \
V(Bool32x4Xor) \
V(Bool32x4Not) \
- V(Bool32x4Swizzle) \
- V(Bool32x4Shuffle) \
- V(Bool32x4Equal) \
- V(Bool32x4NotEqual) \
V(CreateInt16x8) \
V(Int16x8ReplaceLane) \
V(Int16x8Neg) \
@@ -615,9 +623,6 @@
V(Int16x8LessThanOrEqual) \
V(Int16x8GreaterThan) \
V(Int16x8GreaterThanOrEqual) \
- V(Int16x8Select) \
- V(Int16x8Swizzle) \
- V(Int16x8Shuffle) \
V(Uint16x8AddSaturate) \
V(Uint16x8SubSaturate) \
V(Uint16x8Min) \
@@ -628,16 +633,10 @@
V(Uint16x8LessThanOrEqual) \
V(Uint16x8GreaterThan) \
V(Uint16x8GreaterThanOrEqual) \
- V(CreateBool16x8) \
- V(Bool16x8ReplaceLane) \
V(Bool16x8And) \
V(Bool16x8Or) \
V(Bool16x8Xor) \
V(Bool16x8Not) \
- V(Bool16x8Swizzle) \
- V(Bool16x8Shuffle) \
- V(Bool16x8Equal) \
- V(Bool16x8NotEqual) \
V(CreateInt8x16) \
V(Int8x16ReplaceLane) \
V(Int8x16Neg) \
@@ -656,9 +655,6 @@
V(Int8x16LessThanOrEqual) \
V(Int8x16GreaterThan) \
V(Int8x16GreaterThanOrEqual) \
- V(Int8x16Select) \
- V(Int8x16Swizzle) \
- V(Int8x16Shuffle) \
V(Uint8x16AddSaturate) \
V(Uint8x16SubSaturate) \
V(Uint8x16Min) \
@@ -669,16 +665,23 @@
V(Uint8x16LessThanOrEqual) \
V(Uint8x16GreaterThan) \
V(Uint8x16GreaterThanOrEqual) \
- V(CreateBool8x16) \
- V(Bool8x16ReplaceLane) \
V(Bool8x16And) \
V(Bool8x16Or) \
V(Bool8x16Xor) \
V(Bool8x16Not) \
- V(Bool8x16Swizzle) \
- V(Bool8x16Shuffle) \
- V(Bool8x16Equal) \
- V(Bool8x16NotEqual)
+ V(Simd128And) \
+ V(Simd128Or) \
+ V(Simd128Xor) \
+ V(Simd128Not) \
+ V(Simd32x4Select) \
+ V(Simd32x4Swizzle) \
+ V(Simd32x4Shuffle) \
+ V(Simd16x8Select) \
+ V(Simd16x8Swizzle) \
+ V(Simd16x8Shuffle) \
+ V(Simd8x16Select) \
+ V(Simd8x16Swizzle) \
+ V(Simd8x16Shuffle)
#define MACHINE_SIMD_RETURN_NUM_OP_LIST(V) \
V(Float32x4ExtractLane) \
@@ -687,13 +690,10 @@
V(Int8x16ExtractLane)
#define MACHINE_SIMD_RETURN_BOOL_OP_LIST(V) \
- V(Bool32x4ExtractLane) \
V(Bool32x4AnyTrue) \
V(Bool32x4AllTrue) \
- V(Bool16x8ExtractLane) \
V(Bool16x8AnyTrue) \
V(Bool16x8AllTrue) \
- V(Bool8x16ExtractLane) \
V(Bool8x16AnyTrue) \
V(Bool8x16AllTrue)
@@ -705,11 +705,7 @@
V(Simd128Store) \
V(Simd128Store1) \
V(Simd128Store2) \
- V(Simd128Store3) \
- V(Simd128And) \
- V(Simd128Or) \
- V(Simd128Xor) \
- V(Simd128Not)
+ V(Simd128Store3)
#define MACHINE_SIMD_OP_LIST(V) \
MACHINE_SIMD_RETURN_SIMD_OP_LIST(V) \
@@ -762,7 +758,7 @@ class V8_EXPORT_PRIVATE IrOpcode {
// Returns true if opcode for JavaScript operator.
static bool IsJsOpcode(Value value) {
- return kJSEqual <= value && value <= kJSStackCheck;
+ return kJSEqual <= value && value <= kJSDebugger;
}
// Returns true if opcode for constant operator.
@@ -784,7 +780,7 @@ class V8_EXPORT_PRIVATE IrOpcode {
// Returns true if opcode can be inlined.
static bool IsInlineeOpcode(Value value) {
- return value == kJSCallConstruct || value == kJSCallFunction;
+ return value == kJSConstruct || value == kJSCall;
}
// Returns true if opcode for comparison operator.
@@ -793,6 +789,10 @@ class V8_EXPORT_PRIVATE IrOpcode {
(kNumberEqual <= value && value <= kStringLessThanOrEqual) ||
(kWord32Equal <= value && value <= kFloat64LessThanOrEqual);
}
+
+ static bool IsContextChainExtendingOpcode(Value value) {
+ return kJSCreateFunctionContext <= value && value <= kJSCreateScriptContext;
+ }
};
V8_EXPORT_PRIVATE std::ostream& operator<<(std::ostream&, IrOpcode::Value);