Index: src/hydrogen-instructions.h |
diff --git a/src/hydrogen-instructions.h b/src/hydrogen-instructions.h |
index cbbe8fcc88a54f8505d2f1079d03c004bd5a8e89..537e5c493a426ec680c4a521e4994f023d0e825f 100644 |
--- a/src/hydrogen-instructions.h |
+++ b/src/hydrogen-instructions.h |
@@ -76,7 +76,6 @@ class LChunkBuilder; |
// HLoadKeyed |
// HLoadKeyedFastElement |
// HLoadKeyedGeneric |
-// HLoadNamedGeneric |
// HPower |
// HStoreNamed |
// HStoreNamedField |
@@ -132,6 +131,8 @@ class LChunkBuilder; |
// HLoadElements |
// HTypeofIs |
// HLoadNamedField |
+// HLoadNamedGeneric |
+// HLoadFunctionPrototype |
Kevin Millikin (Chromium)
2011/01/26 11:54:00
These are intended to be alphabetized.
Vitaly Repeshko
2011/01/26 14:06:23
Actually do we need this comment at all? It's a PI
|
// HPushArgument |
// HTypeof |
// HUnaryMathOperation |
@@ -221,6 +222,7 @@ class LChunkBuilder; |
V(LoadKeyedGeneric) \ |
V(LoadNamedField) \ |
V(LoadNamedGeneric) \ |
+ V(LoadFunctionPrototype) \ |
Kevin Millikin (Chromium)
2011/01/26 11:54:00
So are these.
|
V(Mod) \ |
V(Mul) \ |
V(ObjectLiteral) \ |
@@ -256,6 +258,7 @@ class LChunkBuilder; |
V(GlobalVars) \ |
V(Maps) \ |
V(ArrayLengths) \ |
+ V(FunctionPrototypes) \ |
V(OsrEntries) |
#define DECLARE_INSTRUCTION(type) \ |
@@ -2617,6 +2620,27 @@ class HLoadNamedGeneric: public HUnaryOperation { |
}; |
+class HLoadFunctionPrototype: public HUnaryOperation { |
+ public: |
+ explicit HLoadFunctionPrototype(HValue* function) |
+ : HUnaryOperation(function) { |
+ set_representation(Representation::Tagged()); |
+ SetFlagMask(kDependsOnFunctionPrototypes); |
Kevin Millikin (Chromium)
2011/01/26 11:54:00
1. Don't introduce a new kDependsOn... flag if the
Vitaly Repeshko
2011/01/26 14:06:23
There's DependsOnMaps and no ChangesMaps. We actua
|
+ } |
+ |
+ HValue* function() const { return OperandAt(0); } |
+ |
+ virtual Representation RequiredInputRepresentation(int index) const { |
+ return Representation::Tagged(); |
+ } |
+ |
+ DECLARE_CONCRETE_INSTRUCTION(LoadFunctionPrototype, "load_function_prototype") |
+ |
+ protected: |
+ virtual bool DataEquals(HValue* other) const { return true; } |
fschneider
2010/12/21 17:57:52
I think you can just rely on the implementation th
Vitaly Repeshko
2010/12/22 15:43:41
I just wanted to make it explicit that it's requir
Kevin Millikin (Chromium)
2011/01/26 11:54:00
1. It's not required unless the instruction has kU
Vitaly Repeshko
2011/01/26 14:06:23
Yeah, see above.
|
+}; |
+ |
+ |
class HLoadKeyed: public HBinaryOperation { |
public: |
HLoadKeyed(HValue* obj, HValue* key) : HBinaryOperation(obj, key) { |