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

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

Issue 5961016: Optimize array-length and fast element loads.... (Closed) Base URL: http://v8.googlecode.com/svn/branches/bleeding_edge/
Patch Set: '' Created 9 years, 11 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
« no previous file with comments | « no previous file | src/arm/lithium-arm.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 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 83 matching lines...) Expand 10 before | Expand all | Expand 10 after
94 // LOsrEntry 94 // LOsrEntry
95 // LParameter 95 // LParameter
96 // LStackCheck 96 // LStackCheck
97 // LStoreKeyed 97 // LStoreKeyed
98 // LStoreKeyedFastElement 98 // LStoreKeyedFastElement
99 // LStoreKeyedGeneric 99 // LStoreKeyedGeneric
100 // LStoreNamed 100 // LStoreNamed
101 // LStoreNamedField 101 // LStoreNamedField
102 // LStoreNamedGeneric 102 // LStoreNamedGeneric
103 // LUnaryOperation 103 // LUnaryOperation
104 // LArrayLength 104 // LJSArrayLength
105 // LFixedArrayLength
105 // LBitNotI 106 // LBitNotI
106 // LBranch 107 // LBranch
107 // LCallNew 108 // LCallNew
108 // LCheckFunction 109 // LCheckFunction
109 // LCheckInstanceType 110 // LCheckInstanceType
110 // LCheckMap 111 // LCheckMap
111 // LCheckPrototypeMaps 112 // LCheckPrototypeMaps
112 // LCheckSmi 113 // LCheckSmi
113 // LClassOfTest 114 // LClassOfTest
114 // LClassOfTestAndBranch 115 // LClassOfTestAndBranch
(...skipping 40 matching lines...) Expand 10 before | Expand all | Expand 10 after
155 156
156 157
157 #define LITHIUM_CONCRETE_INSTRUCTION_LIST(V) \ 158 #define LITHIUM_CONCRETE_INSTRUCTION_LIST(V) \
158 V(AccessArgumentsAt) \ 159 V(AccessArgumentsAt) \
159 V(AddI) \ 160 V(AddI) \
160 V(ApplyArguments) \ 161 V(ApplyArguments) \
161 V(ArgumentsElements) \ 162 V(ArgumentsElements) \
162 V(ArgumentsLength) \ 163 V(ArgumentsLength) \
163 V(ArithmeticD) \ 164 V(ArithmeticD) \
164 V(ArithmeticT) \ 165 V(ArithmeticT) \
165 V(ArrayLength) \
166 V(ArrayLiteral) \ 166 V(ArrayLiteral) \
167 V(BitI) \ 167 V(BitI) \
168 V(BitNotI) \ 168 V(BitNotI) \
169 V(BoundsCheck) \ 169 V(BoundsCheck) \
170 V(Branch) \ 170 V(Branch) \
171 V(CallConstantFunction) \ 171 V(CallConstantFunction) \
172 V(CallFunction) \ 172 V(CallFunction) \
173 V(CallGlobal) \ 173 V(CallGlobal) \
174 V(CallKeyed) \ 174 V(CallKeyed) \
175 V(CallKnownGlobal) \ 175 V(CallKnownGlobal) \
(...skipping 13 matching lines...) Expand all
189 V(CmpMapAndBranch) \ 189 V(CmpMapAndBranch) \
190 V(CmpT) \ 190 V(CmpT) \
191 V(CmpTAndBranch) \ 191 V(CmpTAndBranch) \
192 V(ConstantD) \ 192 V(ConstantD) \
193 V(ConstantI) \ 193 V(ConstantI) \
194 V(ConstantT) \ 194 V(ConstantT) \
195 V(DeleteProperty) \ 195 V(DeleteProperty) \
196 V(Deoptimize) \ 196 V(Deoptimize) \
197 V(DivI) \ 197 V(DivI) \
198 V(DoubleToI) \ 198 V(DoubleToI) \
199 V(FixedArrayLength) \
199 V(FunctionLiteral) \ 200 V(FunctionLiteral) \
200 V(Gap) \ 201 V(Gap) \
201 V(GlobalObject) \ 202 V(GlobalObject) \
202 V(GlobalReceiver) \ 203 V(GlobalReceiver) \
203 V(Goto) \ 204 V(Goto) \
204 V(InstanceOf) \ 205 V(InstanceOf) \
205 V(InstanceOfAndBranch) \ 206 V(InstanceOfAndBranch) \
206 V(Integer32ToDouble) \ 207 V(Integer32ToDouble) \
207 V(IsNull) \ 208 V(IsNull) \
208 V(IsNullAndBranch) \ 209 V(IsNullAndBranch) \
209 V(IsObject) \ 210 V(IsObject) \
210 V(IsObjectAndBranch) \ 211 V(IsObjectAndBranch) \
211 V(IsSmi) \ 212 V(IsSmi) \
212 V(IsSmiAndBranch) \ 213 V(IsSmiAndBranch) \
214 V(JSArrayLength) \
213 V(HasInstanceType) \ 215 V(HasInstanceType) \
214 V(HasInstanceTypeAndBranch) \ 216 V(HasInstanceTypeAndBranch) \
215 V(HasCachedArrayIndex) \ 217 V(HasCachedArrayIndex) \
216 V(HasCachedArrayIndexAndBranch) \ 218 V(HasCachedArrayIndexAndBranch) \
217 V(ClassOfTest) \ 219 V(ClassOfTest) \
218 V(ClassOfTestAndBranch) \ 220 V(ClassOfTestAndBranch) \
219 V(Label) \ 221 V(Label) \
220 V(LazyBailout) \ 222 V(LazyBailout) \
221 V(LoadElements) \ 223 V(LoadElements) \
222 V(LoadGlobal) \ 224 V(LoadGlobal) \
(...skipping 913 matching lines...) Expand 10 before | Expand all | Expand 10 after
1136 int true_block_id() const { return true_block_id_; } 1138 int true_block_id() const { return true_block_id_; }
1137 int false_block_id() const { return false_block_id_; } 1139 int false_block_id() const { return false_block_id_; }
1138 1140
1139 private: 1141 private:
1140 Handle<Map> map_; 1142 Handle<Map> map_;
1141 int true_block_id_; 1143 int true_block_id_;
1142 int false_block_id_; 1144 int false_block_id_;
1143 }; 1145 };
1144 1146
1145 1147
1146 class LArrayLength: public LUnaryOperation { 1148 class LJSArrayLength: public LUnaryOperation {
1147 public: 1149 public:
1148 LArrayLength(LOperand* input, LOperand* temporary) 1150 explicit LJSArrayLength(LOperand* input) : LUnaryOperation(input) { }
1149 : LUnaryOperation(input), temporary_(temporary) { }
1150 1151
1151 LOperand* temporary() const { return temporary_; } 1152 DECLARE_CONCRETE_INSTRUCTION(JSArrayLength, "js-array-length")
1152 1153 DECLARE_HYDROGEN_ACCESSOR(JSArrayLength)
1153 DECLARE_CONCRETE_INSTRUCTION(ArrayLength, "array-length")
1154 DECLARE_HYDROGEN_ACCESSOR(ArrayLength)
1155
1156 private:
1157 LOperand* temporary_;
1158 }; 1154 };
1159 1155
1160 1156
1157 class LFixedArrayLength: public LUnaryOperation {
1158 public:
1159 explicit LFixedArrayLength(LOperand* input) : LUnaryOperation(input) { }
1160
1161 DECLARE_CONCRETE_INSTRUCTION(FixedArrayLength, "fixed-array-length")
1162 DECLARE_HYDROGEN_ACCESSOR(FixedArrayLength)
1163 };
1164
1165
1161 class LValueOf: public LUnaryOperation { 1166 class LValueOf: public LUnaryOperation {
1162 public: 1167 public:
1163 LValueOf(LOperand* input, LOperand* temporary) 1168 LValueOf(LOperand* input, LOperand* temporary)
1164 : LUnaryOperation(input), temporary_(temporary) { } 1169 : LUnaryOperation(input), temporary_(temporary) { }
1165 1170
1166 LOperand* temporary() const { return temporary_; } 1171 LOperand* temporary() const { return temporary_; }
1167 1172
1168 DECLARE_CONCRETE_INSTRUCTION(ValueOf, "value-of") 1173 DECLARE_CONCRETE_INSTRUCTION(ValueOf, "value-of")
1169 DECLARE_HYDROGEN_ACCESSOR(ValueOf) 1174 DECLARE_HYDROGEN_ACCESSOR(ValueOf)
1170 1175
(...skipping 953 matching lines...) Expand 10 before | Expand all | Expand 10 after
2124 DISALLOW_COPY_AND_ASSIGN(LChunkBuilder); 2129 DISALLOW_COPY_AND_ASSIGN(LChunkBuilder);
2125 }; 2130 };
2126 2131
2127 #undef DECLARE_HYDROGEN_ACCESSOR 2132 #undef DECLARE_HYDROGEN_ACCESSOR
2128 #undef DECLARE_INSTRUCTION 2133 #undef DECLARE_INSTRUCTION
2129 #undef DECLARE_CONCRETE_INSTRUCTION 2134 #undef DECLARE_CONCRETE_INSTRUCTION
2130 2135
2131 } } // namespace v8::internal 2136 } } // namespace v8::internal
2132 2137
2133 #endif // V8_ARM_LITHIUM_ARM_H_ 2138 #endif // V8_ARM_LITHIUM_ARM_H_
OLDNEW
« no previous file with comments | « no previous file | src/arm/lithium-arm.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698