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

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

Issue 767743002: Hydrogen code stubs for vector-based ICs. (Closed) Base URL: https://chromium.googlesource.com/v8/v8.git@master
Patch Set: Code comment response (mostly). Created 6 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
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 308 matching lines...) Expand 10 before | Expand all | Expand 10 after
319 // Iterator support. 319 // Iterator support.
320 virtual int InputCount() FINAL OVERRIDE { return I; } 320 virtual int InputCount() FINAL OVERRIDE { return I; }
321 virtual LOperand* InputAt(int i) FINAL OVERRIDE { return inputs_[i]; } 321 virtual LOperand* InputAt(int i) FINAL OVERRIDE { return inputs_[i]; }
322 322
323 virtual int TempCount() FINAL OVERRIDE { return T; } 323 virtual int TempCount() FINAL OVERRIDE { return T; }
324 virtual LOperand* TempAt(int i) FINAL OVERRIDE { return temps_[i]; } 324 virtual LOperand* TempAt(int i) FINAL OVERRIDE { return temps_[i]; }
325 }; 325 };
326 326
327 327
328 class LTailCallThroughMegamorphicCache FINAL 328 class LTailCallThroughMegamorphicCache FINAL
329 : public LTemplateInstruction<0, 3, 0> { 329 : public LTemplateInstruction<0, 5, 0> {
330 public: 330 public:
331 explicit LTailCallThroughMegamorphicCache(LOperand* context, 331 LTailCallThroughMegamorphicCache(LOperand* context, LOperand* receiver,
332 LOperand* receiver, 332 LOperand* name, LOperand* slot,
333 LOperand* name) { 333 LOperand* vector) {
334 inputs_[0] = context; 334 inputs_[0] = context;
335 inputs_[1] = receiver; 335 inputs_[1] = receiver;
336 inputs_[2] = name; 336 inputs_[2] = name;
337 inputs_[3] = slot;
338 inputs_[4] = vector;
337 } 339 }
338 340
339 LOperand* context() { return inputs_[0]; } 341 LOperand* context() { return inputs_[0]; }
340 LOperand* receiver() { return inputs_[1]; } 342 LOperand* receiver() { return inputs_[1]; }
341 LOperand* name() { return inputs_[2]; } 343 LOperand* name() { return inputs_[2]; }
344 LOperand* slot() { return inputs_[3]; }
345 LOperand* vector() { return inputs_[4]; }
342 346
343 DECLARE_CONCRETE_INSTRUCTION(TailCallThroughMegamorphicCache, 347 DECLARE_CONCRETE_INSTRUCTION(TailCallThroughMegamorphicCache,
344 "tail-call-through-megamorphic-cache") 348 "tail-call-through-megamorphic-cache")
345 DECLARE_HYDROGEN_ACCESSOR(TailCallThroughMegamorphicCache) 349 DECLARE_HYDROGEN_ACCESSOR(TailCallThroughMegamorphicCache)
346 }; 350 };
347 351
348 352
349 class LUnknownOSRValue FINAL : public LTemplateInstruction<1, 0, 0> { 353 class LUnknownOSRValue FINAL : public LTemplateInstruction<1, 0, 0> {
350 public: 354 public:
351 virtual bool HasInterestingComment(LCodeGen* gen) const OVERRIDE { 355 virtual bool HasInterestingComment(LCodeGen* gen) const OVERRIDE {
(...skipping 1196 matching lines...) Expand 10 before | Expand all | Expand 10 after
1548 : descriptor_(descriptor), 1552 : descriptor_(descriptor),
1549 inputs_(descriptor.GetRegisterParameterCount() + 1, zone) { 1553 inputs_(descriptor.GetRegisterParameterCount() + 1, zone) {
1550 DCHECK(descriptor.GetRegisterParameterCount() + 1 == operands.length()); 1554 DCHECK(descriptor.GetRegisterParameterCount() + 1 == operands.length());
1551 inputs_.AddAll(operands, zone); 1555 inputs_.AddAll(operands, zone);
1552 } 1556 }
1553 1557
1554 LOperand* target() const { return inputs_[0]; } 1558 LOperand* target() const { return inputs_[0]; }
1555 1559
1556 CallInterfaceDescriptor descriptor() { return descriptor_; } 1560 CallInterfaceDescriptor descriptor() { return descriptor_; }
1557 1561
1562 DECLARE_HYDROGEN_ACCESSOR(CallWithDescriptor)
1563
1558 private: 1564 private:
1559 DECLARE_CONCRETE_INSTRUCTION(CallWithDescriptor, "call-with-descriptor") 1565 DECLARE_CONCRETE_INSTRUCTION(CallWithDescriptor, "call-with-descriptor")
1560 DECLARE_HYDROGEN_ACCESSOR(CallWithDescriptor)
1561 1566
1562 virtual void PrintDataTo(StringStream* stream) OVERRIDE; 1567 virtual void PrintDataTo(StringStream* stream) OVERRIDE;
1563 1568
1564 int arity() const { return hydrogen()->argument_count() - 1; } 1569 int arity() const { return hydrogen()->argument_count() - 1; }
1565 1570
1566 CallInterfaceDescriptor descriptor_; 1571 CallInterfaceDescriptor descriptor_;
1567 ZoneList<LOperand*> inputs_; 1572 ZoneList<LOperand*> inputs_;
1568 1573
1569 // Iterator support. 1574 // Iterator support.
1570 virtual int InputCount() FINAL OVERRIDE { return inputs_.length(); } 1575 virtual int InputCount() FINAL OVERRIDE { return inputs_.length(); }
(...skipping 1679 matching lines...) Expand 10 before | Expand all | Expand 10 after
3250 3255
3251 DISALLOW_COPY_AND_ASSIGN(LChunkBuilder); 3256 DISALLOW_COPY_AND_ASSIGN(LChunkBuilder);
3252 }; 3257 };
3253 3258
3254 #undef DECLARE_HYDROGEN_ACCESSOR 3259 #undef DECLARE_HYDROGEN_ACCESSOR
3255 #undef DECLARE_CONCRETE_INSTRUCTION 3260 #undef DECLARE_CONCRETE_INSTRUCTION
3256 3261
3257 } } // namespace v8::internal 3262 } } // namespace v8::internal
3258 3263
3259 #endif // V8_ARM64_LITHIUM_ARM64_H_ 3264 #endif // V8_ARM64_LITHIUM_ARM64_H_
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698