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

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

Issue 17082003: Let NaN flow as double into HBranch (Closed) Base URL: https://v8.googlecode.com/svn/branches/bleeding_edge
Patch Set: Created 7 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 2012 the V8 project authors. All rights reserved. 1 // Copyright 2012 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 1578 matching lines...) Expand 10 before | Expand all | Expand 10 after
1589 1589
1590 HValue* value() { return OperandAt(0); } 1590 HValue* value() { return OperandAt(0); }
1591 }; 1591 };
1592 1592
1593 1593
1594 class HBranch: public HUnaryControlInstruction { 1594 class HBranch: public HUnaryControlInstruction {
1595 public: 1595 public:
1596 HBranch(HValue* value, 1596 HBranch(HValue* value,
1597 HBasicBlock* true_target, 1597 HBasicBlock* true_target,
1598 HBasicBlock* false_target, 1598 HBasicBlock* false_target,
1599 ToBooleanStub::Types expected_input_types = ToBooleanStub::no_types()) 1599 ToBooleanStub::Types expected_input_types = ToBooleanStub::Types())
1600 : HUnaryControlInstruction(value, true_target, false_target), 1600 : HUnaryControlInstruction(value, true_target, false_target),
1601 expected_input_types_(expected_input_types) { 1601 expected_input_types_(expected_input_types) {
1602 ASSERT(true_target != NULL && false_target != NULL); 1602 ASSERT(true_target != NULL && false_target != NULL);
1603 SetFlag(kAllowUndefinedAsNaN);
1603 } 1604 }
1604 explicit HBranch(HValue* value) 1605 explicit HBranch(HValue* value)
1605 : HUnaryControlInstruction(value, NULL, NULL) { } 1606 : HUnaryControlInstruction(value, NULL, NULL) {
1607 SetFlag(kAllowUndefinedAsNaN);
1608 }
1606 HBranch(HValue* value, ToBooleanStub::Types expected_input_types) 1609 HBranch(HValue* value, ToBooleanStub::Types expected_input_types)
1607 : HUnaryControlInstruction(value, NULL, NULL), 1610 : HUnaryControlInstruction(value, NULL, NULL),
1608 expected_input_types_(expected_input_types) { } 1611 expected_input_types_(expected_input_types) {
1609 1612 SetFlag(kAllowUndefinedAsNaN);
1613 }
1610 1614
1611 virtual Representation RequiredInputRepresentation(int index) { 1615 virtual Representation RequiredInputRepresentation(int index) {
1612 return Representation::None(); 1616 return Representation::None();
1613 } 1617 }
1614 virtual Representation observed_input_representation(int index); 1618 virtual Representation observed_input_representation(int index);
1615 1619
1616 ToBooleanStub::Types expected_input_types() const { 1620 ToBooleanStub::Types expected_input_types() const {
1617 return expected_input_types_; 1621 return expected_input_types_;
1618 } 1622 }
1619 1623
(...skipping 4988 matching lines...) Expand 10 before | Expand all | Expand 10 after
6608 virtual bool IsDeletable() const { return true; } 6612 virtual bool IsDeletable() const { return true; }
6609 }; 6613 };
6610 6614
6611 6615
6612 #undef DECLARE_INSTRUCTION 6616 #undef DECLARE_INSTRUCTION
6613 #undef DECLARE_CONCRETE_INSTRUCTION 6617 #undef DECLARE_CONCRETE_INSTRUCTION
6614 6618
6615 } } // namespace v8::internal 6619 } } // namespace v8::internal
6616 6620
6617 #endif // V8_HYDROGEN_INSTRUCTIONS_H_ 6621 #endif // V8_HYDROGEN_INSTRUCTIONS_H_
OLDNEW
« src/arm/lithium-arm.cc ('K') | « src/hydrogen.cc ('k') | src/hydrogen-instructions.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698