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

Side by Side Diff: src/mips64/lithium-mips64.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 2012 the V8 project authors. All rights reserved. 1 // Copyright 2012 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_MIPS_LITHIUM_MIPS_H_ 5 #ifndef V8_MIPS_LITHIUM_MIPS_H_
6 #define V8_MIPS_LITHIUM_MIPS_H_ 6 #define V8_MIPS_LITHIUM_MIPS_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 1854 matching lines...) Expand 10 before | Expand all | Expand 10 after
1865 1865
1866 int arity() const { return hydrogen()->argument_count() - 1; } 1866 int arity() const { return hydrogen()->argument_count() - 1; }
1867 }; 1867 };
1868 1868
1869 1869
1870 class LCallWithDescriptor final : public LTemplateResultInstruction<1> { 1870 class LCallWithDescriptor final : public LTemplateResultInstruction<1> {
1871 public: 1871 public:
1872 LCallWithDescriptor(CallInterfaceDescriptor descriptor, 1872 LCallWithDescriptor(CallInterfaceDescriptor descriptor,
1873 const ZoneList<LOperand*>& operands, Zone* zone) 1873 const ZoneList<LOperand*>& operands, Zone* zone)
1874 : descriptor_(descriptor), 1874 : descriptor_(descriptor),
1875 inputs_(descriptor.GetRegisterParameterCount() + 1, zone) { 1875 inputs_(descriptor.GetRegisterParameterCount() +
1876 DCHECK(descriptor.GetRegisterParameterCount() + 1 == operands.length()); 1876 kImplicitRegisterParameterCount,
1877 zone) {
1878 DCHECK(descriptor.GetRegisterParameterCount() +
1879 kImplicitRegisterParameterCount ==
1880 operands.length());
1877 inputs_.AddAll(operands, zone); 1881 inputs_.AddAll(operands, zone);
1878 } 1882 }
1879 1883
1880 LOperand* target() const { return inputs_[0]; } 1884 LOperand* target() const { return inputs_[0]; }
1881 1885
1882 const CallInterfaceDescriptor descriptor() { return descriptor_; } 1886 const CallInterfaceDescriptor descriptor() { return descriptor_; }
1883 1887
1884 DECLARE_HYDROGEN_ACCESSOR(CallWithDescriptor) 1888 DECLARE_HYDROGEN_ACCESSOR(CallWithDescriptor)
1885 1889
1890 // The target and context are passed as implicit parameters that are not
1891 // explicitly listed in the descriptor.
1892 static const int kImplicitRegisterParameterCount = 2;
1893
1886 private: 1894 private:
1887 DECLARE_CONCRETE_INSTRUCTION(CallWithDescriptor, "call-with-descriptor") 1895 DECLARE_CONCRETE_INSTRUCTION(CallWithDescriptor, "call-with-descriptor")
1888 1896
1889 void PrintDataTo(StringStream* stream) override; 1897 void PrintDataTo(StringStream* stream) override;
1890 1898
1891 int arity() const { return hydrogen()->argument_count() - 1; } 1899 int arity() const { return hydrogen()->argument_count() - 1; }
1892 1900
1893 CallInterfaceDescriptor descriptor_; 1901 CallInterfaceDescriptor descriptor_;
1894 ZoneList<LOperand*> inputs_; 1902 ZoneList<LOperand*> inputs_;
1895 1903
(...skipping 992 matching lines...) Expand 10 before | Expand all | Expand 10 after
2888 2896
2889 DISALLOW_COPY_AND_ASSIGN(LChunkBuilder); 2897 DISALLOW_COPY_AND_ASSIGN(LChunkBuilder);
2890 }; 2898 };
2891 2899
2892 #undef DECLARE_HYDROGEN_ACCESSOR 2900 #undef DECLARE_HYDROGEN_ACCESSOR
2893 #undef DECLARE_CONCRETE_INSTRUCTION 2901 #undef DECLARE_CONCRETE_INSTRUCTION
2894 2902
2895 } } // namespace v8::internal 2903 } } // namespace v8::internal
2896 2904
2897 #endif // V8_MIPS_LITHIUM_MIPS_H_ 2905 #endif // V8_MIPS_LITHIUM_MIPS_H_
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698