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

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

Issue 12220074: Compile FastCloneShallowObjectStub using Crankshaft. (Closed) Base URL: https://v8.googlecode.com/svn/branches/bleeding_edge
Patch Set: Rebased. 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
« no previous file with comments | « src/hydrogen.cc ('k') | src/ia32/code-stubs-ia32.cc » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
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 105 matching lines...) Expand 10 before | Expand all | Expand 10 after
116 V(GetCachedArrayIndex) \ 116 V(GetCachedArrayIndex) \
117 V(GlobalObject) \ 117 V(GlobalObject) \
118 V(GlobalReceiver) \ 118 V(GlobalReceiver) \
119 V(Goto) \ 119 V(Goto) \
120 V(HasCachedArrayIndexAndBranch) \ 120 V(HasCachedArrayIndexAndBranch) \
121 V(HasInstanceTypeAndBranch) \ 121 V(HasInstanceTypeAndBranch) \
122 V(InductionVariableAnnotation) \ 122 V(InductionVariableAnnotation) \
123 V(In) \ 123 V(In) \
124 V(InstanceOf) \ 124 V(InstanceOf) \
125 V(InstanceOfKnownGlobal) \ 125 V(InstanceOfKnownGlobal) \
126 V(InstanceSize) \
126 V(InvokeFunction) \ 127 V(InvokeFunction) \
127 V(IsConstructCallAndBranch) \ 128 V(IsConstructCallAndBranch) \
128 V(IsNilAndBranch) \ 129 V(IsNilAndBranch) \
129 V(IsObjectAndBranch) \ 130 V(IsObjectAndBranch) \
130 V(IsStringAndBranch) \ 131 V(IsStringAndBranch) \
131 V(IsSmiAndBranch) \ 132 V(IsSmiAndBranch) \
132 V(IsUndetectableAndBranch) \ 133 V(IsUndetectableAndBranch) \
133 V(JSArrayLength) \ 134 V(JSArrayLength) \
134 V(LeaveInlined) \ 135 V(LeaveInlined) \
135 V(LoadContextSlot) \ 136 V(LoadContextSlot) \
(...skipping 3805 matching lines...) Expand 10 before | Expand all | Expand 10 after
3941 3942
3942 virtual HType CalculateInferredType(); 3943 virtual HType CalculateInferredType();
3943 3944
3944 DECLARE_CONCRETE_INSTRUCTION(InstanceOfKnownGlobal) 3945 DECLARE_CONCRETE_INSTRUCTION(InstanceOfKnownGlobal)
3945 3946
3946 private: 3947 private:
3947 Handle<JSFunction> function_; 3948 Handle<JSFunction> function_;
3948 }; 3949 };
3949 3950
3950 3951
3952 // TODO(mstarzinger): This instruction should be modeled as a load of the map
3953 // field followed by a load of the instance size field once HLoadNamedField is
3954 // flexible enough to accommodate byte-field loads.
3955 class HInstanceSize: public HTemplateInstruction<1> {
3956 public:
3957 explicit HInstanceSize(HValue* object) {
3958 SetOperandAt(0, object);
3959 set_representation(Representation::Integer32());
3960 }
3961
3962 HValue* object() { return OperandAt(0); }
3963
3964 virtual Representation RequiredInputRepresentation(int index) {
3965 return Representation::Tagged();
3966 }
3967
3968 DECLARE_CONCRETE_INSTRUCTION(InstanceSize)
3969 };
3970
3971
3951 class HPower: public HTemplateInstruction<2> { 3972 class HPower: public HTemplateInstruction<2> {
3952 public: 3973 public:
3953 static HInstruction* New(Zone* zone, HValue* left, HValue* right); 3974 static HInstruction* New(Zone* zone, HValue* left, HValue* right);
3954 3975
3955 HValue* left() { return OperandAt(0); } 3976 HValue* left() { return OperandAt(0); }
3956 HValue* right() const { return OperandAt(1); } 3977 HValue* right() const { return OperandAt(1); }
3957 3978
3958 virtual Representation RequiredInputRepresentation(int index) { 3979 virtual Representation RequiredInputRepresentation(int index) {
3959 return index == 0 3980 return index == 0
3960 ? Representation::Double() 3981 ? Representation::Double()
(...skipping 2158 matching lines...) Expand 10 before | Expand all | Expand 10 after
6119 virtual bool IsDeletable() const { return true; } 6140 virtual bool IsDeletable() const { return true; }
6120 }; 6141 };
6121 6142
6122 6143
6123 #undef DECLARE_INSTRUCTION 6144 #undef DECLARE_INSTRUCTION
6124 #undef DECLARE_CONCRETE_INSTRUCTION 6145 #undef DECLARE_CONCRETE_INSTRUCTION
6125 6146
6126 } } // namespace v8::internal 6147 } } // namespace v8::internal
6127 6148
6128 #endif // V8_HYDROGEN_INSTRUCTIONS_H_ 6149 #endif // V8_HYDROGEN_INSTRUCTIONS_H_
OLDNEW
« no previous file with comments | « src/hydrogen.cc ('k') | src/ia32/code-stubs-ia32.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698