Index: src/ia32/macro-assembler-ia32.h |
diff --git a/src/ia32/macro-assembler-ia32.h b/src/ia32/macro-assembler-ia32.h |
index d9c83b8be742018082b229cdeca7d64f0add1d35..6a1d7ef68382f376ae1d5c1879e9118f78e9963f 100644 |
--- a/src/ia32/macro-assembler-ia32.h |
+++ b/src/ia32/macro-assembler-ia32.h |
@@ -495,7 +495,7 @@ class MacroAssembler: public Assembler { |
template<typename Field> |
void DecodeField(Register reg) { |
static const int shift = Field::kShift; |
- static const int mask = Field::kMask >> Field::kShift; |
+ static const int mask = (Field::kMask >> Field::kShift) << kSmiTagSize; |
sar(reg, shift); |
and_(reg, Immediate(mask)); |
} |