Index: src/arm/macro-assembler-arm.h |
diff --git a/src/arm/macro-assembler-arm.h b/src/arm/macro-assembler-arm.h |
index de705edaa3fb12072e663d3b002c38e32d9e5bd6..ba6f82571d6bbf690853e8c72581c68aa9268f76 100644 |
--- a/src/arm/macro-assembler-arm.h |
+++ b/src/arm/macro-assembler-arm.h |
@@ -1357,7 +1357,7 @@ class MacroAssembler: public Assembler { |
template<typename Field> |
void DecodeField(Register reg) { |
static const int shift = Field::kShift; |
- static const int mask = Field::kMask >> shift; |
+ static const int mask = (Field::kMask >> shift) << kSmiTagSize; |
mov(reg, Operand(reg, LSR, shift)); |
and_(reg, reg, Operand(mask)); |
} |