| Index: src/compiler/machine-operator.cc
|
| diff --git a/src/compiler/machine-operator.cc b/src/compiler/machine-operator.cc
|
| index 748d9c3349fbf304643956f4fddafe4efc3939ed..61a15b2308995b75ac0968195f30f3faafc97e75 100644
|
| --- a/src/compiler/machine-operator.cc
|
| +++ b/src/compiler/machine-operator.cc
|
| @@ -442,33 +442,36 @@ struct MachineOperatorGlobalCache {
|
| PURE_OPTIONAL_OP_LIST(PURE)
|
| #undef PURE
|
|
|
| -#define LOAD(Type) \
|
| - struct Load##Type##Operator final : public Operator1<LoadRepresentation> { \
|
| - Load##Type##Operator() \
|
| - : Operator1<LoadRepresentation>( \
|
| - IrOpcode::kLoad, Operator::kNoThrow | Operator::kNoWrite, \
|
| - "Load", 2, 1, 1, 1, 1, 0, MachineType::Type()) {} \
|
| - }; \
|
| - struct CheckedLoad##Type##Operator final \
|
| - : public Operator1<CheckedLoadRepresentation> { \
|
| - CheckedLoad##Type##Operator() \
|
| - : Operator1<CheckedLoadRepresentation>( \
|
| - IrOpcode::kCheckedLoad, Operator::kNoThrow | Operator::kNoWrite, \
|
| - "CheckedLoad", 3, 1, 1, 1, 1, 0, MachineType::Type()) {} \
|
| - }; \
|
| - Load##Type##Operator kLoad##Type; \
|
| +#define LOAD(Type) \
|
| + struct Load##Type##Operator final : public Operator1<LoadRepresentation> { \
|
| + Load##Type##Operator() \
|
| + : Operator1<LoadRepresentation>( \
|
| + IrOpcode::kLoad, \
|
| + Operator::kNoDeopt | Operator::kNoThrow | Operator::kNoWrite, \
|
| + "Load", 2, 1, 1, 1, 1, 0, MachineType::Type()) {} \
|
| + }; \
|
| + struct CheckedLoad##Type##Operator final \
|
| + : public Operator1<CheckedLoadRepresentation> { \
|
| + CheckedLoad##Type##Operator() \
|
| + : Operator1<CheckedLoadRepresentation>( \
|
| + IrOpcode::kCheckedLoad, \
|
| + Operator::kNoDeopt | Operator::kNoThrow | Operator::kNoWrite, \
|
| + "CheckedLoad", 3, 1, 1, 1, 1, 0, MachineType::Type()) {} \
|
| + }; \
|
| + Load##Type##Operator kLoad##Type; \
|
| CheckedLoad##Type##Operator kCheckedLoad##Type;
|
| MACHINE_TYPE_LIST(LOAD)
|
| #undef LOAD
|
|
|
| -#define STACKSLOT(Type) \
|
| - struct StackSlot##Type##Operator final \
|
| - : public Operator1<MachineRepresentation> { \
|
| - StackSlot##Type##Operator() \
|
| - : Operator1<MachineRepresentation>( \
|
| - IrOpcode::kStackSlot, Operator::kNoThrow, "StackSlot", 0, 0, 0, \
|
| - 1, 0, 0, MachineType::Type().representation()) {} \
|
| - }; \
|
| +#define STACKSLOT(Type) \
|
| + struct StackSlot##Type##Operator final \
|
| + : public Operator1<MachineRepresentation> { \
|
| + StackSlot##Type##Operator() \
|
| + : Operator1<MachineRepresentation>( \
|
| + IrOpcode::kStackSlot, Operator::kNoDeopt | Operator::kNoThrow, \
|
| + "StackSlot", 0, 0, 0, 1, 0, 0, \
|
| + MachineType::Type().representation()) {} \
|
| + }; \
|
| StackSlot##Type##Operator kStackSlot##Type;
|
| MACHINE_TYPE_LIST(STACKSLOT)
|
| #undef STACKSLOT
|
| @@ -477,7 +480,8 @@ struct MachineOperatorGlobalCache {
|
| struct Store##Type##Operator : public Operator1<StoreRepresentation> { \
|
| explicit Store##Type##Operator(WriteBarrierKind write_barrier_kind) \
|
| : Operator1<StoreRepresentation>( \
|
| - IrOpcode::kStore, Operator::kNoRead | Operator::kNoThrow, \
|
| + IrOpcode::kStore, \
|
| + Operator::kNoDeopt | Operator::kNoRead | Operator::kNoThrow, \
|
| "Store", 3, 1, 1, 0, 1, 0, \
|
| StoreRepresentation(MachineRepresentation::Type, \
|
| write_barrier_kind)) {} \
|
| @@ -506,7 +510,8 @@ struct MachineOperatorGlobalCache {
|
| : public Operator1<CheckedStoreRepresentation> { \
|
| CheckedStore##Type##Operator() \
|
| : Operator1<CheckedStoreRepresentation>( \
|
| - IrOpcode::kCheckedStore, Operator::kNoRead | Operator::kNoThrow, \
|
| + IrOpcode::kCheckedStore, \
|
| + Operator::kNoDeopt | Operator::kNoRead | Operator::kNoThrow, \
|
| "CheckedStore", 4, 1, 1, 0, 1, 0, MachineRepresentation::Type) { \
|
| } \
|
| }; \
|
| @@ -519,14 +524,15 @@ struct MachineOperatorGlobalCache {
|
| MACHINE_REPRESENTATION_LIST(STORE)
|
| #undef STORE
|
|
|
| -#define ATOMIC_LOAD(Type) \
|
| - struct AtomicLoad##Type##Operator final \
|
| - : public Operator1<LoadRepresentation> { \
|
| - AtomicLoad##Type##Operator() \
|
| - : Operator1<LoadRepresentation>( \
|
| - IrOpcode::kAtomicLoad, Operator::kNoThrow | Operator::kNoWrite, \
|
| - "AtomicLoad", 2, 1, 1, 1, 1, 0, MachineType::Type()) {} \
|
| - }; \
|
| +#define ATOMIC_LOAD(Type) \
|
| + struct AtomicLoad##Type##Operator final \
|
| + : public Operator1<LoadRepresentation> { \
|
| + AtomicLoad##Type##Operator() \
|
| + : Operator1<LoadRepresentation>( \
|
| + IrOpcode::kAtomicLoad, \
|
| + Operator::kNoDeopt | Operator::kNoThrow | Operator::kNoWrite, \
|
| + "AtomicLoad", 2, 1, 1, 1, 1, 0, MachineType::Type()) {} \
|
| + }; \
|
| AtomicLoad##Type##Operator kAtomicLoad##Type;
|
| ATOMIC_TYPE_LIST(ATOMIC_LOAD)
|
| #undef ATOMIC_LOAD
|
| @@ -536,7 +542,8 @@ struct MachineOperatorGlobalCache {
|
| : public Operator1<MachineRepresentation> { \
|
| AtomicStore##Type##Operator() \
|
| : Operator1<MachineRepresentation>( \
|
| - IrOpcode::kAtomicStore, Operator::kNoRead | Operator::kNoThrow, \
|
| + IrOpcode::kAtomicStore, \
|
| + Operator::kNoDeopt | Operator::kNoRead | Operator::kNoThrow, \
|
| "AtomicStore", 3, 1, 1, 0, 1, 0, MachineRepresentation::Type) {} \
|
| }; \
|
| AtomicStore##Type##Operator kAtomicStore##Type;
|
|
|