| Index: src/x64/full-codegen-x64.cc
|
| diff --git a/src/x64/full-codegen-x64.cc b/src/x64/full-codegen-x64.cc
|
| index 9b4a9dfff0e15491d7aa55f562c187f61585c79d..3c7db52e13a08c69e494aa7d57bf47454dd2d575 100644
|
| --- a/src/x64/full-codegen-x64.cc
|
| +++ b/src/x64/full-codegen-x64.cc
|
| @@ -1285,9 +1285,9 @@ void FullCodeGenerator::EmitLoadGlobalCheckExtensions(Variable* var,
|
| __ movq(temp, context);
|
| }
|
| // Load map for comparison into register, outside loop.
|
| - __ LoadRoot(kScratchRegister, Heap::kNativeContextMapRootIndex);
|
| + __ LoadRoot(kScratchRegister, Heap::kGlobalContextMapRootIndex);
|
| __ bind(&next);
|
| - // Terminate at native context.
|
| + // Terminate at global context.
|
| __ cmpq(kScratchRegister, FieldOperand(temp, HeapObject::kMapOffset));
|
| __ j(equal, &fast, Label::kNear);
|
| // Check that extension is NULL.
|
| @@ -2667,8 +2667,8 @@ void FullCodeGenerator::EmitIsStringWrapperSafeForDefaultValueOf(
|
| __ testq(rcx, Immediate(kSmiTagMask));
|
| __ j(zero, if_false);
|
| __ movq(rcx, FieldOperand(rcx, HeapObject::kMapOffset));
|
| - __ movq(rdx, Operand(rsi, Context::SlotOffset(Context::GLOBAL_OBJECT_INDEX)));
|
| - __ movq(rdx, FieldOperand(rdx, GlobalObject::kNativeContextOffset));
|
| + __ movq(rdx, Operand(rsi, Context::SlotOffset(Context::GLOBAL_INDEX)));
|
| + __ movq(rdx, FieldOperand(rdx, GlobalObject::kGlobalContextOffset));
|
| __ cmpq(rcx,
|
| ContextOperand(rdx, Context::STRING_FUNCTION_PROTOTYPE_MAP_INDEX));
|
| __ j(not_equal, if_false);
|
| @@ -2945,14 +2945,12 @@ void FullCodeGenerator::EmitRandomHeapNumber(CallRuntime* expr) {
|
| // The fresh HeapNumber is in rbx, which is callee-save on both x64 ABIs.
|
| __ PrepareCallCFunction(1);
|
| #ifdef _WIN64
|
| - __ movq(rcx,
|
| - ContextOperand(context_register(), Context::GLOBAL_OBJECT_INDEX));
|
| - __ movq(rcx, FieldOperand(rcx, GlobalObject::kNativeContextOffset));
|
| + __ movq(rcx, ContextOperand(context_register(), Context::GLOBAL_INDEX));
|
| + __ movq(rcx, FieldOperand(rcx, GlobalObject::kGlobalContextOffset));
|
|
|
| #else
|
| - __ movq(rdi,
|
| - ContextOperand(context_register(), Context::GLOBAL_OBJECT_INDEX));
|
| - __ movq(rdi, FieldOperand(rdi, GlobalObject::kNativeContextOffset));
|
| + __ movq(rdi, ContextOperand(context_register(), Context::GLOBAL_INDEX));
|
| + __ movq(rdi, FieldOperand(rdi, GlobalObject::kGlobalContextOffset));
|
| #endif
|
| __ CallCFunction(ExternalReference::random_uint32_function(isolate()), 1);
|
|
|
| @@ -3369,7 +3367,7 @@ void FullCodeGenerator::EmitGetFromCache(CallRuntime* expr) {
|
| int cache_id = Smi::cast(*(args->at(0)->AsLiteral()->handle()))->value();
|
|
|
| Handle<FixedArray> jsfunction_result_caches(
|
| - isolate()->native_context()->jsfunction_result_caches());
|
| + isolate()->global_context()->jsfunction_result_caches());
|
| if (jsfunction_result_caches->length() <= cache_id) {
|
| __ Abort("Attempt to use undefined cache.");
|
| __ LoadRoot(rax, Heap::kUndefinedValueRootIndex);
|
| @@ -3382,9 +3380,9 @@ void FullCodeGenerator::EmitGetFromCache(CallRuntime* expr) {
|
| Register key = rax;
|
| Register cache = rbx;
|
| Register tmp = rcx;
|
| - __ movq(cache, ContextOperand(rsi, Context::GLOBAL_OBJECT_INDEX));
|
| + __ movq(cache, ContextOperand(rsi, Context::GLOBAL_INDEX));
|
| __ movq(cache,
|
| - FieldOperand(cache, GlobalObject::kNativeContextOffset));
|
| + FieldOperand(cache, GlobalObject::kGlobalContextOffset));
|
| __ movq(cache,
|
| ContextOperand(cache, Context::JSFUNCTION_RESULT_CACHES_INDEX));
|
| __ movq(cache,
|
| @@ -4431,7 +4429,7 @@ void FullCodeGenerator::PushFunctionArgumentForContextAllocation() {
|
| Scope* declaration_scope = scope()->DeclarationScope();
|
| if (declaration_scope->is_global_scope() ||
|
| declaration_scope->is_module_scope()) {
|
| - // Contexts nested in the native context have a canonical empty function
|
| + // Contexts nested in the global context have a canonical empty function
|
| // as their closure, not the anonymous closure containing the global
|
| // code. Pass a smi sentinel and let the runtime look up the empty
|
| // function.
|
|
|