diff options
Diffstat (limited to 'deps/v8/src/compiler/machine-operator.h')
-rw-r--r-- | deps/v8/src/compiler/machine-operator.h | 15 |
1 files changed, 14 insertions, 1 deletions
diff --git a/deps/v8/src/compiler/machine-operator.h b/deps/v8/src/compiler/machine-operator.h index 00fefe3539..c5a80aa609 100644 --- a/deps/v8/src/compiler/machine-operator.h +++ b/deps/v8/src/compiler/machine-operator.h @@ -102,6 +102,7 @@ typedef MachineRepresentation CheckedStoreRepresentation; CheckedStoreRepresentation CheckedStoreRepresentationOf(Operator const*); +MachineRepresentation StackSlotRepresentationOf(Operator const* op); // Interface for building machine-level operators. These operators are // machine-level but machine-independent and thus define a language suitable @@ -134,12 +135,15 @@ class MachineOperatorBuilder final : public ZoneObject { kWord64Ctz = 1u << 17, kWord32Popcnt = 1u << 18, kWord64Popcnt = 1u << 19, + kWord32ReverseBits = 1u << 20, + kWord64ReverseBits = 1u << 21, kAllOptionalOps = kFloat32Max | kFloat32Min | kFloat64Max | kFloat64Min | kFloat32RoundDown | kFloat64RoundDown | kFloat32RoundUp | kFloat64RoundUp | kFloat32RoundTruncate | kFloat64RoundTruncate | kFloat64RoundTiesAway | kFloat32RoundTiesEven | kFloat64RoundTiesEven | - kWord32Ctz | kWord64Ctz | kWord32Popcnt | kWord64Popcnt + kWord32Ctz | kWord64Ctz | kWord32Popcnt | kWord64Popcnt | + kWord32ReverseBits | kWord64ReverseBits }; typedef base::Flags<Flag, unsigned> Flags; @@ -160,6 +164,8 @@ class MachineOperatorBuilder final : public ZoneObject { const OptionalOperator Word32Ctz(); const OptionalOperator Word32Popcnt(); const OptionalOperator Word64Popcnt(); + const OptionalOperator Word32ReverseBits(); + const OptionalOperator Word64ReverseBits(); bool Word32ShiftIsSafe() const { return flags_ & kWord32ShiftIsSafe; } const Operator* Word64And(); @@ -213,6 +219,8 @@ class MachineOperatorBuilder final : public ZoneObject { const Operator* ChangeFloat32ToFloat64(); const Operator* ChangeFloat64ToInt32(); // narrowing const Operator* ChangeFloat64ToUint32(); // narrowing + const Operator* TruncateFloat32ToInt32(); + const Operator* TruncateFloat32ToUint32(); const Operator* TryTruncateFloat32ToInt64(); const Operator* TryTruncateFloat64ToInt64(); const Operator* TryTruncateFloat32ToUint64(); @@ -227,8 +235,10 @@ class MachineOperatorBuilder final : public ZoneObject { const Operator* TruncateFloat64ToFloat32(); const Operator* TruncateFloat64ToInt32(TruncationMode); const Operator* TruncateInt64ToInt32(); + const Operator* RoundInt32ToFloat32(); const Operator* RoundInt64ToFloat32(); const Operator* RoundInt64ToFloat64(); + const Operator* RoundUint32ToFloat32(); const Operator* RoundUint64ToFloat32(); const Operator* RoundUint64ToFloat64(); @@ -303,9 +313,12 @@ class MachineOperatorBuilder final : public ZoneObject { // store [base + index], value const Operator* Store(StoreRepresentation rep); + const Operator* StackSlot(MachineRepresentation rep); + // Access to the machine stack. const Operator* LoadStackPointer(); const Operator* LoadFramePointer(); + const Operator* LoadParentFramePointer(); // checked-load heap, index, length const Operator* CheckedLoad(CheckedLoadRepresentation); |