| Index: src/code-stub-assembler.cc
|
| diff --git a/src/code-stub-assembler.cc b/src/code-stub-assembler.cc
|
| index 9307b87b4bd756e12bedfac35bf5bd65d85acdb2..e45e66d40069f63bf06c1ee365b9f3bc47253de5 100644
|
| --- a/src/code-stub-assembler.cc
|
| +++ b/src/code-stub-assembler.cc
|
| @@ -1565,13 +1565,16 @@ compiler::Node* CodeStubAssembler::ElementOffsetFromIndex(Node* index_node,
|
| if (constant_index) {
|
| return IntPtrConstant(base_size + element_size * index);
|
| }
|
| + if (Is64() && mode == INTEGER_PARAMETERS) {
|
| + index_node = ChangeInt32ToInt64(index_node);
|
| + }
|
| if (base_size == 0) {
|
| return (element_size_shift >= 0)
|
| ? WordShl(index_node, IntPtrConstant(element_size_shift))
|
| : WordShr(index_node, IntPtrConstant(-element_size_shift));
|
| }
|
| return IntPtrAdd(
|
| - Int32Constant(base_size),
|
| + IntPtrConstant(base_size),
|
| (element_size_shift >= 0)
|
| ? WordShl(index_node, IntPtrConstant(element_size_shift))
|
| : WordShr(index_node, IntPtrConstant(-element_size_shift)));
|
|
|