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

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

Issue 527093002: Make concrete classes for individual call descriptors. (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
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 1505 matching lines...) Expand 10 before | Expand all | Expand 10 after
1516 } 1516 }
1517 1517
1518 LOperand* value() { return inputs_[0]; } 1518 LOperand* value() { return inputs_[0]; }
1519 1519
1520 DECLARE_CONCRETE_INSTRUCTION(Integer32ToDouble, "int32-to-double") 1520 DECLARE_CONCRETE_INSTRUCTION(Integer32ToDouble, "int32-to-double")
1521 }; 1521 };
1522 1522
1523 1523
1524 class LCallWithDescriptor FINAL : public LTemplateResultInstruction<1> { 1524 class LCallWithDescriptor FINAL : public LTemplateResultInstruction<1> {
1525 public: 1525 public:
1526 LCallWithDescriptor(const CallInterfaceDescriptor* descriptor, 1526 LCallWithDescriptor(CallInterfaceDescriptor descriptor,
1527 const ZoneList<LOperand*>& operands, Zone* zone) 1527 const ZoneList<LOperand*>& operands, Zone* zone)
1528 : descriptor_(descriptor), 1528 : descriptor_(descriptor),
1529 inputs_(descriptor->GetRegisterParameterCount() + 1, zone) { 1529 inputs_(descriptor.GetRegisterParameterCount() + 1, zone) {
1530 DCHECK(descriptor->GetRegisterParameterCount() + 1 == operands.length()); 1530 DCHECK(descriptor.GetRegisterParameterCount() + 1 == operands.length());
1531 inputs_.AddAll(operands, zone); 1531 inputs_.AddAll(operands, zone);
1532 } 1532 }
1533 1533
1534 LOperand* target() const { return inputs_[0]; } 1534 LOperand* target() const { return inputs_[0]; }
1535 1535
1536 const CallInterfaceDescriptor* descriptor() { return descriptor_; } 1536 CallInterfaceDescriptor descriptor() { return descriptor_; }
1537 1537
1538 private: 1538 private:
1539 DECLARE_CONCRETE_INSTRUCTION(CallWithDescriptor, "call-with-descriptor") 1539 DECLARE_CONCRETE_INSTRUCTION(CallWithDescriptor, "call-with-descriptor")
1540 DECLARE_HYDROGEN_ACCESSOR(CallWithDescriptor) 1540 DECLARE_HYDROGEN_ACCESSOR(CallWithDescriptor)
1541 1541
1542 virtual void PrintDataTo(StringStream* stream) OVERRIDE; 1542 virtual void PrintDataTo(StringStream* stream) OVERRIDE;
1543 1543
1544 int arity() const { return hydrogen()->argument_count() - 1; } 1544 int arity() const { return hydrogen()->argument_count() - 1; }
1545 1545
1546 const CallInterfaceDescriptor* descriptor_; 1546 CallInterfaceDescriptor descriptor_;
1547 ZoneList<LOperand*> inputs_; 1547 ZoneList<LOperand*> inputs_;
1548 1548
1549 // Iterator support. 1549 // Iterator support.
1550 virtual int InputCount() FINAL OVERRIDE { return inputs_.length(); } 1550 virtual int InputCount() FINAL OVERRIDE { return inputs_.length(); }
1551 virtual LOperand* InputAt(int i) FINAL OVERRIDE { return inputs_[i]; } 1551 virtual LOperand* InputAt(int i) FINAL OVERRIDE { return inputs_[i]; }
1552 1552
1553 virtual int TempCount() FINAL OVERRIDE { return 0; } 1553 virtual int TempCount() FINAL OVERRIDE { return 0; }
1554 virtual LOperand* TempAt(int i) FINAL OVERRIDE { return NULL; } 1554 virtual LOperand* TempAt(int i) FINAL OVERRIDE { return NULL; }
1555 }; 1555 };
1556 1556
(...skipping 1702 matching lines...) Expand 10 before | Expand all | Expand 10 after
3259 3259
3260 DISALLOW_COPY_AND_ASSIGN(LChunkBuilder); 3260 DISALLOW_COPY_AND_ASSIGN(LChunkBuilder);
3261 }; 3261 };
3262 3262
3263 #undef DECLARE_HYDROGEN_ACCESSOR 3263 #undef DECLARE_HYDROGEN_ACCESSOR
3264 #undef DECLARE_CONCRETE_INSTRUCTION 3264 #undef DECLARE_CONCRETE_INSTRUCTION
3265 3265
3266 } } // namespace v8::internal 3266 } } // namespace v8::internal
3267 3267
3268 #endif // V8_ARM64_LITHIUM_ARM64_H_ 3268 #endif // V8_ARM64_LITHIUM_ARM64_H_
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698