| Index: src/x64/macro-assembler-x64.h | 
| diff --git a/src/x64/macro-assembler-x64.h b/src/x64/macro-assembler-x64.h | 
| index 9c8f550f34a77ca425c49b2f3c9b0ac9986c8b3d..5268fe2a2e961c1069c38380bb60e6f86f659585 100644 | 
| --- a/src/x64/macro-assembler-x64.h | 
| +++ b/src/x64/macro-assembler-x64.h | 
| @@ -948,6 +948,15 @@ class MacroAssembler: public Assembler { | 
| void LoadUint32(XMMRegister dst, Register src, XMMRegister scratch); | 
|  | 
| void LoadInstanceDescriptors(Register map, Register descriptors); | 
| +  void EnumLength(Register dst, Register map); | 
| + | 
| +  template<typename Field> | 
| +  void DecodeField(Register reg) { | 
| +    static const int full_shift = Field::kShift + kSmiShift; | 
| +    static const int low_mask = Field::kMask >> Field::kShift; | 
| +    shr(reg, Immediate(full_shift)); | 
| +    and_(reg, Immediate(low_mask)); | 
| +  } | 
|  | 
| // Abort execution if argument is not a number. Used in debug code. | 
| void AbortIfNotNumber(Register object); | 
|  |