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

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

Issue 535873002: Encapsulate megamorphic load/tail-call in hydrogen (Closed) Base URL: https://v8.googlecode.com/svn/branches/bleeding_edge
Patch Set: REBASE. Created 6 years, 3 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 | « src/arm/lithium-codegen-arm.cc ('k') | src/arm64/lithium-arm64.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 2013 the V8 project authors. All rights reserved. 1 // Copyright 2013 the V8 project authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #ifndef V8_ARM64_LITHIUM_ARM64_H_ 5 #ifndef V8_ARM64_LITHIUM_ARM64_H_
6 #define V8_ARM64_LITHIUM_ARM64_H_ 6 #define V8_ARM64_LITHIUM_ARM64_H_
7 7
8 #include "src/hydrogen.h" 8 #include "src/hydrogen.h"
9 #include "src/lithium.h" 9 #include "src/lithium.h"
10 #include "src/lithium-allocator.h" 10 #include "src/lithium-allocator.h"
(...skipping 147 matching lines...) Expand 10 before | Expand all | Expand 10 after
158 V(StoreKeyedGeneric) \ 158 V(StoreKeyedGeneric) \
159 V(StoreNamedField) \ 159 V(StoreNamedField) \
160 V(StoreNamedGeneric) \ 160 V(StoreNamedGeneric) \
161 V(StringAdd) \ 161 V(StringAdd) \
162 V(StringCharCodeAt) \ 162 V(StringCharCodeAt) \
163 V(StringCharFromCode) \ 163 V(StringCharFromCode) \
164 V(StringCompareAndBranch) \ 164 V(StringCompareAndBranch) \
165 V(SubI) \ 165 V(SubI) \
166 V(SubS) \ 166 V(SubS) \
167 V(TaggedToI) \ 167 V(TaggedToI) \
168 V(TailCallThroughMegamorphicCache) \
168 V(ThisFunction) \ 169 V(ThisFunction) \
169 V(ToFastProperties) \ 170 V(ToFastProperties) \
170 V(TransitionElementsKind) \ 171 V(TransitionElementsKind) \
171 V(TrapAllocationMemento) \ 172 V(TrapAllocationMemento) \
172 V(TruncateDoubleToIntOrSmi) \ 173 V(TruncateDoubleToIntOrSmi) \
173 V(Typeof) \ 174 V(Typeof) \
174 V(TypeofIsAndBranch) \ 175 V(TypeofIsAndBranch) \
175 V(Uint32ToDouble) \ 176 V(Uint32ToDouble) \
176 V(UnknownOSRValue) \ 177 V(UnknownOSRValue) \
177 V(WrapReceiver) 178 V(WrapReceiver)
(...skipping 139 matching lines...) Expand 10 before | Expand all | Expand 10 after
317 private: 318 private:
318 // Iterator support. 319 // Iterator support.
319 virtual int InputCount() FINAL OVERRIDE { return I; } 320 virtual int InputCount() FINAL OVERRIDE { return I; }
320 virtual LOperand* InputAt(int i) FINAL OVERRIDE { return inputs_[i]; } 321 virtual LOperand* InputAt(int i) FINAL OVERRIDE { return inputs_[i]; }
321 322
322 virtual int TempCount() FINAL OVERRIDE { return T; } 323 virtual int TempCount() FINAL OVERRIDE { return T; }
323 virtual LOperand* TempAt(int i) FINAL OVERRIDE { return temps_[i]; } 324 virtual LOperand* TempAt(int i) FINAL OVERRIDE { return temps_[i]; }
324 }; 325 };
325 326
326 327
328 class LTailCallThroughMegamorphicCache FINAL
329 : public LTemplateInstruction<0, 3, 0> {
330 public:
331 explicit LTailCallThroughMegamorphicCache(LOperand* context,
332 LOperand* receiver,
333 LOperand* name) {
334 inputs_[0] = context;
335 inputs_[1] = receiver;
336 inputs_[2] = name;
337 }
338
339 LOperand* context() { return inputs_[0]; }
340 LOperand* receiver() { return inputs_[1]; }
341 LOperand* name() { return inputs_[2]; }
342
343 DECLARE_CONCRETE_INSTRUCTION(TailCallThroughMegamorphicCache,
344 "tail-call-through-megamorphic-cache")
345 DECLARE_HYDROGEN_ACCESSOR(TailCallThroughMegamorphicCache)
346 };
347
348
327 class LUnknownOSRValue FINAL : public LTemplateInstruction<1, 0, 0> { 349 class LUnknownOSRValue FINAL : public LTemplateInstruction<1, 0, 0> {
328 public: 350 public:
329 virtual bool HasInterestingComment(LCodeGen* gen) const OVERRIDE { 351 virtual bool HasInterestingComment(LCodeGen* gen) const OVERRIDE {
330 return false; 352 return false;
331 } 353 }
332 DECLARE_CONCRETE_INSTRUCTION(UnknownOSRValue, "unknown-osr-value") 354 DECLARE_CONCRETE_INSTRUCTION(UnknownOSRValue, "unknown-osr-value")
333 }; 355 };
334 356
335 357
336 template<int I, int T> 358 template<int I, int T>
(...skipping 2922 matching lines...) Expand 10 before | Expand all | Expand 10 after
3259 3281
3260 DISALLOW_COPY_AND_ASSIGN(LChunkBuilder); 3282 DISALLOW_COPY_AND_ASSIGN(LChunkBuilder);
3261 }; 3283 };
3262 3284
3263 #undef DECLARE_HYDROGEN_ACCESSOR 3285 #undef DECLARE_HYDROGEN_ACCESSOR
3264 #undef DECLARE_CONCRETE_INSTRUCTION 3286 #undef DECLARE_CONCRETE_INSTRUCTION
3265 3287
3266 } } // namespace v8::internal 3288 } } // namespace v8::internal
3267 3289
3268 #endif // V8_ARM64_LITHIUM_ARM64_H_ 3290 #endif // V8_ARM64_LITHIUM_ARM64_H_
OLDNEW
« no previous file with comments | « src/arm/lithium-codegen-arm.cc ('k') | src/arm64/lithium-arm64.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698