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

Side by Side Diff: src/hydrogen-instructions.h

Issue 12093089: Support pass-through of stub caller arguments (Closed) Base URL: https://v8.googlecode.com/svn/branches/bleeding_edge
Patch Set: ARM port Created 7 years, 10 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 2012 the V8 project authors. All rights reserved. 1 // Copyright 2012 the V8 project authors. All rights reserved.
2 // Redistribution and use in source and binary forms, with or without 2 // Redistribution and use in source and binary forms, with or without
3 // modification, are permitted provided that the following conditions are 3 // modification, are permitted provided that the following conditions are
4 // met: 4 // met:
5 // 5 //
6 // * Redistributions of source code must retain the above copyright 6 // * Redistributions of source code must retain the above copyright
7 // notice, this list of conditions and the following disclaimer. 7 // notice, this list of conditions and the following disclaimer.
8 // * Redistributions in binary form must reproduce the above 8 // * Redistributions in binary form must reproduce the above
9 // copyright notice, this list of conditions and the following 9 // copyright notice, this list of conditions and the following
10 // disclaimer in the documentation and/or other materials provided 10 // disclaimer in the documentation and/or other materials provided
(...skipping 3990 matching lines...) Expand 10 before | Expand all | Expand 10 after
4001 4001
4002 DECLARE_CONCRETE_INSTRUCTION(OsrEntry) 4002 DECLARE_CONCRETE_INSTRUCTION(OsrEntry)
4003 4003
4004 private: 4004 private:
4005 BailoutId ast_id_; 4005 BailoutId ast_id_;
4006 }; 4006 };
4007 4007
4008 4008
4009 class HParameter: public HTemplateInstruction<0> { 4009 class HParameter: public HTemplateInstruction<0> {
4010 public: 4010 public:
4011 explicit HParameter(unsigned index) : index_(index) { 4011 enum ParameterKind {
4012 STACK_PARAMETER,
4013 REGISTER_PARAMETER
4014 };
4015
4016 explicit HParameter(unsigned index,
4017 ParameterKind kind = STACK_PARAMETER)
4018 : index_(index),
4019 kind_(kind) {
4012 set_representation(Representation::Tagged()); 4020 set_representation(Representation::Tagged());
4013 } 4021 }
4014 4022
4015 unsigned index() const { return index_; } 4023 unsigned index() const { return index_; }
4024 ParameterKind kind() const { return kind_; }
4016 4025
4017 virtual void PrintDataTo(StringStream* stream); 4026 virtual void PrintDataTo(StringStream* stream);
4018 4027
4019 virtual Representation RequiredInputRepresentation(int index) { 4028 virtual Representation RequiredInputRepresentation(int index) {
4020 return Representation::None(); 4029 return Representation::None();
4021 } 4030 }
4022 4031
4023 DECLARE_CONCRETE_INSTRUCTION(Parameter) 4032 DECLARE_CONCRETE_INSTRUCTION(Parameter)
4024 4033
4025 private: 4034 private:
4026 unsigned index_; 4035 unsigned index_;
4036 ParameterKind kind_;
4027 }; 4037 };
4028 4038
4029 4039
4030 class HCallStub: public HUnaryCall { 4040 class HCallStub: public HUnaryCall {
4031 public: 4041 public:
4032 HCallStub(HValue* context, CodeStub::Major major_key, int argument_count) 4042 HCallStub(HValue* context, CodeStub::Major major_key, int argument_count)
4033 : HUnaryCall(context, argument_count), 4043 : HUnaryCall(context, argument_count),
4034 major_key_(major_key), 4044 major_key_(major_key),
4035 transcendental_type_(TranscendentalCache::kNumberOfCaches) { 4045 transcendental_type_(TranscendentalCache::kNumberOfCaches) {
4036 } 4046 }
(...skipping 1572 matching lines...) Expand 10 before | Expand all | Expand 10 after
5609 virtual bool IsDeletable() const { return true; } 5619 virtual bool IsDeletable() const { return true; }
5610 }; 5620 };
5611 5621
5612 5622
5613 #undef DECLARE_INSTRUCTION 5623 #undef DECLARE_INSTRUCTION
5614 #undef DECLARE_CONCRETE_INSTRUCTION 5624 #undef DECLARE_CONCRETE_INSTRUCTION
5615 5625
5616 } } // namespace v8::internal 5626 } } // namespace v8::internal
5617 5627
5618 #endif // V8_HYDROGEN_INSTRUCTIONS_H_ 5628 #endif // V8_HYDROGEN_INSTRUCTIONS_H_
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698