| Index: src/ia32/code-stubs-ia32.cc
|
| diff --git a/src/ia32/code-stubs-ia32.cc b/src/ia32/code-stubs-ia32.cc
|
| index 202d7abd9f480fa612590ed8dfa6ebd110822885..83613ccc86a041c8a360232cacee3c76eee09698 100644
|
| --- a/src/ia32/code-stubs-ia32.cc
|
| +++ b/src/ia32/code-stubs-ia32.cc
|
| @@ -64,6 +64,16 @@ void ToNumberStub::InitializeInterfaceDescriptor(
|
| }
|
|
|
|
|
| +void NumberToStringStub::InitializeInterfaceDescriptor(
|
| + Isolate* isolate,
|
| + CodeStubInterfaceDescriptor* descriptor) {
|
| + static Register registers[] = { eax };
|
| + descriptor->register_param_count_ = 1;
|
| + descriptor->register_params_ = registers;
|
| + descriptor->deoptimization_handler_ = NULL;
|
| +}
|
| +
|
| +
|
| void FastCloneShallowArrayStub::InitializeInterfaceDescriptor(
|
| Isolate* isolate,
|
| CodeStubInterfaceDescriptor* descriptor) {
|
| @@ -3767,21 +3777,6 @@ void RegExpConstructResultStub::Generate(MacroAssembler* masm) {
|
| }
|
|
|
|
|
| -void NumberToStringStub::Generate(MacroAssembler* masm) {
|
| - Label runtime;
|
| -
|
| - __ mov(ebx, Operand(esp, kPointerSize));
|
| -
|
| - // Generate code to lookup number in the number string cache.
|
| - __ LookupNumberStringCache(ebx, eax, ecx, edx, &runtime);
|
| - __ ret(1 * kPointerSize);
|
| -
|
| - __ bind(&runtime);
|
| - // Handle number to string in the runtime system if not found in the cache.
|
| - __ TailCallRuntime(Runtime::kNumberToStringSkipCache, 1, 1);
|
| -}
|
| -
|
| -
|
| static int NegativeComparisonResult(Condition cc) {
|
| ASSERT(cc != equal);
|
| ASSERT((cc == less) || (cc == less_equal)
|
| @@ -4119,6 +4114,7 @@ static void GenerateRecordCallTarget(MacroAssembler* masm) {
|
| // Cache the called function in a global property cell. Cache states
|
| // are uninitialized, monomorphic (indicated by a JSFunction), and
|
| // megamorphic.
|
| + // eax : number of arguments to the construct function
|
| // ebx : cache cell for call target
|
| // edi : the function to call
|
| Isolate* isolate = masm->isolate();
|
| @@ -4138,9 +4134,8 @@ static void GenerateRecordCallTarget(MacroAssembler* masm) {
|
| // If we didn't have a matching function, and we didn't find the megamorph
|
| // sentinel, then we have in the cell either some other function or an
|
| // AllocationSite. Do a map check on the object in ecx.
|
| - Handle<Map> allocation_site_map(
|
| - masm->isolate()->heap()->allocation_site_map(),
|
| - masm->isolate());
|
| + Handle<Map> allocation_site_map =
|
| + masm->isolate()->factory()->allocation_site_map();
|
| __ cmp(FieldOperand(ecx, 0), Immediate(allocation_site_map));
|
| __ j(not_equal, &miss);
|
|
|
| @@ -4179,6 +4174,7 @@ static void GenerateRecordCallTarget(MacroAssembler* masm) {
|
| {
|
| FrameScope scope(masm, StackFrame::INTERNAL);
|
|
|
| + // Arguments register must be smi-tagged to call out.
|
| __ SmiTag(eax);
|
| __ push(eax);
|
| __ push(edi);
|
| @@ -7211,9 +7207,8 @@ static void CreateArrayDispatchOneArgument(MacroAssembler* masm,
|
| __ inc(edx);
|
| __ mov(ecx, FieldOperand(ebx, Cell::kValueOffset));
|
| if (FLAG_debug_code) {
|
| - Handle<Map> allocation_site_map(
|
| - masm->isolate()->heap()->allocation_site_map(),
|
| - masm->isolate());
|
| + Handle<Map> allocation_site_map =
|
| + masm->isolate()->factory()->allocation_site_map();
|
| __ cmp(FieldOperand(ecx, 0), Immediate(allocation_site_map));
|
| __ Assert(equal, kExpectedAllocationSiteInCell);
|
| }
|
| @@ -7358,8 +7353,8 @@ void ArrayConstructorStub::Generate(MacroAssembler* masm) {
|
| __ cmp(ebx, Immediate(undefined_sentinel));
|
| __ j(equal, &no_info);
|
| __ mov(edx, FieldOperand(ebx, Cell::kValueOffset));
|
| - __ cmp(FieldOperand(edx, 0), Immediate(Handle<Map>(
|
| - masm->isolate()->heap()->allocation_site_map())));
|
| + __ cmp(FieldOperand(edx, 0), Immediate(
|
| + masm->isolate()->factory()->allocation_site_map()));
|
| __ j(not_equal, &no_info);
|
|
|
| __ mov(edx, FieldOperand(edx, AllocationSite::kTransitionInfoOffset));
|
|
|