| Index: src/compiler/machine-operator.cc
|
| diff --git a/src/compiler/machine-operator.cc b/src/compiler/machine-operator.cc
|
| index 2ea1bf3ba22de45e9f41f6e72d7092cc7adbf221..83459f70e90f2ad8d18f09e7f94025670454c873 100644
|
| --- a/src/compiler/machine-operator.cc
|
| +++ b/src/compiler/machine-operator.cc
|
| @@ -7,6 +7,8 @@
|
| #include "src/base/lazy-instance.h"
|
| #include "src/compiler/opcodes.h"
|
| #include "src/compiler/operator.h"
|
| +#include "src/v8.h"
|
| +#include "src/zone-inl.h"
|
|
|
| namespace v8 {
|
| namespace internal {
|
| @@ -196,8 +198,9 @@ static base::LazyInstance<MachineOperatorGlobalCache>::type kCache =
|
| LAZY_INSTANCE_INITIALIZER;
|
|
|
|
|
| -MachineOperatorBuilder::MachineOperatorBuilder(MachineType word, Flags flags)
|
| - : cache_(kCache.Get()), word_(word), flags_(flags) {
|
| +MachineOperatorBuilder::MachineOperatorBuilder(Zone* zone, MachineType word,
|
| + Flags flags)
|
| + : zone_(zone), cache_(kCache.Get()), word_(word), flags_(flags) {
|
| DCHECK(word == kRepWord32 || word == kRepWord64);
|
| }
|
|
|
| @@ -220,8 +223,10 @@ const Operator* MachineOperatorBuilder::Load(LoadRepresentation rep) {
|
| default:
|
| break;
|
| }
|
| - UNREACHABLE();
|
| - return NULL;
|
| + // Uncached.
|
| + return new (zone_) Operator1<LoadRepresentation>( // --
|
| + IrOpcode::kLoad, Operator::kNoThrow | Operator::kNoWrite, "Load", 2, 1, 1,
|
| + 1, 1, 0, rep);
|
| }
|
|
|
|
|
| @@ -242,8 +247,10 @@ const Operator* MachineOperatorBuilder::Store(StoreRepresentation rep) {
|
| default:
|
| break;
|
| }
|
| - UNREACHABLE();
|
| - return NULL;
|
| + // Uncached.
|
| + return new (zone_) Operator1<StoreRepresentation>( // --
|
| + IrOpcode::kStore, Operator::kNoRead | Operator::kNoThrow, "Store", 3, 1,
|
| + 1, 0, 1, 0, rep);
|
| }
|
| } // namespace compiler
|
| } // namespace internal
|
|
|