From: weiliang.lin@intel.com Date: Thu, 11 Sep 2014 05:30:19 +0000 (+0000) Subject: X87: Do not cache CodeStubInterfaceDescriptor on the isolate. X-Git-Tag: upstream/4.7.83~7000 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=ca2d970a45b4842580f66e9832c8c28ae7d6fa04;p=platform%2Fupstream%2Fv8.git X87: Do not cache CodeStubInterfaceDescriptor on the isolate. port r23744. original commit message: Do not cache CodeStubInterfaceDescriptor on the isolate. BUG= R=weiliang.lin@intel.com Review URL: https://codereview.chromium.org/560793002 Patch from Jing Bao . git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@23853 ce2b1a6d-e550-0410-aec6-3dcde31c8c00 --- diff --git a/src/x87/code-stubs-x87.cc b/src/x87/code-stubs-x87.cc index f36ef80..f9358aa 100644 --- a/src/x87/code-stubs-x87.cc +++ b/src/x87/code-stubs-x87.cc @@ -115,19 +115,19 @@ void HydrogenCodeStub::GenerateLightweightMiss(MacroAssembler* masm) { // Update the static counter each time a new code stub is generated. isolate()->counters()->code_stubs()->Increment(); - CodeStubInterfaceDescriptor* descriptor = GetInterfaceDescriptor(); - int param_count = descriptor->GetEnvironmentParameterCount(); + CodeStubInterfaceDescriptor descriptor; + InitializeInterfaceDescriptor(&descriptor); + int param_count = descriptor.GetEnvironmentParameterCount(); { // Call the runtime system in a fresh internal frame. FrameScope scope(masm, StackFrame::INTERNAL); DCHECK(param_count == 0 || - eax.is(descriptor->GetEnvironmentParameterRegister( - param_count - 1))); + eax.is(descriptor.GetEnvironmentParameterRegister(param_count - 1))); // Push arguments for (int i = 0; i < param_count; ++i) { - __ push(descriptor->GetEnvironmentParameterRegister(i)); + __ push(descriptor.GetEnvironmentParameterRegister(i)); } - ExternalReference miss = descriptor->miss_handler(); + ExternalReference miss = descriptor.miss_handler(); __ CallExternalReference(miss, param_count); } diff --git a/src/x87/lithium-x87.cc b/src/x87/lithium-x87.cc index 3e64f19..392335b 100644 --- a/src/x87/lithium-x87.cc +++ b/src/x87/lithium-x87.cc @@ -2477,10 +2477,10 @@ LInstruction* LChunkBuilder::DoParameter(HParameter* instr) { return DefineAsSpilled(result, spill_index); } else { DCHECK(info()->IsStub()); - CodeStubInterfaceDescriptor* descriptor = - info()->code_stub()->GetInterfaceDescriptor(); + CodeStubInterfaceDescriptor descriptor; + info()->code_stub()->InitializeInterfaceDescriptor(&descriptor); int index = static_cast(instr->index()); - Register reg = descriptor->GetEnvironmentParameterRegister(index); + Register reg = descriptor.GetEnvironmentParameterRegister(index); return DefineFixed(result, reg); } }