| Index: src/compiler/machine-operator.h
|
| diff --git a/src/compiler/machine-operator.h b/src/compiler/machine-operator.h
|
| index 05bbab807940638fe0e2fee0800a635d74dc3d18..03534b930e53591f3614a157df77347a586c86fd 100644
|
| --- a/src/compiler/machine-operator.h
|
| +++ b/src/compiler/machine-operator.h
|
| @@ -90,6 +90,15 @@ std::ostream& operator<<(std::ostream&, StoreRepresentation);
|
|
|
| StoreRepresentation const& StoreRepresentationOf(Operator const*);
|
|
|
| +typedef MachineType UnalignedLoadRepresentation;
|
| +
|
| +UnalignedLoadRepresentation UnalignedLoadRepresentationOf(Operator const*);
|
| +
|
| +// An UnalignedStore needs a MachineType.
|
| +typedef MachineRepresentation UnalignedStoreRepresentation;
|
| +
|
| +UnalignedStoreRepresentation const& UnalignedStoreRepresentationOf(
|
| + Operator const*);
|
|
|
| // A CheckedLoad needs a MachineType.
|
| typedef MachineType CheckedLoadRepresentation;
|
| @@ -137,13 +146,16 @@ class MachineOperatorBuilder final : public ZoneObject {
|
| kWord64Popcnt = 1u << 19,
|
| kWord32ReverseBits = 1u << 20,
|
| kWord64ReverseBits = 1u << 21,
|
| + kUnalignedLoad = 1u << 22,
|
| + kUnalignedStore = 1u << 23,
|
| kAllOptionalOps = kFloat32Max | kFloat32Min | kFloat64Max | kFloat64Min |
|
| kFloat32RoundDown | kFloat64RoundDown | kFloat32RoundUp |
|
| kFloat64RoundUp | kFloat32RoundTruncate |
|
| kFloat64RoundTruncate | kFloat64RoundTiesAway |
|
| kFloat32RoundTiesEven | kFloat64RoundTiesEven |
|
| kWord32Ctz | kWord64Ctz | kWord32Popcnt | kWord64Popcnt |
|
| - kWord32ReverseBits | kWord64ReverseBits
|
| + kWord32ReverseBits | kWord64ReverseBits | kUnalignedLoad |
|
| + kUnalignedStore
|
| };
|
| typedef base::Flags<Flag, unsigned> Flags;
|
|
|
| @@ -321,6 +333,12 @@ class MachineOperatorBuilder final : public ZoneObject {
|
| // store [base + index], value
|
| const Operator* Store(StoreRepresentation rep);
|
|
|
| + // unaligned load [base + index]
|
| + const OptionalOperator UnalignedLoad(UnalignedLoadRepresentation rep);
|
| +
|
| + // unaligned store [base + index], value
|
| + const OptionalOperator UnalignedStore(UnalignedStoreRepresentation rep);
|
| +
|
| const Operator* StackSlot(MachineRepresentation rep);
|
|
|
| // Access to the machine stack.
|
|
|