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

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

Issue 565873002: Removing ic.h from code-stubs.h (Closed) Base URL: https://v8.googlecode.com/svn/branches/bleeding_edge
Patch Set: REBASE and mips. 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/code-stubs.h ('k') | src/code-stubs-hydrogen.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 #include "src/bootstrapper.h" 7 #include "src/bootstrapper.h"
8 #include "src/code-stubs.h" 8 #include "src/code-stubs.h"
9 #include "src/cpu-profiler.h" 9 #include "src/cpu-profiler.h"
10 #include "src/factory.h" 10 #include "src/factory.h"
11 #include "src/gdb-jit.h" 11 #include "src/gdb-jit.h"
12 #include "src/ic/handler-compiler.h" 12 #include "src/ic/handler-compiler.h"
13 #include "src/ic/ic.h"
13 #include "src/macro-assembler.h" 14 #include "src/macro-assembler.h"
14 15
15 namespace v8 { 16 namespace v8 {
16 namespace internal { 17 namespace internal {
17 18
18 19
19 CodeStubDescriptor::CodeStubDescriptor(CodeStub* stub) 20 CodeStubDescriptor::CodeStubDescriptor(CodeStub* stub)
20 : call_descriptor_(stub->GetCallInterfaceDescriptor()), 21 : call_descriptor_(stub->GetCallInterfaceDescriptor()),
21 stack_parameter_count_(no_reg), 22 stack_parameter_count_(no_reg),
22 hint_stack_parameter_count_(-1), 23 hint_stack_parameter_count_(-1),
(...skipping 228 matching lines...) Expand 10 before | Expand all | Expand 10 after
251 for (int op = Token::BIT_OR; op <= Token::MOD; ++op) { 252 for (int op = Token::BIT_OR; op <= Token::MOD; ++op) {
252 for (int mode = NO_OVERWRITE; mode <= OVERWRITE_RIGHT; ++mode) { 253 for (int mode = NO_OVERWRITE; mode <= OVERWRITE_RIGHT; ++mode) {
253 BinaryOpICStub stub(isolate, 254 BinaryOpICStub stub(isolate,
254 static_cast<Token::Value>(op), 255 static_cast<Token::Value>(op),
255 static_cast<OverwriteMode>(mode)); 256 static_cast<OverwriteMode>(mode));
256 stub.GetCode(); 257 stub.GetCode();
257 } 258 }
258 } 259 }
259 260
260 // Generate special versions of the stub. 261 // Generate special versions of the stub.
261 BinaryOpIC::State::GenerateAheadOfTime(isolate, &GenerateAheadOfTime); 262 BinaryOpICState::GenerateAheadOfTime(isolate, &GenerateAheadOfTime);
262 } 263 }
263 264
264 265
265 void BinaryOpICStub::PrintState(OStream& os) const { // NOLINT 266 void BinaryOpICStub::PrintState(OStream& os) const { // NOLINT
266 os << state(); 267 os << state();
267 } 268 }
268 269
269 270
270 // static 271 // static
271 void BinaryOpICStub::GenerateAheadOfTime(Isolate* isolate, 272 void BinaryOpICStub::GenerateAheadOfTime(Isolate* isolate,
272 const BinaryOpIC::State& state) { 273 const BinaryOpICState& state) {
273 BinaryOpICStub stub(isolate, state); 274 BinaryOpICStub stub(isolate, state);
274 stub.GetCode(); 275 stub.GetCode();
275 } 276 }
276 277
277 278
278 // static 279 // static
279 void BinaryOpICWithAllocationSiteStub::GenerateAheadOfTime(Isolate* isolate) { 280 void BinaryOpICWithAllocationSiteStub::GenerateAheadOfTime(Isolate* isolate) {
280 // Generate special versions of the stub. 281 // Generate special versions of the stub.
281 BinaryOpIC::State::GenerateAheadOfTime(isolate, &GenerateAheadOfTime); 282 BinaryOpICState::GenerateAheadOfTime(isolate, &GenerateAheadOfTime);
282 } 283 }
283 284
284 285
285 void BinaryOpICWithAllocationSiteStub::PrintState( 286 void BinaryOpICWithAllocationSiteStub::PrintState(
286 OStream& os) const { // NOLINT 287 OStream& os) const { // NOLINT
287 os << state(); 288 os << state();
288 } 289 }
289 290
290 291
291 // static 292 // static
292 void BinaryOpICWithAllocationSiteStub::GenerateAheadOfTime( 293 void BinaryOpICWithAllocationSiteStub::GenerateAheadOfTime(
293 Isolate* isolate, const BinaryOpIC::State& state) { 294 Isolate* isolate, const BinaryOpICState& state) {
294 if (state.CouldCreateAllocationMementos()) { 295 if (state.CouldCreateAllocationMementos()) {
295 BinaryOpICWithAllocationSiteStub stub(isolate, state); 296 BinaryOpICWithAllocationSiteStub stub(isolate, state);
296 stub.GetCode(); 297 stub.GetCode();
297 } 298 }
298 } 299 }
299 300
300 301
301 void StringAddStub::PrintBaseName(OStream& os) const { // NOLINT 302 void StringAddStub::PrintBaseName(OStream& os) const { // NOLINT
302 os << "StringAddStub"; 303 os << "StringAddStub";
303 if ((flags() & STRING_ADD_CHECK_BOTH) == STRING_ADD_CHECK_BOTH) { 304 if ((flags() & STRING_ADD_CHECK_BOTH) == STRING_ADD_CHECK_BOTH) {
304 os << "_CheckBoth"; 305 os << "_CheckBoth";
305 } else if ((flags() & STRING_ADD_CHECK_LEFT) == STRING_ADD_CHECK_LEFT) { 306 } else if ((flags() & STRING_ADD_CHECK_LEFT) == STRING_ADD_CHECK_LEFT) {
306 os << "_CheckLeft"; 307 os << "_CheckLeft";
307 } else if ((flags() & STRING_ADD_CHECK_RIGHT) == STRING_ADD_CHECK_RIGHT) { 308 } else if ((flags() & STRING_ADD_CHECK_RIGHT) == STRING_ADD_CHECK_RIGHT) {
308 os << "_CheckRight"; 309 os << "_CheckRight";
309 } 310 }
310 if (pretenure_flag() == TENURED) { 311 if (pretenure_flag() == TENURED) {
311 os << "_Tenured"; 312 os << "_Tenured";
312 } 313 }
313 } 314 }
314 315
315 316
316 InlineCacheState CompareICStub::GetICState() const { 317 InlineCacheState CompareICStub::GetICState() const {
317 CompareIC::State state = Max(left(), right()); 318 CompareICState::State state = Max(left(), right());
318 switch (state) { 319 switch (state) {
319 case CompareIC::UNINITIALIZED: 320 case CompareICState::UNINITIALIZED:
320 return ::v8::internal::UNINITIALIZED; 321 return ::v8::internal::UNINITIALIZED;
321 case CompareIC::SMI: 322 case CompareICState::SMI:
322 case CompareIC::NUMBER: 323 case CompareICState::NUMBER:
323 case CompareIC::INTERNALIZED_STRING: 324 case CompareICState::INTERNALIZED_STRING:
324 case CompareIC::STRING: 325 case CompareICState::STRING:
325 case CompareIC::UNIQUE_NAME: 326 case CompareICState::UNIQUE_NAME:
326 case CompareIC::OBJECT: 327 case CompareICState::OBJECT:
327 case CompareIC::KNOWN_OBJECT: 328 case CompareICState::KNOWN_OBJECT:
328 return MONOMORPHIC; 329 return MONOMORPHIC;
329 case CompareIC::GENERIC: 330 case CompareICState::GENERIC:
330 return ::v8::internal::GENERIC; 331 return ::v8::internal::GENERIC;
331 } 332 }
332 UNREACHABLE(); 333 UNREACHABLE();
333 return ::v8::internal::UNINITIALIZED; 334 return ::v8::internal::UNINITIALIZED;
334 } 335 }
335 336
336 337
338 Condition CompareICStub::GetCondition() const {
339 return CompareIC::ComputeCondition(op());
340 }
341
342
337 void CompareICStub::AddToSpecialCache(Handle<Code> new_object) { 343 void CompareICStub::AddToSpecialCache(Handle<Code> new_object) {
338 DCHECK(*known_map_ != NULL); 344 DCHECK(*known_map_ != NULL);
339 Isolate* isolate = new_object->GetIsolate(); 345 Isolate* isolate = new_object->GetIsolate();
340 Factory* factory = isolate->factory(); 346 Factory* factory = isolate->factory();
341 return Map::UpdateCodeCache(known_map_, 347 return Map::UpdateCodeCache(known_map_,
342 strict() ? 348 strict() ?
343 factory->strict_compare_ic_string() : 349 factory->strict_compare_ic_string() :
344 factory->compare_ic_string(), 350 factory->compare_ic_string(),
345 new_object); 351 new_object);
346 } 352 }
(...skipping 22 matching lines...) Expand all
369 DCHECK(state() == decode.state()); 375 DCHECK(state() == decode.state());
370 #endif 376 #endif
371 return true; 377 return true;
372 } 378 }
373 return false; 379 return false;
374 } 380 }
375 381
376 382
377 void CompareICStub::Generate(MacroAssembler* masm) { 383 void CompareICStub::Generate(MacroAssembler* masm) {
378 switch (state()) { 384 switch (state()) {
379 case CompareIC::UNINITIALIZED: 385 case CompareICState::UNINITIALIZED:
380 GenerateMiss(masm); 386 GenerateMiss(masm);
381 break; 387 break;
382 case CompareIC::SMI: 388 case CompareICState::SMI:
383 GenerateSmis(masm); 389 GenerateSmis(masm);
384 break; 390 break;
385 case CompareIC::NUMBER: 391 case CompareICState::NUMBER:
386 GenerateNumbers(masm); 392 GenerateNumbers(masm);
387 break; 393 break;
388 case CompareIC::STRING: 394 case CompareICState::STRING:
389 GenerateStrings(masm); 395 GenerateStrings(masm);
390 break; 396 break;
391 case CompareIC::INTERNALIZED_STRING: 397 case CompareICState::INTERNALIZED_STRING:
392 GenerateInternalizedStrings(masm); 398 GenerateInternalizedStrings(masm);
393 break; 399 break;
394 case CompareIC::UNIQUE_NAME: 400 case CompareICState::UNIQUE_NAME:
395 GenerateUniqueNames(masm); 401 GenerateUniqueNames(masm);
396 break; 402 break;
397 case CompareIC::OBJECT: 403 case CompareICState::OBJECT:
398 GenerateObjects(masm); 404 GenerateObjects(masm);
399 break; 405 break;
400 case CompareIC::KNOWN_OBJECT: 406 case CompareICState::KNOWN_OBJECT:
401 DCHECK(*known_map_ != NULL); 407 DCHECK(*known_map_ != NULL);
402 GenerateKnownObjects(masm); 408 GenerateKnownObjects(masm);
403 break; 409 break;
404 case CompareIC::GENERIC: 410 case CompareICState::GENERIC:
405 GenerateGeneric(masm); 411 GenerateGeneric(masm);
406 break; 412 break;
407 } 413 }
408 } 414 }
409 415
410 416
411 void CompareNilICStub::UpdateStatus(Handle<Object> object) { 417 void CompareNilICStub::UpdateStatus(Handle<Object> object) {
412 State state = this->state(); 418 State state = this->state();
413 DCHECK(!state.Contains(GENERIC)); 419 DCHECK(!state.Contains(GENERIC));
414 State old_state = state; 420 State old_state = state;
(...skipping 515 matching lines...) Expand 10 before | Expand all | Expand 10 after
930 } 936 }
931 937
932 938
933 InternalArrayConstructorStub::InternalArrayConstructorStub( 939 InternalArrayConstructorStub::InternalArrayConstructorStub(
934 Isolate* isolate) : PlatformCodeStub(isolate) { 940 Isolate* isolate) : PlatformCodeStub(isolate) {
935 InternalArrayConstructorStubBase::GenerateStubsAheadOfTime(isolate); 941 InternalArrayConstructorStubBase::GenerateStubsAheadOfTime(isolate);
936 } 942 }
937 943
938 944
939 } } // namespace v8::internal 945 } } // namespace v8::internal
OLDNEW
« no previous file with comments | « src/code-stubs.h ('k') | src/code-stubs-hydrogen.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698