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

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

Issue 1086873003: Array() in optimized code can create with wrong ElementsKind in corner cases. (Closed) Base URL: https://chromium.googlesource.com/v8/v8.git@master
Patch Set: Address comments and test failure. Created 5 years, 8 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/hydrogen.cc ('k') | src/ia32/lithium-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 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 <cstring> 8 #include <cstring>
9 #include <iosfwd> 9 #include <iosfwd>
10 10
(...skipping 2412 matching lines...) Expand 10 before | Expand all | Expand 10 after
2423 DECLARE_CONCRETE_INSTRUCTION(CallNew) 2423 DECLARE_CONCRETE_INSTRUCTION(CallNew)
2424 2424
2425 private: 2425 private:
2426 HCallNew(HValue* context, HValue* constructor, int argument_count) 2426 HCallNew(HValue* context, HValue* constructor, int argument_count)
2427 : HBinaryCall(context, constructor, argument_count) {} 2427 : HBinaryCall(context, constructor, argument_count) {}
2428 }; 2428 };
2429 2429
2430 2430
2431 class HCallNewArray FINAL : public HBinaryCall { 2431 class HCallNewArray FINAL : public HBinaryCall {
2432 public: 2432 public:
2433 DECLARE_INSTRUCTION_WITH_CONTEXT_FACTORY_P3(HCallNewArray, 2433 DECLARE_INSTRUCTION_WITH_CONTEXT_FACTORY_P4(HCallNewArray, HValue*, int,
2434 HValue*, 2434 ElementsKind,
2435 int, 2435 Handle<AllocationSite>);
2436 ElementsKind);
2437 2436
2438 HValue* context() { return first(); } 2437 HValue* context() { return first(); }
2439 HValue* constructor() { return second(); } 2438 HValue* constructor() { return second(); }
2440 2439
2441 std::ostream& PrintDataTo(std::ostream& os) const OVERRIDE; // NOLINT 2440 std::ostream& PrintDataTo(std::ostream& os) const OVERRIDE; // NOLINT
2442 2441
2443 ElementsKind elements_kind() const { return elements_kind_; } 2442 ElementsKind elements_kind() const { return elements_kind_; }
2443 Handle<AllocationSite> site() const { return site_; }
2444 2444
2445 DECLARE_CONCRETE_INSTRUCTION(CallNewArray) 2445 DECLARE_CONCRETE_INSTRUCTION(CallNewArray)
2446 2446
2447 private: 2447 private:
2448 HCallNewArray(HValue* context, HValue* constructor, int argument_count, 2448 HCallNewArray(HValue* context, HValue* constructor, int argument_count,
2449 ElementsKind elements_kind) 2449 ElementsKind elements_kind, Handle<AllocationSite> site)
2450 : HBinaryCall(context, constructor, argument_count), 2450 : HBinaryCall(context, constructor, argument_count),
2451 elements_kind_(elements_kind) {} 2451 elements_kind_(elements_kind),
2452 site_(site) {}
2452 2453
2453 ElementsKind elements_kind_; 2454 ElementsKind elements_kind_;
2455 Handle<AllocationSite> site_;
2454 }; 2456 };
2455 2457
2456 2458
2457 class HCallRuntime FINAL : public HCall<1> { 2459 class HCallRuntime FINAL : public HCall<1> {
2458 public: 2460 public:
2459 DECLARE_INSTRUCTION_WITH_CONTEXT_FACTORY_P3(HCallRuntime, 2461 DECLARE_INSTRUCTION_WITH_CONTEXT_FACTORY_P3(HCallRuntime,
2460 Handle<String>, 2462 Handle<String>,
2461 const Runtime::Function*, 2463 const Runtime::Function*,
2462 int); 2464 int);
2463 2465
(...skipping 5364 matching lines...) Expand 10 before | Expand all | Expand 10 after
7828 }; 7830 };
7829 7831
7830 7832
7831 7833
7832 #undef DECLARE_INSTRUCTION 7834 #undef DECLARE_INSTRUCTION
7833 #undef DECLARE_CONCRETE_INSTRUCTION 7835 #undef DECLARE_CONCRETE_INSTRUCTION
7834 7836
7835 } } // namespace v8::internal 7837 } } // namespace v8::internal
7836 7838
7837 #endif // V8_HYDROGEN_INSTRUCTIONS_H_ 7839 #endif // V8_HYDROGEN_INSTRUCTIONS_H_
OLDNEW
« no previous file with comments | « src/hydrogen.cc ('k') | src/ia32/lithium-codegen-ia32.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698