| Index: src/x64/macro-assembler-x64.h | 
| diff --git a/src/x64/macro-assembler-x64.h b/src/x64/macro-assembler-x64.h | 
| index d9893d62109a7db7fe8e13958462a2cc26e79924..8f0d6724e0f9daa6e37713f27e4bd32b75f7c165 100644 | 
| --- a/src/x64/macro-assembler-x64.h | 
| +++ b/src/x64/macro-assembler-x64.h | 
| @@ -1011,11 +1011,10 @@ class MacroAssembler: public Assembler { | 
|  | 
| template<typename Field> | 
| void DecodeField(Register reg) { | 
| -    static const int shift = Field::kShift + kSmiShift; | 
| +    static const int shift = Field::kShift; | 
| static const int mask = Field::kMask >> Field::kShift; | 
| -    shrp(reg, Immediate(shift)); | 
| -    andp(reg, Immediate(mask)); | 
| -    shlp(reg, Immediate(kSmiShift)); | 
| +    shrl(reg, Immediate(shift)); | 
| +    andl(reg, Immediate(mask)); | 
| } | 
|  | 
| // Abort execution if argument is not a number, enabled via --debug-code. | 
|  |