summaryrefslogtreecommitdiff
path: root/deps/v8/src/compiler/machine-operator.h
diff options
context:
space:
mode:
Diffstat (limited to 'deps/v8/src/compiler/machine-operator.h')
-rw-r--r--deps/v8/src/compiler/machine-operator.h42
1 files changed, 40 insertions, 2 deletions
diff --git a/deps/v8/src/compiler/machine-operator.h b/deps/v8/src/compiler/machine-operator.h
index 8b1250dd30..0f81301206 100644
--- a/deps/v8/src/compiler/machine-operator.h
+++ b/deps/v8/src/compiler/machine-operator.h
@@ -112,6 +112,9 @@ MachineRepresentation AtomicStoreRepresentationOf(Operator const* op)
MachineType AtomicOpType(Operator const* op) V8_WARN_UNUSED_RESULT;
+V8_EXPORT_PRIVATE const uint8_t* S8x16ShuffleOf(Operator const* op)
+ V8_WARN_UNUSED_RESULT;
+
// Interface for building machine-level operators. These operators are
// machine-level but machine-independent and thus define a language suitable
// for generating code to run on architectures such as ia32, x64, arm, etc.
@@ -216,7 +219,7 @@ class V8_EXPORT_PRIVATE MachineOperatorBuilder final
AlignmentRequirements::FullUnalignedAccessSupport());
const Operator* Comment(const char* msg);
- const Operator* DebugAbort();
+ const Operator* AbortCSAAssert();
const Operator* DebugBreak();
const Operator* UnsafePointerAdd();
@@ -295,9 +298,12 @@ class V8_EXPORT_PRIVATE MachineOperatorBuilder final
const Operator* Uint64LessThanOrEqual();
const Operator* Uint64Mod();
- // This operator reinterprets the bits of a tagged pointer as word.
+ // This operator reinterprets the bits of a tagged pointer as a word.
const Operator* BitcastTaggedToWord();
+ // This operator reinterprets the bits of a Smi as a word.
+ const Operator* BitcastTaggedSignedToWord();
+
// This operator reinterprets the bits of a tagged MaybeObject pointer as
// word.
const Operator* BitcastMaybeObjectToWord();
@@ -462,6 +468,16 @@ class V8_EXPORT_PRIVATE MachineOperatorBuilder final
const Operator* Float64SilenceNaN();
// SIMD operators.
+ const Operator* F64x2Splat();
+ const Operator* F64x2Abs();
+ const Operator* F64x2Neg();
+ const Operator* F64x2ExtractLane(int32_t);
+ const Operator* F64x2ReplaceLane(int32_t);
+ const Operator* F64x2Eq();
+ const Operator* F64x2Ne();
+ const Operator* F64x2Lt();
+ const Operator* F64x2Le();
+
const Operator* F32x4Splat();
const Operator* F32x4ExtractLane(int32_t);
const Operator* F32x4ReplaceLane(int32_t);
@@ -483,6 +499,23 @@ class V8_EXPORT_PRIVATE MachineOperatorBuilder final
const Operator* F32x4Lt();
const Operator* F32x4Le();
+ const Operator* I64x2Splat();
+ const Operator* I64x2ExtractLane(int32_t);
+ const Operator* I64x2ReplaceLane(int32_t);
+ const Operator* I64x2Neg();
+ const Operator* I64x2Shl(int32_t);
+ const Operator* I64x2ShrS(int32_t);
+ const Operator* I64x2Add();
+ const Operator* I64x2Sub();
+ const Operator* I64x2Mul();
+ const Operator* I64x2Eq();
+ const Operator* I64x2Ne();
+ const Operator* I64x2GtS();
+ const Operator* I64x2GeS();
+ const Operator* I64x2ShrU(int32_t);
+ const Operator* I64x2GtU();
+ const Operator* I64x2GeU();
+
const Operator* I32x4Splat();
const Operator* I32x4ExtractLane(int32_t);
const Operator* I32x4ReplaceLane(int32_t);
@@ -585,6 +618,8 @@ class V8_EXPORT_PRIVATE MachineOperatorBuilder final
const Operator* S8x16Shuffle(const uint8_t shuffle[16]);
+ const Operator* S1x2AnyTrue();
+ const Operator* S1x2AllTrue();
const Operator* S1x4AnyTrue();
const Operator* S1x4AllTrue();
const Operator* S1x8AnyTrue();
@@ -620,6 +655,9 @@ class V8_EXPORT_PRIVATE MachineOperatorBuilder final
const Operator* LoadFramePointer();
const Operator* LoadParentFramePointer();
+ // Memory barrier.
+ const Operator* MemBarrier();
+
// atomic-load [base + index]
const Operator* Word32AtomicLoad(LoadRepresentation rep);
// atomic-load [base + index]