summaryrefslogtreecommitdiff
path: root/deps/v8/src/compiler/simplified-operator.cc
diff options
context:
space:
mode:
Diffstat (limited to 'deps/v8/src/compiler/simplified-operator.cc')
-rw-r--r--deps/v8/src/compiler/simplified-operator.cc29
1 files changed, 29 insertions, 0 deletions
diff --git a/deps/v8/src/compiler/simplified-operator.cc b/deps/v8/src/compiler/simplified-operator.cc
index 6b86a95e01..63d24274ec 100644
--- a/deps/v8/src/compiler/simplified-operator.cc
+++ b/deps/v8/src/compiler/simplified-operator.cc
@@ -1149,6 +1149,17 @@ struct SimplifiedOperatorGlobalCache final {
};
LoadFieldByIndexOperator kLoadFieldByIndex;
+ struct LoadStackArgumentOperator final : public Operator {
+ LoadStackArgumentOperator()
+ : Operator( // --
+ IrOpcode::kLoadStackArgument, // opcode
+ Operator::kNoDeopt | Operator::kNoThrow |
+ Operator::kNoWrite, // flags
+ "LoadStackArgument", // name
+ 2, 1, 1, 1, 1, 0) {} // counts
+ };
+ LoadStackArgumentOperator kLoadStackArgument;
+
#define SPECULATIVE_NUMBER_BINOP(Name) \
template <NumberOperationHint kHint> \
struct Name##Operator final : public Operator1<NumberOperationHint> { \
@@ -1754,6 +1765,24 @@ SPECULATIVE_NUMBER_BINOP_LIST(SPECULATIVE_NUMBER_BINOP)
ACCESS_OP_LIST(ACCESS)
#undef ACCESS
+const Operator* SimplifiedOperatorBuilder::LoadMessage() {
+ return new (zone())
+ Operator(IrOpcode::kLoadMessage,
+ Operator::kNoDeopt | Operator::kNoThrow | Operator::kNoWrite,
+ "LoadMessage", 1, 1, 1, 1, 1, 0);
+}
+
+const Operator* SimplifiedOperatorBuilder::StoreMessage() {
+ return new (zone())
+ Operator(IrOpcode::kStoreMessage,
+ Operator::kNoDeopt | Operator::kNoThrow | Operator::kNoRead,
+ "StoreMessage", 2, 1, 1, 0, 1, 0);
+}
+
+const Operator* SimplifiedOperatorBuilder::LoadStackArgument() {
+ return &cache_.kLoadStackArgument;
+}
+
const Operator* SimplifiedOperatorBuilder::TransitionAndStoreElement(
Handle<Map> double_map, Handle<Map> fast_map) {
TransitionAndStoreElementParameters parameters(double_map, fast_map);