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

Side by Side Diff: src/ia32/lithium-ia32.h

Issue 7044049: Add boolean flag to HChange and LNumberUntagD to not convert undefined to NaN. (Closed) Base URL: https://v8.googlecode.com/svn/branches/bleeding_edge
Patch Set: Add regression test, change test status. Created 9 years, 6 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
OLDNEW
1 // Copyright 2011 the V8 project authors. All rights reserved. 1 // Copyright 2011 the V8 project authors. All rights reserved.
2 // Redistribution and use in source and binary forms, with or without 2 // Redistribution and use in source and binary forms, with or without
3 // modification, are permitted provided that the following conditions are 3 // modification, are permitted provided that the following conditions are
4 // met: 4 // met:
5 // 5 //
6 // * Redistributions of source code must retain the above copyright 6 // * Redistributions of source code must retain the above copyright
7 // notice, this list of conditions and the following disclaimer. 7 // notice, this list of conditions and the following disclaimer.
8 // * Redistributions in binary form must reproduce the above 8 // * Redistributions in binary form must reproduce the above
9 // copyright notice, this list of conditions and the following 9 // copyright notice, this list of conditions and the following
10 // disclaimer in the documentation and/or other materials provided 10 // disclaimer in the documentation and/or other materials provided
(...skipping 1682 matching lines...) Expand 10 before | Expand all | Expand 10 after
1693 explicit LSmiTag(LOperand* value) { 1693 explicit LSmiTag(LOperand* value) {
1694 inputs_[0] = value; 1694 inputs_[0] = value;
1695 } 1695 }
1696 1696
1697 DECLARE_CONCRETE_INSTRUCTION(SmiTag, "smi-tag") 1697 DECLARE_CONCRETE_INSTRUCTION(SmiTag, "smi-tag")
1698 }; 1698 };
1699 1699
1700 1700
1701 class LNumberUntagD: public LTemplateInstruction<1, 1, 0> { 1701 class LNumberUntagD: public LTemplateInstruction<1, 1, 0> {
1702 public: 1702 public:
1703 explicit LNumberUntagD(LOperand* value) { 1703 LNumberUntagD(LOperand* value, bool deoptimize_on_undefined)
1704 : deoptimize_on_undefined_(deoptimize_on_undefined) {
1704 inputs_[0] = value; 1705 inputs_[0] = value;
1705 } 1706 }
1706 1707
1708 bool deoptimize_on_undefined() { return deoptimize_on_undefined_; }
1709
1707 DECLARE_CONCRETE_INSTRUCTION(NumberUntagD, "double-untag") 1710 DECLARE_CONCRETE_INSTRUCTION(NumberUntagD, "double-untag")
1711
1712 private:
1713 bool deoptimize_on_undefined_;
1708 }; 1714 };
1709 1715
1710 1716
1711 class LSmiUntag: public LTemplateInstruction<1, 1, 0> { 1717 class LSmiUntag: public LTemplateInstruction<1, 1, 0> {
1712 public: 1718 public:
1713 LSmiUntag(LOperand* value, bool needs_check) 1719 LSmiUntag(LOperand* value, bool needs_check)
1714 : needs_check_(needs_check) { 1720 : needs_check_(needs_check) {
1715 inputs_[0] = value; 1721 inputs_[0] = value;
1716 } 1722 }
1717 1723
(...skipping 645 matching lines...) Expand 10 before | Expand all | Expand 10 after
2363 2369
2364 DISALLOW_COPY_AND_ASSIGN(LChunkBuilder); 2370 DISALLOW_COPY_AND_ASSIGN(LChunkBuilder);
2365 }; 2371 };
2366 2372
2367 #undef DECLARE_HYDROGEN_ACCESSOR 2373 #undef DECLARE_HYDROGEN_ACCESSOR
2368 #undef DECLARE_CONCRETE_INSTRUCTION 2374 #undef DECLARE_CONCRETE_INSTRUCTION
2369 2375
2370 } } // namespace v8::internal 2376 } } // namespace v8::internal
2371 2377
2372 #endif // V8_IA32_LITHIUM_IA32_H_ 2378 #endif // V8_IA32_LITHIUM_IA32_H_
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698