Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(153)

Side by Side Diff: src/mips64/code-stubs-mips64.cc

Issue 540403002: MIPS: Do not cache CodeStubInterfaceDescriptor on the isolate. (Closed) Base URL: https://v8.googlecode.com/svn/branches/bleeding_edge
Patch Set: Created 6 years, 3 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
« no previous file with comments | « src/mips/lithium-mips.cc ('k') | src/mips64/lithium-mips64.cc » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright 2012 the V8 project authors. All rights reserved. 1 // Copyright 2012 the V8 project authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #include "src/v8.h" 5 #include "src/v8.h"
6 6
7 #if V8_TARGET_ARCH_MIPS64 7 #if V8_TARGET_ARCH_MIPS64
8 8
9 #include "src/bootstrapper.h" 9 #include "src/bootstrapper.h"
10 #include "src/code-stubs.h" 10 #include "src/code-stubs.h"
(...skipping 103 matching lines...) Expand 10 before | Expand all | Expand 10 after
114 bool strict); 114 bool strict);
115 static void EmitStrictTwoHeapObjectCompare(MacroAssembler* masm, 115 static void EmitStrictTwoHeapObjectCompare(MacroAssembler* masm,
116 Register lhs, 116 Register lhs,
117 Register rhs); 117 Register rhs);
118 118
119 119
120 void HydrogenCodeStub::GenerateLightweightMiss(MacroAssembler* masm) { 120 void HydrogenCodeStub::GenerateLightweightMiss(MacroAssembler* masm) {
121 // Update the static counter each time a new code stub is generated. 121 // Update the static counter each time a new code stub is generated.
122 isolate()->counters()->code_stubs()->Increment(); 122 isolate()->counters()->code_stubs()->Increment();
123 123
124 CodeStubInterfaceDescriptor* descriptor = GetInterfaceDescriptor(); 124 CodeStubInterfaceDescriptor descriptor;
125 int param_count = descriptor->GetEnvironmentParameterCount(); 125 InitializeInterfaceDescriptor(&descriptor);
126 int param_count = descriptor.GetEnvironmentParameterCount();
126 { 127 {
127 // Call the runtime system in a fresh internal frame. 128 // Call the runtime system in a fresh internal frame.
128 FrameScope scope(masm, StackFrame::INTERNAL); 129 FrameScope scope(masm, StackFrame::INTERNAL);
129 DCHECK((param_count == 0) || 130 DCHECK((param_count == 0) ||
130 a0.is(descriptor->GetEnvironmentParameterRegister(param_count - 1))); 131 a0.is(descriptor.GetEnvironmentParameterRegister(param_count - 1)));
131 // Push arguments, adjust sp. 132 // Push arguments, adjust sp.
132 __ Dsubu(sp, sp, Operand(param_count * kPointerSize)); 133 __ Dsubu(sp, sp, Operand(param_count * kPointerSize));
133 for (int i = 0; i < param_count; ++i) { 134 for (int i = 0; i < param_count; ++i) {
134 // Store argument to stack. 135 // Store argument to stack.
135 __ sd(descriptor->GetEnvironmentParameterRegister(i), 136 __ sd(descriptor.GetEnvironmentParameterRegister(i),
136 MemOperand(sp, (param_count-1-i) * kPointerSize)); 137 MemOperand(sp, (param_count-1-i) * kPointerSize));
137 } 138 }
138 ExternalReference miss = descriptor->miss_handler(); 139 ExternalReference miss = descriptor.miss_handler();
139 __ CallExternalReference(miss, param_count); 140 __ CallExternalReference(miss, param_count);
140 } 141 }
141 142
142 __ Ret(); 143 __ Ret();
143 } 144 }
144 145
145 146
146 void DoubleToIStub::Generate(MacroAssembler* masm) { 147 void DoubleToIStub::Generate(MacroAssembler* masm) {
147 Label out_of_range, only_low, negate, done; 148 Label out_of_range, only_low, negate, done;
148 Register input_reg = source(); 149 Register input_reg = source();
(...skipping 4775 matching lines...) Expand 10 before | Expand all | Expand 10 after
4924 MemOperand(fp, 6 * kPointerSize), 4925 MemOperand(fp, 6 * kPointerSize),
4925 NULL); 4926 NULL);
4926 } 4927 }
4927 4928
4928 4929
4929 #undef __ 4930 #undef __
4930 4931
4931 } } // namespace v8::internal 4932 } } // namespace v8::internal
4932 4933
4933 #endif // V8_TARGET_ARCH_MIPS64 4934 #endif // V8_TARGET_ARCH_MIPS64
OLDNEW
« no previous file with comments | « src/mips/lithium-mips.cc ('k') | src/mips64/lithium-mips64.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698