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_MIPS64 | 5 #if V8_TARGET_ARCH_MIPS64 |
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 2416 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
2427 PushOperands(scratch, v0, v0, scratch); | 2427 PushOperands(scratch, v0, v0, scratch); |
2428 PushOperand(key->value()); | 2428 PushOperand(key->value()); |
2429 | 2429 |
2430 // Stack here: | 2430 // Stack here: |
2431 // - home_object | 2431 // - home_object |
2432 // - this (receiver) | 2432 // - this (receiver) |
2433 // - this (receiver) <-- LoadFromSuper will pop here and below. | 2433 // - this (receiver) <-- LoadFromSuper will pop here and below. |
2434 // - home_object | 2434 // - home_object |
2435 // - key | 2435 // - key |
2436 CallRuntimeWithOperands(Runtime::kLoadFromSuper); | 2436 CallRuntimeWithOperands(Runtime::kLoadFromSuper); |
| 2437 PrepareForBailoutForId(prop->LoadId(), TOS_REG); |
2437 | 2438 |
2438 // Replace home_object with target function. | 2439 // Replace home_object with target function. |
2439 __ sd(v0, MemOperand(sp, kPointerSize)); | 2440 __ sd(v0, MemOperand(sp, kPointerSize)); |
2440 | 2441 |
2441 // Stack here: | 2442 // Stack here: |
2442 // - target function | 2443 // - target function |
2443 // - this (receiver) | 2444 // - this (receiver) |
2444 EmitCall(expr); | 2445 EmitCall(expr); |
2445 } | 2446 } |
2446 | 2447 |
(...skipping 38 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
2485 PushOperands(scratch, v0, v0, scratch); | 2486 PushOperands(scratch, v0, v0, scratch); |
2486 VisitForStackValue(prop->key()); | 2487 VisitForStackValue(prop->key()); |
2487 | 2488 |
2488 // Stack here: | 2489 // Stack here: |
2489 // - home_object | 2490 // - home_object |
2490 // - this (receiver) | 2491 // - this (receiver) |
2491 // - this (receiver) <-- LoadKeyedFromSuper will pop here and below. | 2492 // - this (receiver) <-- LoadKeyedFromSuper will pop here and below. |
2492 // - home_object | 2493 // - home_object |
2493 // - key | 2494 // - key |
2494 CallRuntimeWithOperands(Runtime::kLoadKeyedFromSuper); | 2495 CallRuntimeWithOperands(Runtime::kLoadKeyedFromSuper); |
| 2496 PrepareForBailoutForId(prop->LoadId(), TOS_REG); |
2495 | 2497 |
2496 // Replace home_object with target function. | 2498 // Replace home_object with target function. |
2497 __ sd(v0, MemOperand(sp, kPointerSize)); | 2499 __ sd(v0, MemOperand(sp, kPointerSize)); |
2498 | 2500 |
2499 // Stack here: | 2501 // Stack here: |
2500 // - target function | 2502 // - target function |
2501 // - this (receiver) | 2503 // - this (receiver) |
2502 EmitCall(expr); | 2504 EmitCall(expr); |
2503 } | 2505 } |
2504 | 2506 |
(...skipping 1482 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
3987 reinterpret_cast<uint64_t>( | 3989 reinterpret_cast<uint64_t>( |
3988 isolate->builtins()->OnStackReplacement()->entry())); | 3990 isolate->builtins()->OnStackReplacement()->entry())); |
3989 return ON_STACK_REPLACEMENT; | 3991 return ON_STACK_REPLACEMENT; |
3990 } | 3992 } |
3991 | 3993 |
3992 | 3994 |
3993 } // namespace internal | 3995 } // namespace internal |
3994 } // namespace v8 | 3996 } // namespace v8 |
3995 | 3997 |
3996 #endif // V8_TARGET_ARCH_MIPS64 | 3998 #endif // V8_TARGET_ARCH_MIPS64 |
OLD | NEW |