Index: src/x64/full-codegen-x64.cc |
diff --git a/src/x64/full-codegen-x64.cc b/src/x64/full-codegen-x64.cc |
index 7bb185076c3214904cb9b98883e9aa577e4fde9f..475080553ace031321b956c37ebef602a420308e 100644 |
--- a/src/x64/full-codegen-x64.cc |
+++ b/src/x64/full-codegen-x64.cc |
@@ -2976,8 +2976,11 @@ void FullCodeGenerator::EmitIsStringWrapperSafeForDefaultValueOf( |
// rbx: descriptor array. |
// rcx: valid entries in the descriptor array. |
// Calculate the end of the descriptor array. |
- __ imull(rcx, rcx, Immediate(DescriptorArray::kDescriptorSize)); |
- __ leal(rcx, Operand(r8, rcx, times_4, DescriptorArray::kFirstOffset)); |
+ __ imulp(rcx, rcx, Immediate(DescriptorArray::kDescriptorSize)); |
+ SmiIndex index = masm_->SmiToIndex(rdx, rcx, kPointerSizeLog2); |
+ __ leap(rcx, |
+ Operand( |
+ r8, index.reg, index.scale, DescriptorArray::kFirstOffset)); |
// Calculate location of the first key name. |
__ addp(r8, Immediate(DescriptorArray::kFirstOffset)); |
// Loop through all the keys in the descriptor array. If one of these is the |