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

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

Issue 1211333003: Make context register implicit for CallInterfaceDescriptors (Closed) Base URL: https://chromium.googlesource.com/v8/v8.git@master
Patch Set: Platform ports Created 5 years, 5 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
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 1514 matching lines...) Expand 10 before | Expand all | Expand 10 after
1525 1525
1526 DECLARE_CONCRETE_INSTRUCTION(Integer32ToDouble, "int32-to-double") 1526 DECLARE_CONCRETE_INSTRUCTION(Integer32ToDouble, "int32-to-double")
1527 }; 1527 };
1528 1528
1529 1529
1530 class LCallWithDescriptor final : public LTemplateResultInstruction<1> { 1530 class LCallWithDescriptor final : public LTemplateResultInstruction<1> {
1531 public: 1531 public:
1532 LCallWithDescriptor(CallInterfaceDescriptor descriptor, 1532 LCallWithDescriptor(CallInterfaceDescriptor descriptor,
1533 const ZoneList<LOperand*>& operands, Zone* zone) 1533 const ZoneList<LOperand*>& operands, Zone* zone)
1534 : descriptor_(descriptor), 1534 : descriptor_(descriptor),
1535 inputs_(descriptor.GetRegisterParameterCount() + 1, zone) { 1535 inputs_(descriptor.GetRegisterParameterCount() +
1536 DCHECK(descriptor.GetRegisterParameterCount() + 1 == operands.length()); 1536 kImplicitRegisterParameterCount,
1537 zone) {
1538 DCHECK(descriptor.GetRegisterParameterCount() +
1539 kImplicitRegisterParameterCount ==
1540 operands.length());
1537 inputs_.AddAll(operands, zone); 1541 inputs_.AddAll(operands, zone);
1538 } 1542 }
1539 1543
1540 LOperand* target() const { return inputs_[0]; } 1544 LOperand* target() const { return inputs_[0]; }
1541 1545
1542 CallInterfaceDescriptor descriptor() { return descriptor_; } 1546 CallInterfaceDescriptor descriptor() { return descriptor_; }
1543 1547
1544 DECLARE_HYDROGEN_ACCESSOR(CallWithDescriptor) 1548 DECLARE_HYDROGEN_ACCESSOR(CallWithDescriptor)
1545 1549
1550 // The target and context are passed as implicit parameters that are not
1551 // explicitly listed in the descriptor.
1552 static const int kImplicitRegisterParameterCount = 2;
1553
1546 private: 1554 private:
1547 DECLARE_CONCRETE_INSTRUCTION(CallWithDescriptor, "call-with-descriptor") 1555 DECLARE_CONCRETE_INSTRUCTION(CallWithDescriptor, "call-with-descriptor")
1548 1556
1549 void PrintDataTo(StringStream* stream) override; 1557 void PrintDataTo(StringStream* stream) override;
1550 1558
1551 int arity() const { return hydrogen()->argument_count() - 1; } 1559 int arity() const { return hydrogen()->argument_count() - 1; }
1552 1560
1553 CallInterfaceDescriptor descriptor_; 1561 CallInterfaceDescriptor descriptor_;
1554 ZoneList<LOperand*> inputs_; 1562 ZoneList<LOperand*> inputs_;
1555 1563
(...skipping 1684 matching lines...) Expand 10 before | Expand all | Expand 10 after
3240 3248
3241 DISALLOW_COPY_AND_ASSIGN(LChunkBuilder); 3249 DISALLOW_COPY_AND_ASSIGN(LChunkBuilder);
3242 }; 3250 };
3243 3251
3244 #undef DECLARE_HYDROGEN_ACCESSOR 3252 #undef DECLARE_HYDROGEN_ACCESSOR
3245 #undef DECLARE_CONCRETE_INSTRUCTION 3253 #undef DECLARE_CONCRETE_INSTRUCTION
3246 3254
3247 } } // namespace v8::internal 3255 } } // namespace v8::internal
3248 3256
3249 #endif // V8_ARM64_LITHIUM_ARM64_H_ 3257 #endif // V8_ARM64_LITHIUM_ARM64_H_
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698