Index: src/ia32/stub-cache-ia32.cc |
diff --git a/src/ia32/stub-cache-ia32.cc b/src/ia32/stub-cache-ia32.cc |
index c9f7a87c69146bdfa5427ccb6bc9e06a3336ed1e..bb8d2d341873fe12ca5006718cdb1dd21a9a0967 100644 |
--- a/src/ia32/stub-cache-ia32.cc |
+++ b/src/ia32/stub-cache-ia32.cc |
@@ -275,14 +275,13 @@ void StubCompiler::GenerateLoadGlobalFunctionPrototype(MacroAssembler* masm, |
void StubCompiler::GenerateDirectLoadGlobalFunctionPrototype( |
MacroAssembler* masm, int index, Register prototype, Label* miss) { |
- Isolate* isolate = masm->isolate(); |
// Check we're still in the same context. |
__ cmp(Operand(esi, Context::SlotOffset(Context::GLOBAL_INDEX)), |
- isolate->global()); |
+ masm->isolate()->global()); |
__ j(not_equal, miss); |
// Get the global function with the given index. |
JSFunction* function = |
- JSFunction::cast(isolate->global_context()->get(index)); |
+ JSFunction::cast(masm->isolate()->global_context()->get(index)); |
// Load its initial map. The global functions all have initial maps. |
__ Set(prototype, Immediate(Handle<Map>(function->initial_map()))); |
// Load the prototype from the initial map. |
@@ -400,7 +399,7 @@ static void PushInterceptorArguments(MacroAssembler* masm, |
JSObject* holder_obj) { |
__ push(name); |
InterceptorInfo* interceptor = holder_obj->GetNamedInterceptor(); |
- ASSERT(!HEAP->InNewSpace(interceptor)); |
+ ASSERT(!masm->isolate()->heap()->InNewSpace(interceptor)); |
Register scratch = name; |
__ mov(scratch, Immediate(Handle<Object>(interceptor))); |
__ push(scratch); |
@@ -486,7 +485,7 @@ static MaybeObject* GenerateFastApiCall(MacroAssembler* masm, |
__ mov(Operand(esp, 2 * kPointerSize), edi); |
Object* call_data = optimization.api_call_info()->data(); |
Handle<CallHandlerInfo> api_call_info_handle(optimization.api_call_info()); |
- if (HEAP->InNewSpace(call_data)) { |
+ if (masm->isolate()->heap()->InNewSpace(call_data)) { |
__ mov(ecx, api_call_info_handle); |
__ mov(ebx, FieldOperand(ecx, CallHandlerInfo::kDataOffset)); |
__ mov(Operand(esp, 3 * kPointerSize), ebx); |
@@ -580,7 +579,7 @@ class CallInterceptorCompiler BASE_EMBEDDED { |
name, |
holder, |
miss); |
- return HEAP->undefined_value(); // Success. |
+ return masm->isolate()->heap()->undefined_value(); // Success. |
} |
} |
@@ -679,7 +678,7 @@ class CallInterceptorCompiler BASE_EMBEDDED { |
FreeSpaceForFastApiCall(masm, scratch1); |
} |
- return HEAP->undefined_value(); // Success. |
+ return masm->isolate()->heap()->undefined_value(); // Success. |
} |
void CompileRegular(MacroAssembler* masm, |
@@ -916,6 +915,9 @@ Register StubCompiler::CheckPrototypes(JSObject* object, |
ASSERT(!scratch1.is(object_reg) && !scratch1.is(holder_reg)); |
ASSERT(!scratch2.is(object_reg) && !scratch2.is(holder_reg) |
&& !scratch2.is(scratch1)); |
+ |
+ Heap* heap = isolate()->heap(); |
+ |
// Keep track of the current object in register reg. |
Register reg = object_reg; |
JSObject* current = object; |
@@ -940,7 +942,7 @@ Register StubCompiler::CheckPrototypes(JSObject* object, |
!current->IsJSGlobalObject() && |
!current->IsJSGlobalProxy()) { |
if (!name->IsSymbol()) { |
- MaybeObject* maybe_lookup_result = HEAP->LookupSymbol(name); |
+ MaybeObject* maybe_lookup_result = heap->LookupSymbol(name); |
Object* lookup_result = NULL; // Initialization to please compiler. |
if (!maybe_lookup_result->ToObject(&lookup_result)) { |
set_failure(Failure::cast(maybe_lookup_result)); |
@@ -960,7 +962,7 @@ Register StubCompiler::CheckPrototypes(JSObject* object, |
__ mov(scratch1, FieldOperand(reg, HeapObject::kMapOffset)); |
reg = holder_reg; // from now the object is in holder_reg |
__ mov(reg, FieldOperand(scratch1, Map::kPrototypeOffset)); |
- } else if (HEAP->InNewSpace(prototype)) { |
+ } else if (heap->InNewSpace(prototype)) { |
// Get the map of the current object. |
__ mov(scratch1, FieldOperand(reg, HeapObject::kMapOffset)); |
__ cmp(Operand(scratch1), Immediate(Handle<Map>(current->map()))); |
@@ -1090,7 +1092,7 @@ MaybeObject* StubCompiler::GenerateLoadCallback(JSObject* object, |
ASSERT(!scratch2.is(reg)); |
__ push(reg); // holder |
// Push data from AccessorInfo. |
- if (HEAP->InNewSpace(callback_handle->data())) { |
+ if (isolate()->heap()->InNewSpace(callback_handle->data())) { |
__ mov(scratch1, Immediate(callback_handle)); |
__ push(FieldOperand(scratch1, AccessorInfo::kDataOffset)); |
} else { |
@@ -1286,7 +1288,7 @@ void StubCompiler::GenerateLoadInterceptor(JSObject* object, |
ExternalReference ref = |
ExternalReference(IC_Utility(IC::kLoadPropertyWithInterceptorForLoad), |
- masm()->isolate()); |
+ isolate()); |
__ TailCallExternalReference(ref, 5, 1); |
} |
} |
@@ -1337,7 +1339,7 @@ void CallStubCompiler::GenerateLoadFunctionFromCell(JSGlobalPropertyCell* cell, |
} |
// Check that the cell contains the same function. |
- if (HEAP->InNewSpace(function)) { |
+ if (isolate()->heap()->InNewSpace(function)) { |
// We can't embed a pointer to a function in new space so we have |
// to verify that the shared function info is unchanged. This has |
// the nice side effect that multiple closures based on the same |
@@ -1361,7 +1363,7 @@ void CallStubCompiler::GenerateLoadFunctionFromCell(JSGlobalPropertyCell* cell, |
MaybeObject* CallStubCompiler::GenerateMissBranch() { |
MaybeObject* maybe_obj = |
- masm()->isolate()->stub_cache()->ComputeCallMiss(arguments().immediate(), |
+ isolate()->stub_cache()->ComputeCallMiss(arguments().immediate(), |
kind_); |
Object* obj; |
if (!maybe_obj->ToObject(&obj)) return maybe_obj; |
@@ -1440,7 +1442,9 @@ MaybeObject* CallStubCompiler::CompileArrayPushCall(Object* object, |
// ----------------------------------- |
// If object is not an array, bail out to regular call. |
- if (!object->IsJSArray() || cell != NULL) return HEAP->undefined_value(); |
+ if (!object->IsJSArray() || cell != NULL) { |
+ return isolate()->heap()->undefined_value(); |
+ } |
Label miss; |
@@ -1518,11 +1522,10 @@ MaybeObject* CallStubCompiler::CompileArrayPushCall(Object* object, |
__ jmp(&call_builtin); |
} |
- Isolate* isolate = masm()->isolate(); |
ExternalReference new_space_allocation_top = |
- ExternalReference::new_space_allocation_top_address(isolate); |
+ ExternalReference::new_space_allocation_top_address(isolate()); |
ExternalReference new_space_allocation_limit = |
- ExternalReference::new_space_allocation_limit_address(isolate); |
+ ExternalReference::new_space_allocation_limit_address(isolate()); |
const int kAllocationDelta = 4; |
// Load top. |
@@ -1564,7 +1567,7 @@ MaybeObject* CallStubCompiler::CompileArrayPushCall(Object* object, |
__ bind(&call_builtin); |
__ TailCallExternalReference( |
- ExternalReference(Builtins::c_ArrayPush, masm()->isolate()), |
+ ExternalReference(Builtins::c_ArrayPush, isolate()), |
argc + 1, |
1); |
} |
@@ -1592,7 +1595,9 @@ MaybeObject* CallStubCompiler::CompileArrayPopCall(Object* object, |
// ----------------------------------- |
// If object is not an array, bail out to regular call. |
- if (!object->IsJSArray() || cell != NULL) return HEAP->undefined_value(); |
+ if (!object->IsJSArray() || cell != NULL) { |
+ return isolate()->heap()->undefined_value(); |
+ } |
Label miss, return_undefined, call_builtin; |
@@ -1647,7 +1652,7 @@ MaybeObject* CallStubCompiler::CompileArrayPopCall(Object* object, |
__ bind(&call_builtin); |
__ TailCallExternalReference( |
- ExternalReference(Builtins::c_ArrayPop, masm()->isolate()), |
+ ExternalReference(Builtins::c_ArrayPop, isolate()), |
argc + 1, |
1); |
@@ -1676,7 +1681,7 @@ MaybeObject* CallStubCompiler::CompileStringCharCodeAtCall( |
// If object is not a string, bail out to regular call. |
if (!object->IsString() || cell != NULL) { |
- return masm()->isolate()->heap()->undefined_value(); |
+ return isolate()->heap()->undefined_value(); |
} |
const int argc = arguments().immediate(); |
@@ -1759,7 +1764,9 @@ MaybeObject* CallStubCompiler::CompileStringCharAtCall( |
// ----------------------------------- |
// If object is not a string, bail out to regular call. |
- if (!object->IsString() || cell != NULL) return HEAP->undefined_value(); |
+ if (!object->IsString() || cell != NULL) { |
+ return isolate()->heap()->undefined_value(); |
+ } |
const int argc = arguments().immediate(); |
@@ -1846,7 +1853,9 @@ MaybeObject* CallStubCompiler::CompileStringFromCharCodeCall( |
// If the object is not a JSObject or we got an unexpected number of |
// arguments, bail out to the regular call. |
- if (!object->IsJSObject() || argc != 1) return HEAP->undefined_value(); |
+ if (!object->IsJSObject() || argc != 1) { |
+ return isolate()->heap()->undefined_value(); |
+ } |
Label miss; |
GenerateNameCheck(name, &miss); |
@@ -1914,15 +1923,19 @@ MaybeObject* CallStubCompiler::CompileMathFloorCall(Object* object, |
// -- esp[(argc + 1) * 4] : receiver |
// ----------------------------------- |
- if (masm()->isolate()->cpu_features()->IsSupported(SSE2)) |
- return HEAP->undefined_value(); |
+ if (isolate()->cpu_features()->IsSupported(SSE2)) { |
+ return isolate()->heap()->undefined_value(); |
+ } |
+ |
CpuFeatures::Scope use_sse2(SSE2); |
const int argc = arguments().immediate(); |
// If the object is not a JSObject or we got an unexpected number of |
// arguments, bail out to the regular call. |
- if (!object->IsJSObject() || argc != 1) return HEAP->undefined_value(); |
+ if (!object->IsJSObject() || argc != 1) { |
+ return isolate()->heap()->undefined_value(); |
+ } |
Label miss; |
GenerateNameCheck(name, &miss); |
@@ -2044,7 +2057,9 @@ MaybeObject* CallStubCompiler::CompileMathAbsCall(Object* object, |
// If the object is not a JSObject or we got an unexpected number of |
// arguments, bail out to the regular call. |
- if (!object->IsJSObject() || argc != 1) return HEAP->undefined_value(); |
+ if (!object->IsJSObject() || argc != 1) { |
+ return isolate()->heap()->undefined_value(); |
+ } |
Label miss; |
GenerateNameCheck(name, &miss); |
@@ -2140,11 +2155,12 @@ MaybeObject* CallStubCompiler::CompileFastApiCall( |
ASSERT(optimization.is_simple_api_call()); |
// Bail out if object is a global object as we don't want to |
// repatch it to global receiver. |
- if (object->IsGlobalObject()) return HEAP->undefined_value(); |
- if (cell != NULL) return HEAP->undefined_value(); |
+ Heap* heap = isolate()->heap(); |
+ if (object->IsGlobalObject()) return heap->undefined_value(); |
+ if (cell != NULL) return heap->undefined_value(); |
int depth = optimization.GetPrototypeDepthOfExpectedType( |
JSObject::cast(object), holder); |
- if (depth == kInvalidProtoDepth) return HEAP->undefined_value(); |
+ if (depth == kInvalidProtoDepth) return heap->undefined_value(); |
Label miss, miss_before_stack_reserved; |
@@ -2158,7 +2174,7 @@ MaybeObject* CallStubCompiler::CompileFastApiCall( |
__ test(edx, Immediate(kSmiTagMask)); |
__ j(zero, &miss_before_stack_reserved, not_taken); |
- Counters* counters = masm()->isolate()->counters(); |
+ Counters* counters = isolate()->counters(); |
__ IncrementCounter(counters->call_const(), 1); |
__ IncrementCounter(counters->call_const_fast_api(), 1); |
@@ -2234,7 +2250,7 @@ MaybeObject* CallStubCompiler::CompileCallConstant(Object* object, |
SharedFunctionInfo* function_info = function->shared(); |
switch (check) { |
case RECEIVER_MAP_CHECK: |
- __ IncrementCounter(masm()->isolate()->counters()->call_const(), 1); |
+ __ IncrementCounter(isolate()->counters()->call_const(), 1); |
// Check that the maps haven't changed. |
CheckPrototypes(JSObject::cast(object), edx, holder, |
@@ -2434,7 +2450,7 @@ MaybeObject* CallStubCompiler::CompileCallGlobal(JSObject* object, |
__ mov(esi, FieldOperand(edi, JSFunction::kContextOffset)); |
// Jump to the cached code (tail call). |
- Counters* counters = masm()->isolate()->counters(); |
+ Counters* counters = isolate()->counters(); |
__ IncrementCounter(counters->call_global_inline(), 1); |
ASSERT(function->is_compiled()); |
ParameterCount expected(function->shared()->formal_parameter_count()); |
@@ -2484,7 +2500,7 @@ MaybeObject* StoreStubCompiler::CompileStoreField(JSObject* object, |
// Handle store cache miss. |
__ bind(&miss); |
__ mov(ecx, Immediate(Handle<String>(name))); // restore name |
- Handle<Code> ic = masm()->isolate()->builtins()->StoreIC_Miss(); |
+ Handle<Code> ic = isolate()->builtins()->StoreIC_Miss(); |
__ jmp(ic, RelocInfo::CODE_TARGET); |
// Return the generated code. |
@@ -2529,14 +2545,13 @@ MaybeObject* StoreStubCompiler::CompileStoreCallback(JSObject* object, |
__ push(ebx); // restore return address |
// Do tail-call to the runtime system. |
- Isolate* isolate = masm()->isolate(); |
ExternalReference store_callback_property = |
- ExternalReference(IC_Utility(IC::kStoreCallbackProperty), isolate); |
+ ExternalReference(IC_Utility(IC::kStoreCallbackProperty), isolate()); |
__ TailCallExternalReference(store_callback_property, 4, 1); |
// Handle store cache miss. |
__ bind(&miss); |
- Handle<Code> ic = isolate->builtins()->StoreIC_Miss(); |
+ Handle<Code> ic = isolate()->builtins()->StoreIC_Miss(); |
__ jmp(ic, RelocInfo::CODE_TARGET); |
// Return the generated code. |
@@ -2580,14 +2595,13 @@ MaybeObject* StoreStubCompiler::CompileStoreInterceptor(JSObject* receiver, |
__ push(ebx); // restore return address |
// Do tail-call to the runtime system. |
- Isolate* isolate = masm()->isolate(); |
ExternalReference store_ic_property = |
- ExternalReference(IC_Utility(IC::kStoreInterceptorProperty), isolate); |
+ ExternalReference(IC_Utility(IC::kStoreInterceptorProperty), isolate()); |
__ TailCallExternalReference(store_ic_property, 4, 1); |
// Handle store cache miss. |
__ bind(&miss); |
- Handle<Code> ic = isolate->builtins()->StoreIC_Miss(); |
+ Handle<Code> ic = isolate()->builtins()->StoreIC_Miss(); |
__ jmp(ic, RelocInfo::CODE_TARGET); |
// Return the generated code. |
@@ -2630,14 +2644,14 @@ MaybeObject* StoreStubCompiler::CompileStoreGlobal(GlobalObject* object, |
__ mov(cell_operand, eax); |
// Return the value (register eax). |
- Counters* counters = masm()->isolate()->counters(); |
+ Counters* counters = isolate()->counters(); |
__ IncrementCounter(counters->named_store_global_inline(), 1); |
__ ret(0); |
// Handle store cache miss. |
__ bind(&miss); |
__ IncrementCounter(counters->named_store_global_inline_miss(), 1); |
- Handle<Code> ic = masm()->isolate()->builtins()->StoreIC_Miss(); |
+ Handle<Code> ic = isolate()->builtins()->StoreIC_Miss(); |
__ jmp(ic, RelocInfo::CODE_TARGET); |
// Return the generated code. |
@@ -2657,7 +2671,7 @@ MaybeObject* KeyedStoreStubCompiler::CompileStoreField(JSObject* object, |
// ----------------------------------- |
Label miss; |
- Counters* counters = masm()->isolate()->counters(); |
+ Counters* counters = isolate()->counters(); |
__ IncrementCounter(counters->keyed_store_field(), 1); |
// Check that the name has not changed. |
@@ -2675,7 +2689,7 @@ MaybeObject* KeyedStoreStubCompiler::CompileStoreField(JSObject* object, |
// Handle store cache miss. |
__ bind(&miss); |
__ DecrementCounter(counters->keyed_store_field(), 1); |
- Handle<Code> ic = masm()->isolate()->builtins()->KeyedStoreIC_Miss(); |
+ Handle<Code> ic = isolate()->builtins()->KeyedStoreIC_Miss(); |
__ jmp(ic, RelocInfo::CODE_TARGET); |
// Return the generated code. |
@@ -2732,7 +2746,7 @@ MaybeObject* KeyedStoreStubCompiler::CompileStoreSpecialized( |
// Handle store cache miss. |
__ bind(&miss); |
- Handle<Code> ic = masm()->isolate()->builtins()->KeyedStoreIC_Miss(); |
+ Handle<Code> ic = isolate()->builtins()->KeyedStoreIC_Miss(); |
__ jmp(ic, RelocInfo::CODE_TARGET); |
// Return the generated code. |
@@ -2777,14 +2791,14 @@ MaybeObject* LoadStubCompiler::CompileLoadNonexistent(String* name, |
// Return undefined if maps of the full prototype chain are still the |
// same and no global property with this name contains a value. |
- __ mov(eax, FACTORY->undefined_value()); |
+ __ mov(eax, isolate()->factory()->undefined_value()); |
__ ret(0); |
__ bind(&miss); |
GenerateLoadMiss(masm(), Code::LOAD_IC); |
// Return the generated code. |
- return GetCode(NONEXISTENT, HEAP->empty_string()); |
+ return GetCode(NONEXISTENT, isolate()->heap()->empty_string()); |
} |
@@ -2928,7 +2942,7 @@ MaybeObject* LoadStubCompiler::CompileLoadGlobal(JSObject* object, |
__ Check(not_equal, "DontDelete cells can't contain the hole"); |
} |
- Counters* counters = masm()->isolate()->counters(); |
+ Counters* counters = isolate()->counters(); |
__ IncrementCounter(counters->named_load_global_stub(), 1); |
__ mov(eax, ebx); |
__ ret(0); |
@@ -2953,7 +2967,7 @@ MaybeObject* KeyedLoadStubCompiler::CompileLoadField(String* name, |
// ----------------------------------- |
Label miss; |
- Counters* counters = masm()->isolate()->counters(); |
+ Counters* counters = isolate()->counters(); |
__ IncrementCounter(counters->keyed_load_field(), 1); |
// Check that the name has not changed. |
@@ -2983,7 +2997,7 @@ MaybeObject* KeyedLoadStubCompiler::CompileLoadCallback( |
// ----------------------------------- |
Label miss; |
- Counters* counters = masm()->isolate()->counters(); |
+ Counters* counters = isolate()->counters(); |
__ IncrementCounter(counters->keyed_load_callback(), 1); |
// Check that the name has not changed. |
@@ -3018,7 +3032,7 @@ MaybeObject* KeyedLoadStubCompiler::CompileLoadConstant(String* name, |
// ----------------------------------- |
Label miss; |
- Counters* counters = masm()->isolate()->counters(); |
+ Counters* counters = isolate()->counters(); |
__ IncrementCounter(counters->keyed_load_constant_function(), 1); |
// Check that the name has not changed. |
@@ -3046,7 +3060,7 @@ MaybeObject* KeyedLoadStubCompiler::CompileLoadInterceptor(JSObject* receiver, |
// ----------------------------------- |
Label miss; |
- Counters* counters = masm()->isolate()->counters(); |
+ Counters* counters = isolate()->counters(); |
__ IncrementCounter(counters->keyed_load_interceptor(), 1); |
// Check that the name has not changed. |
@@ -3082,7 +3096,7 @@ MaybeObject* KeyedLoadStubCompiler::CompileLoadArrayLength(String* name) { |
// ----------------------------------- |
Label miss; |
- Counters* counters = masm()->isolate()->counters(); |
+ Counters* counters = isolate()->counters(); |
__ IncrementCounter(counters->keyed_load_array_length(), 1); |
// Check that the name has not changed. |
@@ -3107,7 +3121,7 @@ MaybeObject* KeyedLoadStubCompiler::CompileLoadStringLength(String* name) { |
// ----------------------------------- |
Label miss; |
- Counters* counters = masm()->isolate()->counters(); |
+ Counters* counters = isolate()->counters(); |
__ IncrementCounter(counters->keyed_load_string_length(), 1); |
// Check that the name has not changed. |
@@ -3132,7 +3146,7 @@ MaybeObject* KeyedLoadStubCompiler::CompileLoadFunctionPrototype(String* name) { |
// ----------------------------------- |
Label miss; |
- Counters* counters = masm()->isolate()->counters(); |
+ Counters* counters = isolate()->counters(); |
__ IncrementCounter(counters->keyed_load_function_prototype(), 1); |
// Check that the name has not changed. |
@@ -3281,7 +3295,7 @@ MaybeObject* ConstructStubCompiler::CompileConstructStub(JSFunction* function) { |
int arg_number = shared->GetThisPropertyAssignmentArgument(i); |
__ mov(ebx, edi); |
__ cmp(eax, arg_number); |
- if (masm()->isolate()->cpu_features()->IsSupported(CMOV)) { |
+ if (isolate()->cpu_features()->IsSupported(CMOV)) { |
CpuFeatures::Scope use_cmov(CMOV); |
__ cmov(above, ebx, Operand(ecx, arg_number * -kPointerSize)); |
} else { |
@@ -3316,7 +3330,7 @@ MaybeObject* ConstructStubCompiler::CompileConstructStub(JSFunction* function) { |
__ pop(ecx); |
__ lea(esp, Operand(esp, ebx, times_pointer_size, 1 * kPointerSize)); |
__ push(ecx); |
- Counters* counters = masm()->isolate()->counters(); |
+ Counters* counters = isolate()->counters(); |
__ IncrementCounter(counters->constructed_objects(), 1); |
__ IncrementCounter(counters->constructed_objects_stub(), 1); |
__ ret(0); |
@@ -3325,7 +3339,7 @@ MaybeObject* ConstructStubCompiler::CompileConstructStub(JSFunction* function) { |
// construction. |
__ bind(&generic_stub_call); |
Handle<Code> generic_construct_stub = |
- masm()->isolate()->builtins()->JSConstructStubGeneric(); |
+ isolate()->builtins()->JSConstructStubGeneric(); |
__ jmp(generic_construct_stub, RelocInfo::CODE_TARGET); |
// Return the generated code. |
@@ -3465,7 +3479,7 @@ MaybeObject* ExternalArrayStubCompiler::CompileKeyedLoadStub( |
// Slow case: Jump to runtime. |
__ bind(&slow); |
- Counters* counters = masm()->isolate()->counters(); |
+ Counters* counters = isolate()->counters(); |
__ IncrementCounter(counters->keyed_load_external_array_slow(), 1); |
// ----------- S t a t e ------------- |
// -- eax : key |
@@ -3600,10 +3614,10 @@ MaybeObject* ExternalArrayStubCompiler::CompileKeyedStoreStub( |
// processors that don't support SSE2. The code in IntegerConvert |
// (code-stubs-ia32.cc) is roughly what is needed here though the |
// conversion failure case does not need to be handled. |
- if (masm()->isolate()->cpu_features()->IsSupported(SSE2)) { |
+ if (isolate()->cpu_features()->IsSupported(SSE2)) { |
if (array_type != kExternalIntArray && |
array_type != kExternalUnsignedIntArray) { |
- ASSERT(masm()->isolate()->cpu_features()->IsSupported(SSE2)); |
+ ASSERT(isolate()->cpu_features()->IsSupported(SSE2)); |
CpuFeatures::Scope scope(SSE2); |
__ cvttsd2si(ecx, FieldOperand(eax, HeapNumber::kValueOffset)); |
// ecx: untagged integer value |
@@ -3631,7 +3645,7 @@ MaybeObject* ExternalArrayStubCompiler::CompileKeyedStoreStub( |
break; |
} |
} else { |
- if (masm()->isolate()->cpu_features()->IsSupported(SSE3)) { |
+ if (isolate()->cpu_features()->IsSupported(SSE3)) { |
CpuFeatures::Scope scope(SSE3); |
// fisttp stores values as signed integers. To represent the |
// entire range of int and unsigned int arrays, store as a |
@@ -3644,7 +3658,7 @@ MaybeObject* ExternalArrayStubCompiler::CompileKeyedStoreStub( |
__ pop(ecx); |
__ add(Operand(esp), Immediate(kPointerSize)); |
} else { |
- ASSERT(masm()->isolate()->cpu_features()->IsSupported(SSE2)); |
+ ASSERT(isolate()->cpu_features()->IsSupported(SSE2)); |
CpuFeatures::Scope scope(SSE2); |
// We can easily implement the correct rounding behavior for the |
// range [0, 2^31-1]. For the time being, to keep this code simple, |