OLD | NEW |
1 // Copyright 2011 the V8 project authors. All rights reserved. | 1 // Copyright 2011 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 96 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
107 V(FixedArrayLength) \ | 107 V(FixedArrayLength) \ |
108 V(FunctionLiteral) \ | 108 V(FunctionLiteral) \ |
109 V(GetCachedArrayIndex) \ | 109 V(GetCachedArrayIndex) \ |
110 V(GlobalObject) \ | 110 V(GlobalObject) \ |
111 V(GlobalReceiver) \ | 111 V(GlobalReceiver) \ |
112 V(Goto) \ | 112 V(Goto) \ |
113 V(HasInstanceType) \ | 113 V(HasInstanceType) \ |
114 V(HasCachedArrayIndex) \ | 114 V(HasCachedArrayIndex) \ |
115 V(InstanceOf) \ | 115 V(InstanceOf) \ |
116 V(InstanceOfKnownGlobal) \ | 116 V(InstanceOfKnownGlobal) \ |
| 117 V(InvokeFunction) \ |
117 V(IsNull) \ | 118 V(IsNull) \ |
118 V(IsObject) \ | 119 V(IsObject) \ |
119 V(IsSmi) \ | 120 V(IsSmi) \ |
120 V(IsConstructCall) \ | 121 V(IsConstructCall) \ |
121 V(JSArrayLength) \ | 122 V(JSArrayLength) \ |
122 V(LeaveInlined) \ | 123 V(LeaveInlined) \ |
123 V(LoadContextSlot) \ | 124 V(LoadContextSlot) \ |
124 V(LoadElements) \ | 125 V(LoadElements) \ |
125 V(LoadExternalArrayPointer) \ | 126 V(LoadExternalArrayPointer) \ |
126 V(LoadFunctionPrototype) \ | 127 V(LoadFunctionPrototype) \ |
(...skipping 1110 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1237 return Representation::Tagged(); | 1238 return Representation::Tagged(); |
1238 } | 1239 } |
1239 | 1240 |
1240 HValue* first() { return OperandAt(0); } | 1241 HValue* first() { return OperandAt(0); } |
1241 HValue* second() { return OperandAt(1); } | 1242 HValue* second() { return OperandAt(1); } |
1242 | 1243 |
1243 DECLARE_INSTRUCTION(BinaryCall) | 1244 DECLARE_INSTRUCTION(BinaryCall) |
1244 }; | 1245 }; |
1245 | 1246 |
1246 | 1247 |
| 1248 class HInvokeFunction: public HBinaryCall { |
| 1249 public: |
| 1250 HInvokeFunction(HValue* context, HValue* function, int argument_count) |
| 1251 : HBinaryCall(context, function, argument_count) { |
| 1252 } |
| 1253 |
| 1254 virtual Representation RequiredInputRepresentation(int index) const { |
| 1255 return Representation::Tagged(); |
| 1256 } |
| 1257 |
| 1258 HValue* context() { return first(); } |
| 1259 HValue* function() { return second(); } |
| 1260 |
| 1261 DECLARE_CONCRETE_INSTRUCTION(InvokeFunction, "invoke_function") |
| 1262 }; |
| 1263 |
| 1264 |
1247 class HCallConstantFunction: public HCall<0> { | 1265 class HCallConstantFunction: public HCall<0> { |
1248 public: | 1266 public: |
1249 HCallConstantFunction(Handle<JSFunction> function, int argument_count) | 1267 HCallConstantFunction(Handle<JSFunction> function, int argument_count) |
1250 : HCall<0>(argument_count), function_(function) { } | 1268 : HCall<0>(argument_count), function_(function) { } |
1251 | 1269 |
1252 Handle<JSFunction> function() const { return function_; } | 1270 Handle<JSFunction> function() const { return function_; } |
1253 | 1271 |
1254 bool IsApplyFunction() const { | 1272 bool IsApplyFunction() const { |
1255 return function_->code() == | 1273 return function_->code() == |
1256 Isolate::Current()->builtins()->builtin(Builtins::kFunctionApply); | 1274 Isolate::Current()->builtins()->builtin(Builtins::kFunctionApply); |
(...skipping 2458 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
3715 HValue* object() { return left(); } | 3733 HValue* object() { return left(); } |
3716 HValue* key() { return right(); } | 3734 HValue* key() { return right(); } |
3717 }; | 3735 }; |
3718 | 3736 |
3719 #undef DECLARE_INSTRUCTION | 3737 #undef DECLARE_INSTRUCTION |
3720 #undef DECLARE_CONCRETE_INSTRUCTION | 3738 #undef DECLARE_CONCRETE_INSTRUCTION |
3721 | 3739 |
3722 } } // namespace v8::internal | 3740 } } // namespace v8::internal |
3723 | 3741 |
3724 #endif // V8_HYDROGEN_INSTRUCTIONS_H_ | 3742 #endif // V8_HYDROGEN_INSTRUCTIONS_H_ |
OLD | NEW |