| Index: src/arm/builtins-arm.cc
|
| diff --git a/src/arm/builtins-arm.cc b/src/arm/builtins-arm.cc
|
| index e6d652564d6c6db48a4f848e6daca92ef8e136ef..a10ba25e1ad994f19533aab135287a0ba2cdceb2 100644
|
| --- a/src/arm/builtins-arm.cc
|
| +++ b/src/arm/builtins-arm.cc
|
| @@ -310,6 +310,7 @@ static void AllocateJSArray(MacroAssembler* masm,
|
| // construct call and normal call.
|
| static void ArrayNativeCode(MacroAssembler* masm,
|
| Label* call_generic_code) {
|
| + Counters* counters = masm->isolate()->counters();
|
| Label argc_one_or_more, argc_two_or_more;
|
|
|
| // Check for array construction with zero arguments or one.
|
| @@ -325,7 +326,7 @@ static void ArrayNativeCode(MacroAssembler* masm,
|
| r5,
|
| JSArray::kPreallocatedArrayElements,
|
| call_generic_code);
|
| - __ IncrementCounter(COUNTERS->array_function_native(), 1, r3, r4);
|
| + __ IncrementCounter(counters->array_function_native(), 1, r3, r4);
|
| // Setup return value, remove receiver from stack and return.
|
| __ mov(r0, r2);
|
| __ add(sp, sp, Operand(kPointerSize));
|
| @@ -361,7 +362,7 @@ static void ArrayNativeCode(MacroAssembler* masm,
|
| r7,
|
| true,
|
| call_generic_code);
|
| - __ IncrementCounter(COUNTERS->array_function_native(), 1, r2, r4);
|
| + __ IncrementCounter(counters->array_function_native(), 1, r2, r4);
|
| // Setup return value, remove receiver and argument from stack and return.
|
| __ mov(r0, r3);
|
| __ add(sp, sp, Operand(2 * kPointerSize));
|
| @@ -385,7 +386,7 @@ static void ArrayNativeCode(MacroAssembler* masm,
|
| r7,
|
| false,
|
| call_generic_code);
|
| - __ IncrementCounter(COUNTERS->array_function_native(), 1, r2, r6);
|
| + __ IncrementCounter(counters->array_function_native(), 1, r2, r6);
|
|
|
| // Fill arguments as array elements. Copy from the top of the stack (last
|
| // element) to the array backing store filling it backwards. Note:
|
| @@ -490,7 +491,8 @@ void Builtins::Generate_StringConstructCode(MacroAssembler* masm) {
|
| // -- sp[(argc - n - 1) * 4] : arg[n] (zero based)
|
| // -- sp[argc * 4] : receiver
|
| // -----------------------------------
|
| - __ IncrementCounter(COUNTERS->string_ctor_calls(), 1, r2, r3);
|
| + Counters* counters = masm->isolate()->counters();
|
| + __ IncrementCounter(counters->string_ctor_calls(), 1, r2, r3);
|
|
|
| Register function = r1;
|
| if (FLAG_debug_code) {
|
| @@ -520,7 +522,7 @@ void Builtins::Generate_StringConstructCode(MacroAssembler* masm) {
|
| r5, // Scratch.
|
| false, // Is it a Smi?
|
| ¬_cached);
|
| - __ IncrementCounter(COUNTERS->string_ctor_cached_number(), 1, r3, r4);
|
| + __ IncrementCounter(counters->string_ctor_cached_number(), 1, r3, r4);
|
| __ bind(&argument_is_string);
|
|
|
| // ----------- S t a t e -------------
|
| @@ -574,13 +576,13 @@ void Builtins::Generate_StringConstructCode(MacroAssembler* masm) {
|
| __ tst(r3, Operand(kIsNotStringMask));
|
| __ b(ne, &convert_argument);
|
| __ mov(argument, r0);
|
| - __ IncrementCounter(COUNTERS->string_ctor_conversions(), 1, r3, r4);
|
| + __ IncrementCounter(counters->string_ctor_conversions(), 1, r3, r4);
|
| __ b(&argument_is_string);
|
|
|
| // Invoke the conversion builtin and put the result into r2.
|
| __ bind(&convert_argument);
|
| __ push(function); // Preserve the function.
|
| - __ IncrementCounter(COUNTERS->string_ctor_conversions(), 1, r3, r4);
|
| + __ IncrementCounter(counters->string_ctor_conversions(), 1, r3, r4);
|
| __ EnterInternalFrame();
|
| __ push(r0);
|
| __ InvokeBuiltin(Builtins::TO_STRING, CALL_JS);
|
| @@ -599,7 +601,7 @@ void Builtins::Generate_StringConstructCode(MacroAssembler* masm) {
|
| // At this point the argument is already a string. Call runtime to
|
| // create a string wrapper.
|
| __ bind(&gc_required);
|
| - __ IncrementCounter(COUNTERS->string_ctor_gc_required(), 1, r3, r4);
|
| + __ IncrementCounter(counters->string_ctor_gc_required(), 1, r3, r4);
|
| __ EnterInternalFrame();
|
| __ push(argument);
|
| __ CallRuntime(Runtime::kNewStringWrapper, 1);
|
| @@ -646,6 +648,8 @@ static void Generate_JSConstructStubHelper(MacroAssembler* masm,
|
| // Should never count constructions for api objects.
|
| ASSERT(!is_api_function || !count_constructions);
|
|
|
| + Isolate* isolate = masm->isolate();
|
| +
|
| // Enter a construct frame.
|
| __ EnterConstructFrame();
|
|
|
| @@ -661,7 +665,7 @@ static void Generate_JSConstructStubHelper(MacroAssembler* masm,
|
| Label undo_allocation;
|
| #ifdef ENABLE_DEBUGGER_SUPPORT
|
| ExternalReference debug_step_in_fp =
|
| - ExternalReference::debug_step_in_fp_address(masm->isolate());
|
| + ExternalReference::debug_step_in_fp_address(isolate);
|
| __ mov(r2, Operand(debug_step_in_fp));
|
| __ ldr(r2, MemOperand(r2));
|
| __ tst(r2, r2);
|
| @@ -908,8 +912,7 @@ static void Generate_JSConstructStubHelper(MacroAssembler* masm,
|
| if (is_api_function) {
|
| __ ldr(cp, FieldMemOperand(r1, JSFunction::kContextOffset));
|
| Handle<Code> code = Handle<Code>(
|
| - masm->isolate()->builtins()->builtin(
|
| - Builtins::HandleApiCallConstruct));
|
| + isolate->builtins()->builtin(Builtins::HandleApiCallConstruct));
|
| ParameterCount expected(0);
|
| __ InvokeCode(code, expected, expected,
|
| RelocInfo::CODE_TARGET, CALL_FUNCTION);
|
| @@ -966,7 +969,7 @@ static void Generate_JSConstructStubHelper(MacroAssembler* masm,
|
| __ LeaveConstructFrame();
|
| __ add(sp, sp, Operand(r1, LSL, kPointerSizeLog2 - 1));
|
| __ add(sp, sp, Operand(kPointerSize));
|
| - __ IncrementCounter(COUNTERS->constructed_objects(), 1, r1, r2);
|
| + __ IncrementCounter(isolate->counters()->constructed_objects(), 1, r1, r2);
|
| __ Jump(lr);
|
| }
|
|
|
|
|