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

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

Issue 5806001: Support %_IsObject in Crankshaft. (Closed) Base URL: http://v8.googlecode.com/svn/branches/bleeding_edge/
Patch Set: Created 10 years 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 | « no previous file | src/arm/lithium-arm.cc » ('j') | src/arm/lithium-arm.cc » ('J')
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright 2010 the V8 project authors. All rights reserved. 1 // Copyright 2010 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 103 matching lines...) Expand 10 before | Expand all | Expand 10 after
114 // LClassOfTestAndBranch 114 // LClassOfTestAndBranch
115 // LDeleteProperty 115 // LDeleteProperty
116 // LDoubleToI 116 // LDoubleToI
117 // LHasCachedArrayIndex 117 // LHasCachedArrayIndex
118 // LHasCachedArrayIndexAndBranch 118 // LHasCachedArrayIndexAndBranch
119 // LHasInstanceType 119 // LHasInstanceType
120 // LHasInstanceTypeAndBranch 120 // LHasInstanceTypeAndBranch
121 // LInteger32ToDouble 121 // LInteger32ToDouble
122 // LIsNull 122 // LIsNull
123 // LIsNullAndBranch 123 // LIsNullAndBranch
124 // LIsObject
125 // LIsObjectAndBranch
124 // LIsSmi 126 // LIsSmi
125 // LIsSmiAndBranch 127 // LIsSmiAndBranch
126 // LLoadNamedField 128 // LLoadNamedField
127 // LLoadNamedGeneric 129 // LLoadNamedGeneric
128 // LNumberTagD 130 // LNumberTagD
129 // LNumberTagI 131 // LNumberTagI
130 // LPushArgument 132 // LPushArgument
131 // LReturn 133 // LReturn
132 // LSmiTag 134 // LSmiTag
133 // LStoreGlobal 135 // LStoreGlobal
(...skipping 62 matching lines...) Expand 10 before | Expand all | Expand 10 after
196 V(FunctionLiteral) \ 198 V(FunctionLiteral) \
197 V(Gap) \ 199 V(Gap) \
198 V(GlobalObject) \ 200 V(GlobalObject) \
199 V(GlobalReceiver) \ 201 V(GlobalReceiver) \
200 V(Goto) \ 202 V(Goto) \
201 V(InstanceOf) \ 203 V(InstanceOf) \
202 V(InstanceOfAndBranch) \ 204 V(InstanceOfAndBranch) \
203 V(Integer32ToDouble) \ 205 V(Integer32ToDouble) \
204 V(IsNull) \ 206 V(IsNull) \
205 V(IsNullAndBranch) \ 207 V(IsNullAndBranch) \
208 V(IsObject) \
209 V(IsObjectAndBranch) \
206 V(IsSmi) \ 210 V(IsSmi) \
207 V(IsSmiAndBranch) \ 211 V(IsSmiAndBranch) \
208 V(HasInstanceType) \ 212 V(HasInstanceType) \
209 V(HasInstanceTypeAndBranch) \ 213 V(HasInstanceTypeAndBranch) \
210 V(HasCachedArrayIndex) \ 214 V(HasCachedArrayIndex) \
211 V(HasCachedArrayIndexAndBranch) \ 215 V(HasCachedArrayIndexAndBranch) \
212 V(ClassOfTest) \ 216 V(ClassOfTest) \
213 V(ClassOfTestAndBranch) \ 217 V(ClassOfTestAndBranch) \
214 V(Label) \ 218 V(Label) \
215 V(LazyBailout) \ 219 V(LazyBailout) \
(...skipping 519 matching lines...) Expand 10 before | Expand all | Expand 10 after
735 739
736 LOperand* temp() const { return temp_; } 740 LOperand* temp() const { return temp_; }
737 741
738 private: 742 private:
739 LOperand* temp_; 743 LOperand* temp_;
740 int true_block_id_; 744 int true_block_id_;
741 int false_block_id_; 745 int false_block_id_;
742 }; 746 };
743 747
744 748
749 class LIsObject: public LUnaryOperation {
750 public:
751 LIsObject(LOperand* value, LOperand* temp)
752 : LUnaryOperation(value), temp_(temp) {}
753
754 DECLARE_CONCRETE_INSTRUCTION(IsObject, "is-object")
755
756 LOperand* temp() { return temp_; }
Kevin Millikin (Chromium) 2010/12/15 11:45:38 We've made these accessors const in this file, so
757
758 private:
759 LOperand* temp_;
760 };
761
762
763 class LIsObjectAndBranch: public LIsObject {
764 public:
765 LIsObjectAndBranch(LOperand* value,
766 LOperand* temp,
767 LOperand* temp2,
768 int true_block_id,
769 int false_block_id)
770 : LIsObject(value, temp),
771 temp2_(temp2),
772 true_block_id_(true_block_id),
773 false_block_id_(false_block_id) { }
774
775 DECLARE_CONCRETE_INSTRUCTION(IsObjectAndBranch, "is-object-and-branch")
776 virtual void PrintDataTo(StringStream* stream) const;
777 virtual bool IsControl() const { return true; }
778
779 int true_block_id() const { return true_block_id_; }
780 int false_block_id() const { return false_block_id_; }
781
782 LOperand* temp2() { return temp2_; }
783
784 private:
785 LOperand* temp2_;
786 int true_block_id_;
787 int false_block_id_;
788 };
789
790
745 class LIsSmi: public LUnaryOperation { 791 class LIsSmi: public LUnaryOperation {
746 public: 792 public:
747 explicit LIsSmi(LOperand* value) : LUnaryOperation(value) {} 793 explicit LIsSmi(LOperand* value) : LUnaryOperation(value) {}
748 794
749 DECLARE_CONCRETE_INSTRUCTION(IsSmi, "is-smi") 795 DECLARE_CONCRETE_INSTRUCTION(IsSmi, "is-smi")
750 DECLARE_HYDROGEN_ACCESSOR(IsSmi) 796 DECLARE_HYDROGEN_ACCESSOR(IsSmi)
751 }; 797 };
752 798
753 799
754 class LIsSmiAndBranch: public LIsSmi { 800 class LIsSmiAndBranch: public LIsSmi {
(...skipping 1305 matching lines...) Expand 10 before | Expand all | Expand 10 after
2060 DISALLOW_COPY_AND_ASSIGN(LChunkBuilder); 2106 DISALLOW_COPY_AND_ASSIGN(LChunkBuilder);
2061 }; 2107 };
2062 2108
2063 #undef DECLARE_HYDROGEN_ACCESSOR 2109 #undef DECLARE_HYDROGEN_ACCESSOR
2064 #undef DECLARE_INSTRUCTION 2110 #undef DECLARE_INSTRUCTION
2065 #undef DECLARE_CONCRETE_INSTRUCTION 2111 #undef DECLARE_CONCRETE_INSTRUCTION
2066 2112
2067 } } // namespace v8::internal 2113 } } // namespace v8::internal
2068 2114
2069 #endif // V8_ARM_LITHIUM_ARM_H_ 2115 #endif // V8_ARM_LITHIUM_ARM_H_
OLDNEW
« no previous file with comments | « no previous file | src/arm/lithium-arm.cc » ('j') | src/arm/lithium-arm.cc » ('J')

Powered by Google App Engine
This is Rietveld 408576698