Chromium Code Reviews| Index: src/arm64/code-stubs-arm64.cc |
| diff --git a/src/arm64/code-stubs-arm64.cc b/src/arm64/code-stubs-arm64.cc |
| index 6dc564da4a9d434a7643b1a3102f5d1dd0cfb6cb..37902e7b910421accf19f4fb78c40b3a0f02fdb6 100644 |
| --- a/src/arm64/code-stubs-arm64.cc |
| +++ b/src/arm64/code-stubs-arm64.cc |
| @@ -2123,21 +2123,24 @@ void ArgumentsAccessStub::GenerateNewSloppyFast(MacroAssembler* masm) { |
| __ Ldr(args_offset, |
| ContextMemOperand(global_ctx, |
| - Context::SLOPPY_ARGUMENTS_BOILERPLATE_INDEX)); |
| + Context::SLOPPY_ARGUMENTS_MAP_INDEX)); |
| __ Ldr(aliased_args_offset, |
| ContextMemOperand(global_ctx, |
| - Context::ALIASED_ARGUMENTS_BOILERPLATE_INDEX)); |
| + Context::ALIASED_ARGUMENTS_MAP_INDEX)); |
| __ Cmp(mapped_params, 0); |
| __ CmovX(args_offset, aliased_args_offset, ne); |
| // Copy the JS object part. |
| - __ CopyFields(alloc_obj, args_offset, CPURegList(x10, x12, x13), |
| - JSObject::kHeaderSize / kPointerSize); |
| + __ Str(args_offset, FieldMemOperand(alloc_obj, JSObject::kMapOffset)); |
|
Igor Sheludko
2014/07/02 14:17:14
While you are here: args_offset and aliased_args_o
|
| + __ LoadRoot(x10, Heap::kEmptyFixedArrayRootIndex); |
| + __ Str(x10, FieldMemOperand(alloc_obj, JSObject::kPropertiesOffset)); |
| + __ Str(x10, FieldMemOperand(alloc_obj, JSObject::kElementsOffset)); |
| // Set up the callee in-object property. |
| STATIC_ASSERT(Heap::kArgumentsCalleeIndex == 1); |
| const int kCalleeOffset = JSObject::kHeaderSize + |
| Heap::kArgumentsCalleeIndex * kPointerSize; |
| + __ AssertNotSmi(function); |
| __ Str(function, FieldMemOperand(alloc_obj, kCalleeOffset)); |
| // Use the length and set that as an in-object property. |
| @@ -2344,7 +2347,7 @@ void ArgumentsAccessStub::GenerateNewStrict(MacroAssembler* masm) { |
| GlobalObject::kNativeContextOffset)); |
| __ Ldr(args_offset, |
| ContextMemOperand(global_ctx, |
| - Context::STRICT_ARGUMENTS_BOILERPLATE_INDEX)); |
| + Context::STRICT_ARGUMENTS_MAP_INDEX)); |
| // x0 alloc_obj pointer to allocated objects: parameter array and |
| // arguments object |
| @@ -2353,10 +2356,10 @@ void ArgumentsAccessStub::GenerateNewStrict(MacroAssembler* masm) { |
| // x3 function function pointer |
| // x4 args_offset offset to arguments boilerplate |
| // x13 param_count number of parameters passed to function |
| - |
| - // Copy the JS object part. |
| - __ CopyFields(alloc_obj, args_offset, CPURegList(x5, x6, x7), |
| - JSObject::kHeaderSize / kPointerSize); |
| + __ Str(args_offset, FieldMemOperand(alloc_obj, JSObject::kMapOffset)); |
|
Igor Sheludko
2014/07/02 14:17:14
Same here: strict_args_map + outdated comment abou
|
| + __ LoadRoot(x5, Heap::kEmptyFixedArrayRootIndex); |
| + __ Str(x5, FieldMemOperand(alloc_obj, JSObject::kPropertiesOffset)); |
| + __ Str(x5, FieldMemOperand(alloc_obj, JSObject::kElementsOffset)); |
| // Set the smi-tagged length as an in-object property. |
| STATIC_ASSERT(Heap::kArgumentsLengthIndex == 0); |