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

Side by Side Diff: src/full-codegen/mips/full-codegen-mips.cc

Issue 1960083002: [fullcodegen] Add missing bailout points for super calls. (Closed) Base URL: https://chromium.googlesource.com/v8/v8.git@master
Patch Set: Created 4 years, 7 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
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 #if V8_TARGET_ARCH_MIPS 5 #if V8_TARGET_ARCH_MIPS
6 6
7 // Note on Mips implementation: 7 // Note on Mips implementation:
8 // 8 //
9 // The result_register() for mips is the 'v0' register, which is defined 9 // The result_register() for mips is the 'v0' register, which is defined
10 // by the ABI to contain function return values. However, the first 10 // by the ABI to contain function return values. However, the first
(...skipping 2417 matching lines...) Expand 10 before | Expand all | Expand 10 after
2428 PushOperands(scratch, v0, v0, scratch); 2428 PushOperands(scratch, v0, v0, scratch);
2429 PushOperand(key->value()); 2429 PushOperand(key->value());
2430 2430
2431 // Stack here: 2431 // Stack here:
2432 // - home_object 2432 // - home_object
2433 // - this (receiver) 2433 // - this (receiver)
2434 // - this (receiver) <-- LoadFromSuper will pop here and below. 2434 // - this (receiver) <-- LoadFromSuper will pop here and below.
2435 // - home_object 2435 // - home_object
2436 // - key 2436 // - key
2437 CallRuntimeWithOperands(Runtime::kLoadFromSuper); 2437 CallRuntimeWithOperands(Runtime::kLoadFromSuper);
2438 PrepareForBailoutForId(prop->LoadId(), TOS_REG);
2438 2439
2439 // Replace home_object with target function. 2440 // Replace home_object with target function.
2440 __ sw(v0, MemOperand(sp, kPointerSize)); 2441 __ sw(v0, MemOperand(sp, kPointerSize));
2441 2442
2442 // Stack here: 2443 // Stack here:
2443 // - target function 2444 // - target function
2444 // - this (receiver) 2445 // - this (receiver)
2445 EmitCall(expr); 2446 EmitCall(expr);
2446 } 2447 }
2447 2448
(...skipping 38 matching lines...) Expand 10 before | Expand all | Expand 10 after
2486 PushOperands(scratch, v0, v0, scratch); 2487 PushOperands(scratch, v0, v0, scratch);
2487 VisitForStackValue(prop->key()); 2488 VisitForStackValue(prop->key());
2488 2489
2489 // Stack here: 2490 // Stack here:
2490 // - home_object 2491 // - home_object
2491 // - this (receiver) 2492 // - this (receiver)
2492 // - this (receiver) <-- LoadKeyedFromSuper will pop here and below. 2493 // - this (receiver) <-- LoadKeyedFromSuper will pop here and below.
2493 // - home_object 2494 // - home_object
2494 // - key 2495 // - key
2495 CallRuntimeWithOperands(Runtime::kLoadKeyedFromSuper); 2496 CallRuntimeWithOperands(Runtime::kLoadKeyedFromSuper);
2497 PrepareForBailoutForId(prop->LoadId(), TOS_REG);
2496 2498
2497 // Replace home_object with target function. 2499 // Replace home_object with target function.
2498 __ sw(v0, MemOperand(sp, kPointerSize)); 2500 __ sw(v0, MemOperand(sp, kPointerSize));
2499 2501
2500 // Stack here: 2502 // Stack here:
2501 // - target function 2503 // - target function
2502 // - this (receiver) 2504 // - this (receiver)
2503 EmitCall(expr); 2505 EmitCall(expr);
2504 } 2506 }
2505 2507
(...skipping 1473 matching lines...) Expand 10 before | Expand all | Expand 10 after
3979 reinterpret_cast<uint32_t>( 3981 reinterpret_cast<uint32_t>(
3980 isolate->builtins()->OnStackReplacement()->entry())); 3982 isolate->builtins()->OnStackReplacement()->entry()));
3981 return ON_STACK_REPLACEMENT; 3983 return ON_STACK_REPLACEMENT;
3982 } 3984 }
3983 3985
3984 3986
3985 } // namespace internal 3987 } // namespace internal
3986 } // namespace v8 3988 } // namespace v8
3987 3989
3988 #endif // V8_TARGET_ARCH_MIPS 3990 #endif // V8_TARGET_ARCH_MIPS
OLDNEW
« no previous file with comments | « src/full-codegen/ia32/full-codegen-ia32.cc ('k') | src/full-codegen/mips64/full-codegen-mips64.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698