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

Side by Side Diff: src/hydrogen-instructions.h

Issue 534093003: Fix loading non-configurable non-writable value from a constant with mismatching type feedback (Closed) Base URL: https://v8.googlecode.com/svn/branches/bleeding_edge
Patch Set: Created 6 years, 3 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/hydrogen.cc ('k') | test/mjsunit/regress/regress-inline-constant-load.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 #ifndef V8_HYDROGEN_INSTRUCTIONS_H_ 5 #ifndef V8_HYDROGEN_INSTRUCTIONS_H_
6 #define V8_HYDROGEN_INSTRUCTIONS_H_ 6 #define V8_HYDROGEN_INSTRUCTIONS_H_
7 7
8 #include "src/v8.h" 8 #include "src/v8.h"
9 9
10 #include "src/allocation.h" 10 #include "src/allocation.h"
(...skipping 3473 matching lines...) Expand 10 before | Expand all | Expand 10 after
3484 3484
3485 static HConstant* CreateAndInsertAfter(Zone* zone, 3485 static HConstant* CreateAndInsertAfter(Zone* zone,
3486 HValue* context, 3486 HValue* context,
3487 int32_t value, 3487 int32_t value,
3488 Representation representation, 3488 Representation representation,
3489 HInstruction* instruction) { 3489 HInstruction* instruction) {
3490 return instruction->Append(HConstant::New( 3490 return instruction->Append(HConstant::New(
3491 zone, context, value, representation)); 3491 zone, context, value, representation));
3492 } 3492 }
3493 3493
3494 virtual Handle<Map> GetMonomorphicJSObjectMap() OVERRIDE {
3495 Handle<Object> object = object_.handle();
3496 if (object->IsHeapObject()) {
3497 return v8::internal::handle(HeapObject::cast(*object)->map());
3498 }
3499 return Handle<Map>();
3500 }
3501
3494 static HConstant* CreateAndInsertBefore(Zone* zone, 3502 static HConstant* CreateAndInsertBefore(Zone* zone,
3495 HValue* context, 3503 HValue* context,
3496 int32_t value, 3504 int32_t value,
3497 Representation representation, 3505 Representation representation,
3498 HInstruction* instruction) { 3506 HInstruction* instruction) {
3499 return instruction->Prepend(HConstant::New( 3507 return instruction->Prepend(HConstant::New(
3500 zone, context, value, representation)); 3508 zone, context, value, representation));
3501 } 3509 }
3502 3510
3503 static HConstant* CreateAndInsertBefore(Zone* zone, 3511 static HConstant* CreateAndInsertBefore(Zone* zone,
(...skipping 2001 matching lines...) Expand 10 before | Expand all | Expand 10 after
5505 } 5513 }
5506 5514
5507 virtual Representation RequiredInputRepresentation(int index) OVERRIDE { 5515 virtual Representation RequiredInputRepresentation(int index) OVERRIDE {
5508 if (index == 0) { 5516 if (index == 0) {
5509 return Representation::Tagged(); 5517 return Representation::Tagged();
5510 } else { 5518 } else {
5511 return Representation::Integer32(); 5519 return Representation::Integer32();
5512 } 5520 }
5513 } 5521 }
5514 5522
5515 virtual Handle<Map> GetMonomorphicJSObjectMap() { 5523 virtual Handle<Map> GetMonomorphicJSObjectMap() OVERRIDE {
5516 return known_initial_map_; 5524 return known_initial_map_;
5517 } 5525 }
5518 5526
5519 void set_known_initial_map(Handle<Map> known_initial_map) { 5527 void set_known_initial_map(Handle<Map> known_initial_map) {
5520 known_initial_map_ = known_initial_map; 5528 known_initial_map_ = known_initial_map;
5521 } 5529 }
5522 5530
5523 bool IsNewSpaceAllocation() const { 5531 bool IsNewSpaceAllocation() const {
5524 return (flags_ & ALLOCATE_IN_NEW_SPACE) != 0; 5532 return (flags_ & ALLOCATE_IN_NEW_SPACE) != 0;
5525 } 5533 }
(...skipping 2327 matching lines...) Expand 10 before | Expand all | Expand 10 after
7853 }; 7861 };
7854 7862
7855 7863
7856 7864
7857 #undef DECLARE_INSTRUCTION 7865 #undef DECLARE_INSTRUCTION
7858 #undef DECLARE_CONCRETE_INSTRUCTION 7866 #undef DECLARE_CONCRETE_INSTRUCTION
7859 7867
7860 } } // namespace v8::internal 7868 } } // namespace v8::internal
7861 7869
7862 #endif // V8_HYDROGEN_INSTRUCTIONS_H_ 7870 #endif // V8_HYDROGEN_INSTRUCTIONS_H_
OLDNEW
« no previous file with comments | « src/hydrogen.cc ('k') | test/mjsunit/regress/regress-inline-constant-load.js » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698