Index: src/arm/stub-cache-arm.cc |
diff --git a/src/arm/stub-cache-arm.cc b/src/arm/stub-cache-arm.cc |
index 65eff8e109cb6c988142071f90fd19a017f72cd1..a770d160f028bc76314a2f0c24f517400f84fd74 100644 |
--- a/src/arm/stub-cache-arm.cc |
+++ b/src/arm/stub-cache-arm.cc |
@@ -229,6 +229,7 @@ void StubCompiler::GenerateLoadStringLength(MacroAssembler* masm, |
// Load length directly from the string. |
__ ldr(r0, FieldMemOperand(receiver, String::kLengthOffset)); |
+ __ mov(r0, Operand(r0, LSL, kSmiTagSize)); |
__ Ret(); |
// Check if the object is a JSValue wrapper. |
@@ -240,6 +241,7 @@ void StubCompiler::GenerateLoadStringLength(MacroAssembler* masm, |
__ ldr(scratch1, FieldMemOperand(receiver, JSValue::kValueOffset)); |
GenerateStringCheck(masm, scratch1, scratch2, scratch2, miss, miss); |
__ ldr(r0, FieldMemOperand(scratch1, String::kLengthOffset)); |
+ __ mov(r0, Operand(r0, LSL, kSmiTagSize)); |
__ Ret(); |
} |