OLD | NEW |
1 // Copyright 2013 the V8 project authors. All rights reserved. | 1 // Copyright 2013 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_ARM64 | 5 #if V8_TARGET_ARCH_ARM64 |
6 | 6 |
7 #include "src/ast/scopes.h" | 7 #include "src/ast/scopes.h" |
8 #include "src/code-factory.h" | 8 #include "src/code-factory.h" |
9 #include "src/code-stubs.h" | 9 #include "src/code-stubs.h" |
10 #include "src/codegen.h" | 10 #include "src/codegen.h" |
(...skipping 2309 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
2320 PushOperands(x0, scratch); | 2320 PushOperands(x0, scratch); |
2321 PushOperand(key->value()); | 2321 PushOperand(key->value()); |
2322 | 2322 |
2323 // Stack here: | 2323 // Stack here: |
2324 // - home_object | 2324 // - home_object |
2325 // - this (receiver) | 2325 // - this (receiver) |
2326 // - this (receiver) <-- LoadFromSuper will pop here and below. | 2326 // - this (receiver) <-- LoadFromSuper will pop here and below. |
2327 // - home_object | 2327 // - home_object |
2328 // - key | 2328 // - key |
2329 CallRuntimeWithOperands(Runtime::kLoadFromSuper); | 2329 CallRuntimeWithOperands(Runtime::kLoadFromSuper); |
| 2330 PrepareForBailoutForId(prop->LoadId(), TOS_REG); |
2330 | 2331 |
2331 // Replace home_object with target function. | 2332 // Replace home_object with target function. |
2332 __ Poke(x0, kPointerSize); | 2333 __ Poke(x0, kPointerSize); |
2333 | 2334 |
2334 // Stack here: | 2335 // Stack here: |
2335 // - target function | 2336 // - target function |
2336 // - this (receiver) | 2337 // - this (receiver) |
2337 EmitCall(expr); | 2338 EmitCall(expr); |
2338 } | 2339 } |
2339 | 2340 |
(...skipping 41 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
2381 PushOperands(x0, scratch); | 2382 PushOperands(x0, scratch); |
2382 VisitForStackValue(prop->key()); | 2383 VisitForStackValue(prop->key()); |
2383 | 2384 |
2384 // Stack here: | 2385 // Stack here: |
2385 // - home_object | 2386 // - home_object |
2386 // - this (receiver) | 2387 // - this (receiver) |
2387 // - this (receiver) <-- LoadKeyedFromSuper will pop here and below. | 2388 // - this (receiver) <-- LoadKeyedFromSuper will pop here and below. |
2388 // - home_object | 2389 // - home_object |
2389 // - key | 2390 // - key |
2390 CallRuntimeWithOperands(Runtime::kLoadKeyedFromSuper); | 2391 CallRuntimeWithOperands(Runtime::kLoadKeyedFromSuper); |
| 2392 PrepareForBailoutForId(prop->LoadId(), TOS_REG); |
2391 | 2393 |
2392 // Replace home_object with target function. | 2394 // Replace home_object with target function. |
2393 __ Poke(x0, kPointerSize); | 2395 __ Poke(x0, kPointerSize); |
2394 | 2396 |
2395 // Stack here: | 2397 // Stack here: |
2396 // - target function | 2398 // - target function |
2397 // - this (receiver) | 2399 // - this (receiver) |
2398 EmitCall(expr); | 2400 EmitCall(expr); |
2399 } | 2401 } |
2400 | 2402 |
(...skipping 1624 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
4025 } | 4027 } |
4026 | 4028 |
4027 return INTERRUPT; | 4029 return INTERRUPT; |
4028 } | 4030 } |
4029 | 4031 |
4030 | 4032 |
4031 } // namespace internal | 4033 } // namespace internal |
4032 } // namespace v8 | 4034 } // namespace v8 |
4033 | 4035 |
4034 #endif // V8_TARGET_ARCH_ARM64 | 4036 #endif // V8_TARGET_ARCH_ARM64 |
OLD | NEW |