OLD | NEW |
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 Loading... |
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 Loading... |
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 Loading... |
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 |
OLD | NEW |