Index: src/x64/code-stubs-x64.cc |
diff --git a/src/x64/code-stubs-x64.cc b/src/x64/code-stubs-x64.cc |
index 171112fa7d37a37d01a2a22aa2e41ac1322985d1..8f27374af5f156b9c6e85ef2f6622f4fd0821ec2 100644 |
--- a/src/x64/code-stubs-x64.cc |
+++ b/src/x64/code-stubs-x64.cc |
@@ -3231,6 +3231,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. |
+ // rax : number of arguments to the construct function |
// rbx : cache cell for call target |
// rdi : the function to call |
Isolate* isolate = masm->isolate(); |
@@ -3250,9 +3251,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 rcx. |
- 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(rcx, 0), allocation_site_map); |
__ j(not_equal, &miss); |
@@ -3288,6 +3288,7 @@ static void GenerateRecordCallTarget(MacroAssembler* masm) { |
{ |
FrameScope scope(masm, StackFrame::INTERNAL); |
+ // Arguments register must be smi-tagged to call out. |
__ Integer32ToSmi(rax, rax); |
__ push(rax); |
__ push(rdi); |
@@ -6297,9 +6298,8 @@ static void CreateArrayDispatchOneArgument(MacroAssembler* masm, |
__ incl(rdx); |
__ movq(rcx, FieldOperand(rbx, 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(rcx, 0), allocation_site_map); |
__ Assert(equal, kExpectedAllocationSiteInCell); |
} |
@@ -6446,7 +6446,7 @@ void ArrayConstructorStub::Generate(MacroAssembler* masm) { |
__ j(equal, &no_info); |
__ movq(rdx, FieldOperand(rbx, Cell::kValueOffset)); |
__ Cmp(FieldOperand(rdx, 0), |
- Handle<Map>(masm->isolate()->heap()->allocation_site_map())); |
+ masm->isolate()->factory()->allocation_site_map()); |
__ j(not_equal, &no_info); |
__ movq(rdx, FieldOperand(rdx, AllocationSite::kTransitionInfoOffset)); |