| Index: src/code-stubs.h
 | 
| diff --git a/src/code-stubs.h b/src/code-stubs.h
 | 
| index eb80859ccb1eb6900b6dccc89eb902c83465348c..5b804d60bc99d82ee3bd60cc63d14ca225eecb39 100644
 | 
| --- a/src/code-stubs.h
 | 
| +++ b/src/code-stubs.h
 | 
| @@ -72,6 +72,7 @@ namespace internal {
 | 
|    V(ArgumentsAccess)                     \
 | 
|    V(RegExpConstructResult)               \
 | 
|    V(NumberToString)                      \
 | 
| +  V(DoubleToI)                           \
 | 
|    V(CEntry)                              \
 | 
|    V(JSEntry)                             \
 | 
|    V(KeyedLoadElement)                    \
 | 
| @@ -1766,6 +1767,60 @@ class KeyedLoadDictionaryElementStub : public PlatformCodeStub {
 | 
|  };
 | 
|  
 | 
|  
 | 
| +class DoubleToIStub : public PlatformCodeStub {
 | 
| + public:
 | 
| +  DoubleToIStub(Register source,
 | 
| +                Register destination,
 | 
| +                int offset,
 | 
| +                bool is_truncating) : bit_field_(0) {
 | 
| +    bit_field_ = SourceRegisterBits::encode(source.code_) |
 | 
| +      DestinationRegisterBits::encode(destination.code_) |
 | 
| +      OffsetBits::encode(offset) |
 | 
| +      IsTruncatingBits::encode(is_truncating);
 | 
| +  }
 | 
| +
 | 
| +  Register source() {
 | 
| +    Register result = { SourceRegisterBits::decode(bit_field_) };
 | 
| +    return result;
 | 
| +  }
 | 
| +
 | 
| +  Register destination() {
 | 
| +    Register result = { DestinationRegisterBits::decode(bit_field_) };
 | 
| +    return result;
 | 
| +  }
 | 
| +
 | 
| +  bool is_truncating() {
 | 
| +    return IsTruncatingBits::decode(bit_field_);
 | 
| +  }
 | 
| +
 | 
| +  int offset() {
 | 
| +    return OffsetBits::decode(bit_field_);
 | 
| +  }
 | 
| +
 | 
| +  void Generate(MacroAssembler* masm);
 | 
| +
 | 
| + private:
 | 
| +  static const int kBitsPerRegisterNumber = 6;
 | 
| +  STATIC_ASSERT((1L << kBitsPerRegisterNumber) >= Register::kNumRegisters);
 | 
| +  class SourceRegisterBits:
 | 
| +      public BitField<int, 0, kBitsPerRegisterNumber> {};  // NOLINT
 | 
| +  class DestinationRegisterBits:
 | 
| +      public BitField<int, kBitsPerRegisterNumber,
 | 
| +        kBitsPerRegisterNumber> {};  // NOLINT
 | 
| +  class IsTruncatingBits:
 | 
| +      public BitField<bool, 2 * kBitsPerRegisterNumber, 1> {};  // NOLINT
 | 
| +  class OffsetBits:
 | 
| +      public BitField<int, 2 * kBitsPerRegisterNumber + 1, 3> {};  // NOLINT
 | 
| +
 | 
| +  Major MajorKey() { return DoubleToI; }
 | 
| +  int MinorKey() { return bit_field_; }
 | 
| +
 | 
| +  int bit_field_;
 | 
| +
 | 
| +  DISALLOW_COPY_AND_ASSIGN(DoubleToIStub);
 | 
| +};
 | 
| +
 | 
| +
 | 
|  class KeyedLoadFastElementStub : public HydrogenCodeStub {
 | 
|   public:
 | 
|    KeyedLoadFastElementStub(bool is_js_array, ElementsKind elements_kind) {
 | 
| 
 |