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

Side by Side Diff: src/full-codegen/arm64/full-codegen-arm64.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
« no previous file with comments | « src/full-codegen/arm/full-codegen-arm.cc ('k') | src/full-codegen/ia32/full-codegen-ia32.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 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
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
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
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
OLDNEW
« no previous file with comments | « src/full-codegen/arm/full-codegen-arm.cc ('k') | src/full-codegen/ia32/full-codegen-ia32.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698