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); |
} |