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

Side by Side Diff: src/x64/lithium-x64.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 1628 matching lines...) Expand 10 before | Expand all | Expand 10 after
1639 explicit LSmiTag(LOperand* value) { 1639 explicit LSmiTag(LOperand* value) {
1640 inputs_[0] = value; 1640 inputs_[0] = value;
1641 } 1641 }
1642 1642
1643 DECLARE_CONCRETE_INSTRUCTION(SmiTag, "smi-tag") 1643 DECLARE_CONCRETE_INSTRUCTION(SmiTag, "smi-tag")
1644 }; 1644 };
1645 1645
1646 1646
1647 class LNumberUntagD: public LTemplateInstruction<1, 1, 0> { 1647 class LNumberUntagD: public LTemplateInstruction<1, 1, 0> {
1648 public: 1648 public:
1649 explicit LNumberUntagD(LOperand* value) { 1649 LNumberUntagD(LOperand* value, bool deoptimize_on_undefined)
1650 : deoptimize_on_undefined_(deoptimize_on_undefined) {
1650 inputs_[0] = value; 1651 inputs_[0] = value;
1651 } 1652 }
1652 1653
1654 bool deoptimize_on_undefined() { return deoptimize_on_undefined_; }
1655
1653 DECLARE_CONCRETE_INSTRUCTION(NumberUntagD, "double-untag") 1656 DECLARE_CONCRETE_INSTRUCTION(NumberUntagD, "double-untag")
1657
1658 private:
1659 bool deoptimize_on_undefined_;
1654 }; 1660 };
1655 1661
1656 1662
1657 class LSmiUntag: public LTemplateInstruction<1, 1, 0> { 1663 class LSmiUntag: public LTemplateInstruction<1, 1, 0> {
1658 public: 1664 public:
1659 LSmiUntag(LOperand* value, bool needs_check) 1665 LSmiUntag(LOperand* value, bool needs_check)
1660 : needs_check_(needs_check) { 1666 : needs_check_(needs_check) {
1661 inputs_[0] = value; 1667 inputs_[0] = value;
1662 } 1668 }
1663 1669
(...skipping 639 matching lines...) Expand 10 before | Expand all | Expand 10 after
2303 2309
2304 DISALLOW_COPY_AND_ASSIGN(LChunkBuilder); 2310 DISALLOW_COPY_AND_ASSIGN(LChunkBuilder);
2305 }; 2311 };
2306 2312
2307 #undef DECLARE_HYDROGEN_ACCESSOR 2313 #undef DECLARE_HYDROGEN_ACCESSOR
2308 #undef DECLARE_CONCRETE_INSTRUCTION 2314 #undef DECLARE_CONCRETE_INSTRUCTION
2309 2315
2310 } } // namespace v8::int 2316 } } // namespace v8::int
2311 2317
2312 #endif // V8_X64_LITHIUM_X64_H_ 2318 #endif // V8_X64_LITHIUM_X64_H_
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698