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

Side by Side Diff: src/code-stubs-hydrogen.cc

Issue 2098303003: X87: Reland: [Crankshaft] Always check for stubs marked to not require an eager frame. (Closed) Base URL: https://chromium.googlesource.com/v8/v8.git@master
Patch Set: Created 4 years, 5 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 | « no previous file | no next file » | 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 #include "src/code-stubs.h" 5 #include "src/code-stubs.h"
6 6
7 #include "src/bailout-reason.h" 7 #include "src/bailout-reason.h"
8 #include "src/crankshaft/hydrogen.h" 8 #include "src/crankshaft/hydrogen.h"
9 #include "src/crankshaft/lithium.h" 9 #include "src/crankshaft/lithium.h"
10 #include "src/field-index.h" 10 #include "src/field-index.h"
(...skipping 452 matching lines...) Expand 10 before | Expand all | Expand 10 after
463 HValue* CodeStubGraphBuilder<FastCloneShallowArrayStub>::BuildCodeStub() { 463 HValue* CodeStubGraphBuilder<FastCloneShallowArrayStub>::BuildCodeStub() {
464 Factory* factory = isolate()->factory(); 464 Factory* factory = isolate()->factory();
465 HValue* undefined = graph()->GetConstantUndefined(); 465 HValue* undefined = graph()->GetConstantUndefined();
466 AllocationSiteMode alloc_site_mode = casted_stub()->allocation_site_mode(); 466 AllocationSiteMode alloc_site_mode = casted_stub()->allocation_site_mode();
467 HValue* closure = GetParameter(0); 467 HValue* closure = GetParameter(0);
468 HValue* literal_index = GetParameter(1); 468 HValue* literal_index = GetParameter(1);
469 469
470 // TODO(turbofan): This codestub has regressed to need a frame on ia32 at some 470 // TODO(turbofan): This codestub has regressed to need a frame on ia32 at some
471 // point and wasn't caught since it wasn't built in the snapshot. We should 471 // point and wasn't caught since it wasn't built in the snapshot. We should
472 // probably just replace with a TurboFan stub rather than fixing it. 472 // probably just replace with a TurboFan stub rather than fixing it.
473 #if !V8_TARGET_ARCH_IA32 473 #if !(V8_TARGET_ARCH_IA32 || V8_TARGET_ARCH_X87)
474 // This stub is very performance sensitive, the generated code must be tuned 474 // This stub is very performance sensitive, the generated code must be tuned
475 // so that it doesn't build and eager frame. 475 // so that it doesn't build and eager frame.
476 info()->MarkMustNotHaveEagerFrame(); 476 info()->MarkMustNotHaveEagerFrame();
477 #endif 477 #endif
478 478
479 HValue* literals_array = Add<HLoadNamedField>( 479 HValue* literals_array = Add<HLoadNamedField>(
480 closure, nullptr, HObjectAccess::ForLiteralsPointer()); 480 closure, nullptr, HObjectAccess::ForLiteralsPointer());
481 481
482 HInstruction* allocation_site = Add<HLoadKeyed>( 482 HInstruction* allocation_site = Add<HLoadKeyed>(
483 literals_array, literal_index, nullptr, nullptr, FAST_ELEMENTS, 483 literals_array, literal_index, nullptr, nullptr, FAST_ELEMENTS,
(...skipping 1578 matching lines...) Expand 10 before | Expand all | Expand 10 after
2062 template<> 2062 template<>
2063 HValue* CodeStubGraphBuilder<RegExpConstructResultStub>::BuildCodeStub() { 2063 HValue* CodeStubGraphBuilder<RegExpConstructResultStub>::BuildCodeStub() {
2064 // Determine the parameters. 2064 // Determine the parameters.
2065 HValue* length = GetParameter(RegExpConstructResultStub::kLength); 2065 HValue* length = GetParameter(RegExpConstructResultStub::kLength);
2066 HValue* index = GetParameter(RegExpConstructResultStub::kIndex); 2066 HValue* index = GetParameter(RegExpConstructResultStub::kIndex);
2067 HValue* input = GetParameter(RegExpConstructResultStub::kInput); 2067 HValue* input = GetParameter(RegExpConstructResultStub::kInput);
2068 2068
2069 // TODO(turbofan): This codestub has regressed to need a frame on ia32 at some 2069 // TODO(turbofan): This codestub has regressed to need a frame on ia32 at some
2070 // point and wasn't caught since it wasn't built in the snapshot. We should 2070 // point and wasn't caught since it wasn't built in the snapshot. We should
2071 // probably just replace with a TurboFan stub rather than fixing it. 2071 // probably just replace with a TurboFan stub rather than fixing it.
2072 #if !V8_TARGET_ARCH_IA32 2072 #if !(V8_TARGET_ARCH_IA32 || V8_TARGET_ARCH_X87)
2073 info()->MarkMustNotHaveEagerFrame(); 2073 info()->MarkMustNotHaveEagerFrame();
2074 #endif 2074 #endif
2075 2075
2076 return BuildRegExpConstructResult(length, index, input); 2076 return BuildRegExpConstructResult(length, index, input);
2077 } 2077 }
2078 2078
2079 2079
2080 Handle<Code> RegExpConstructResultStub::GenerateCode() { 2080 Handle<Code> RegExpConstructResultStub::GenerateCode() {
2081 return DoGenerateCode(this); 2081 return DoGenerateCode(this);
2082 } 2082 }
(...skipping 239 matching lines...) Expand 10 before | Expand all | Expand 10 after
2322 return Pop(); 2322 return Pop();
2323 } 2323 }
2324 2324
2325 2325
2326 Handle<Code> KeyedLoadGenericStub::GenerateCode() { 2326 Handle<Code> KeyedLoadGenericStub::GenerateCode() {
2327 return DoGenerateCode(this); 2327 return DoGenerateCode(this);
2328 } 2328 }
2329 2329
2330 } // namespace internal 2330 } // namespace internal
2331 } // namespace v8 2331 } // namespace v8
OLDNEW
« no previous file with comments | « no previous file | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698