| Index: src/compiler/machine-operator.h
 | 
| diff --git a/src/compiler/machine-operator.h b/src/compiler/machine-operator.h
 | 
| index 2c87189e98eb86cee9f245ebe4ed430b98420913..f717729dbcb9b46c20bc5f3874f0389a74f0a580 100644
 | 
| --- a/src/compiler/machine-operator.h
 | 
| +++ b/src/compiler/machine-operator.h
 | 
| @@ -60,17 +60,21 @@ class MachineOperatorBuilder FINAL : public ZoneObject {
 | 
|   public:
 | 
|    // Flags that specify which operations are available. This is useful
 | 
|    // for operations that are unsupported by some back-ends.
 | 
| -  enum class Flag : unsigned {
 | 
| -    kNoFlags = 0,
 | 
| -    kFloat64Floor = 1 << 0,
 | 
| -    kFloat64Ceil = 1 << 1,
 | 
| -    kFloat64RoundTruncate = 1 << 2,
 | 
| -    kFloat64RoundTiesAway = 1 << 3
 | 
| +  enum Flag {
 | 
| +    kNoFlags = 0u,
 | 
| +    kFloat64Floor = 1u << 0,
 | 
| +    kFloat64Ceil = 1u << 1,
 | 
| +    kFloat64RoundTruncate = 1u << 2,
 | 
| +    kFloat64RoundTiesAway = 1u << 3,
 | 
| +    kInt32DivIsSafe = 1u << 4,
 | 
| +    kInt32ModIsSafe = 1u << 5,
 | 
| +    kUint32DivIsSafe = 1u << 6,
 | 
| +    kUint32ModIsSafe = 1u << 7
 | 
|    };
 | 
|    typedef base::Flags<Flag, unsigned> Flags;
 | 
|  
 | 
|    explicit MachineOperatorBuilder(MachineType word = kMachPtr,
 | 
| -                                  Flags supportedOperators = Flag::kNoFlags);
 | 
| +                                  Flags supportedOperators = kNoFlags);
 | 
|  
 | 
|    const Operator* Word32And();
 | 
|    const Operator* Word32Or();
 | 
| @@ -104,6 +108,10 @@ class MachineOperatorBuilder FINAL : public ZoneObject {
 | 
|    const Operator* Uint32LessThan();
 | 
|    const Operator* Uint32LessThanOrEqual();
 | 
|    const Operator* Uint32Mod();
 | 
| +  bool Int32DivIsSafe() const { return flags_ & kInt32DivIsSafe; }
 | 
| +  bool Int32ModIsSafe() const { return flags_ & kInt32ModIsSafe; }
 | 
| +  bool Uint32DivIsSafe() const { return flags_ & kUint32DivIsSafe; }
 | 
| +  bool Uint32ModIsSafe() const { return flags_ & kUint32ModIsSafe; }
 | 
|  
 | 
|    const Operator* Int64Add();
 | 
|    const Operator* Int64Sub();
 | 
| @@ -153,14 +161,10 @@ class MachineOperatorBuilder FINAL : public ZoneObject {
 | 
|    const Operator* Float64Ceil();
 | 
|    const Operator* Float64RoundTruncate();
 | 
|    const Operator* Float64RoundTiesAway();
 | 
| -  bool HasFloat64Floor() { return flags_ & Flag::kFloat64Floor; }
 | 
| -  bool HasFloat64Ceil() { return flags_ & Flag::kFloat64Ceil; }
 | 
| -  bool HasFloat64RoundTruncate() {
 | 
| -    return flags_ & Flag::kFloat64RoundTruncate;
 | 
| -  }
 | 
| -  bool HasFloat64RoundTiesAway() {
 | 
| -    return flags_ & Flag::kFloat64RoundTiesAway;
 | 
| -  }
 | 
| +  bool HasFloat64Floor() { return flags_ & kFloat64Floor; }
 | 
| +  bool HasFloat64Ceil() { return flags_ & kFloat64Ceil; }
 | 
| +  bool HasFloat64RoundTruncate() { return flags_ & kFloat64RoundTruncate; }
 | 
| +  bool HasFloat64RoundTiesAway() { return flags_ & kFloat64RoundTiesAway; }
 | 
|  
 | 
|    // load [base + index]
 | 
|    const Operator* Load(LoadRepresentation rep);
 | 
| 
 |