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

Side by Side Diff: src/full-codegen/x87/full-codegen-x87.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/x64/full-codegen-x64.cc ('k') | test/mjsunit/regress/regress-4971.js » ('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 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_X87 5 #if V8_TARGET_ARCH_X87
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 2303 matching lines...) Expand 10 before | Expand all | Expand 10 after
2314 PushOperand(eax); 2314 PushOperand(eax);
2315 PushOperand(Operand(esp, kPointerSize * 2)); 2315 PushOperand(Operand(esp, kPointerSize * 2));
2316 PushOperand(key->value()); 2316 PushOperand(key->value());
2317 // Stack here: 2317 // Stack here:
2318 // - home_object 2318 // - home_object
2319 // - this (receiver) 2319 // - this (receiver)
2320 // - this (receiver) <-- LoadFromSuper will pop here and below. 2320 // - this (receiver) <-- LoadFromSuper will pop here and below.
2321 // - home_object 2321 // - home_object
2322 // - key 2322 // - key
2323 CallRuntimeWithOperands(Runtime::kLoadFromSuper); 2323 CallRuntimeWithOperands(Runtime::kLoadFromSuper);
2324 PrepareForBailoutForId(prop->LoadId(), TOS_REG);
2324 2325
2325 // Replace home_object with target function. 2326 // Replace home_object with target function.
2326 __ mov(Operand(esp, kPointerSize), eax); 2327 __ mov(Operand(esp, kPointerSize), eax);
2327 2328
2328 // Stack here: 2329 // Stack here:
2329 // - target function 2330 // - target function
2330 // - this (receiver) 2331 // - this (receiver)
2331 EmitCall(expr); 2332 EmitCall(expr);
2332 } 2333 }
2333 2334
(...skipping 36 matching lines...) Expand 10 before | Expand all | Expand 10 after
2370 PushOperand(eax); 2371 PushOperand(eax);
2371 PushOperand(Operand(esp, kPointerSize * 2)); 2372 PushOperand(Operand(esp, kPointerSize * 2));
2372 VisitForStackValue(prop->key()); 2373 VisitForStackValue(prop->key());
2373 // Stack here: 2374 // Stack here:
2374 // - home_object 2375 // - home_object
2375 // - this (receiver) 2376 // - this (receiver)
2376 // - this (receiver) <-- LoadKeyedFromSuper will pop here and below. 2377 // - this (receiver) <-- LoadKeyedFromSuper will pop here and below.
2377 // - home_object 2378 // - home_object
2378 // - key 2379 // - key
2379 CallRuntimeWithOperands(Runtime::kLoadKeyedFromSuper); 2380 CallRuntimeWithOperands(Runtime::kLoadKeyedFromSuper);
2381 PrepareForBailoutForId(prop->LoadId(), TOS_REG);
2380 2382
2381 // Replace home_object with target function. 2383 // Replace home_object with target function.
2382 __ mov(Operand(esp, kPointerSize), eax); 2384 __ mov(Operand(esp, kPointerSize), eax);
2383 2385
2384 // Stack here: 2386 // Stack here:
2385 // - target function 2387 // - target function
2386 // - this (receiver) 2388 // - this (receiver)
2387 EmitCall(expr); 2389 EmitCall(expr);
2388 } 2390 }
2389 2391
(...skipping 1465 matching lines...) Expand 10 before | Expand all | Expand 10 after
3855 isolate->builtins()->OnStackReplacement()->entry(), 3857 isolate->builtins()->OnStackReplacement()->entry(),
3856 Assembler::target_address_at(call_target_address, unoptimized_code)); 3858 Assembler::target_address_at(call_target_address, unoptimized_code));
3857 return ON_STACK_REPLACEMENT; 3859 return ON_STACK_REPLACEMENT;
3858 } 3860 }
3859 3861
3860 3862
3861 } // namespace internal 3863 } // namespace internal
3862 } // namespace v8 3864 } // namespace v8
3863 3865
3864 #endif // V8_TARGET_ARCH_X87 3866 #endif // V8_TARGET_ARCH_X87
OLDNEW
« no previous file with comments | « src/full-codegen/x64/full-codegen-x64.cc ('k') | test/mjsunit/regress/regress-4971.js » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698