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

Side by Side Diff: src/hydrogen.cc

Issue 458813002: Prototype implementation of GET_OWN_PROPERTY intrinsic. (Closed) Base URL: https://v8.googlecode.com/svn/branches/bleeding_edge
Patch Set: Created 6 years, 4 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 | Annotate | Revision Log
« no previous file with comments | « src/full-codegen.cc ('k') | src/hydrogen-instructions.h » ('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 #include "src/hydrogen.h" 5 #include "src/hydrogen.h"
6 6
7 #include <algorithm> 7 #include <algorithm>
8 8
9 #include "src/v8.h" 9 #include "src/v8.h"
10 10
(...skipping 6786 matching lines...) Expand 10 before | Expand all | Expand 10 after
6797 Expression* expr, 6797 Expression* expr,
6798 HValue* object, 6798 HValue* object,
6799 Handle<String> name, 6799 Handle<String> name,
6800 HValue* value, 6800 HValue* value,
6801 bool is_uninitialized) { 6801 bool is_uninitialized) {
6802 if (is_uninitialized) { 6802 if (is_uninitialized) {
6803 Add<HDeoptimize>("Insufficient type feedback for generic named access", 6803 Add<HDeoptimize>("Insufficient type feedback for generic named access",
6804 Deoptimizer::SOFT); 6804 Deoptimizer::SOFT);
6805 } 6805 }
6806 if (access_type == LOAD) { 6806 if (access_type == LOAD) {
6807 HLoadNamedGeneric* result = New<HLoadNamedGeneric>(object, name); 6807 HLoadNamedGeneric* result = New<HLoadNamedGeneric>(
6808 object, name, expr->AsProperty()->IsOwnProperty());
6808 if (FLAG_vector_ics) { 6809 if (FLAG_vector_ics) {
6809 Handle<SharedFunctionInfo> current_shared = 6810 Handle<SharedFunctionInfo> current_shared =
6810 function_state()->compilation_info()->shared_info(); 6811 function_state()->compilation_info()->shared_info();
6811 result->SetVectorAndSlot( 6812 result->SetVectorAndSlot(
6812 handle(current_shared->feedback_vector(), isolate()), 6813 handle(current_shared->feedback_vector(), isolate()),
6813 expr->AsProperty()->PropertyFeedbackSlot()); 6814 expr->AsProperty()->PropertyFeedbackSlot());
6814 } 6815 }
6815 return result; 6816 return result;
6816 } else { 6817 } else {
6817 return New<HStoreNamedGeneric>(object, name, value, function_strict_mode()); 6818 return New<HStoreNamedGeneric>(object, name, value, function_strict_mode());
6818 } 6819 }
6819 } 6820 }
6820 6821
6821 6822
6822 6823
6823 HInstruction* HOptimizedGraphBuilder::BuildKeyedGeneric( 6824 HInstruction* HOptimizedGraphBuilder::BuildKeyedGeneric(
6824 PropertyAccessType access_type, 6825 PropertyAccessType access_type,
6825 Expression* expr, 6826 Expression* expr,
6826 HValue* object, 6827 HValue* object,
6827 HValue* key, 6828 HValue* key,
6828 HValue* value) { 6829 HValue* value) {
6829 if (access_type == LOAD) { 6830 if (access_type == LOAD) {
6830 HLoadKeyedGeneric* result = New<HLoadKeyedGeneric>(object, key); 6831 HLoadKeyedGeneric* result = New<HLoadKeyedGeneric>(
6832 object, key, expr->AsProperty()->IsOwnProperty());
6831 if (FLAG_vector_ics) { 6833 if (FLAG_vector_ics) {
6832 Handle<SharedFunctionInfo> current_shared = 6834 Handle<SharedFunctionInfo> current_shared =
6833 function_state()->compilation_info()->shared_info(); 6835 function_state()->compilation_info()->shared_info();
6834 result->SetVectorAndSlot( 6836 result->SetVectorAndSlot(
6835 handle(current_shared->feedback_vector(), isolate()), 6837 handle(current_shared->feedback_vector(), isolate()),
6836 expr->AsProperty()->PropertyFeedbackSlot()); 6838 expr->AsProperty()->PropertyFeedbackSlot());
6837 } 6839 }
6838 return result; 6840 return result;
6839 } else { 6841 } else {
6840 return New<HStoreKeyedGeneric>(object, key, value, function_strict_mode()); 6842 return New<HStoreKeyedGeneric>(object, key, value, function_strict_mode());
(...skipping 5640 matching lines...) Expand 10 before | Expand all | Expand 10 after
12481 if (ShouldProduceTraceOutput()) { 12483 if (ShouldProduceTraceOutput()) {
12482 isolate()->GetHTracer()->TraceHydrogen(name(), graph_); 12484 isolate()->GetHTracer()->TraceHydrogen(name(), graph_);
12483 } 12485 }
12484 12486
12485 #ifdef DEBUG 12487 #ifdef DEBUG
12486 graph_->Verify(false); // No full verify. 12488 graph_->Verify(false); // No full verify.
12487 #endif 12489 #endif
12488 } 12490 }
12489 12491
12490 } } // namespace v8::internal 12492 } } // namespace v8::internal
OLDNEW
« no previous file with comments | « src/full-codegen.cc ('k') | src/hydrogen-instructions.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698