Index: src/arm64/lithium-arm64.h |
diff --git a/src/arm64/lithium-arm64.h b/src/arm64/lithium-arm64.h |
index 70337778f4988e7ebe9b0352e182cf1b6bf84b71..8e580c9ff9d53404da66aaf2438f26397f824205 100644 |
--- a/src/arm64/lithium-arm64.h |
+++ b/src/arm64/lithium-arm64.h |
@@ -86,10 +86,10 @@ class LCodeGen; |
V(GetCachedArrayIndex) \ |
V(Goto) \ |
V(HasCachedArrayIndexAndBranch) \ |
+ V(HasInPrototypeChainAndBranch) \ |
V(HasInstanceTypeAndBranch) \ |
V(InnerAllocatedObject) \ |
V(InstanceOf) \ |
- V(InstanceOfKnownGlobal) \ |
V(InstructionGap) \ |
V(Integer32ToDouble) \ |
V(InvokeFunction) \ |
@@ -246,8 +246,6 @@ class LInstruction : public ZoneObject { |
void set_hydrogen_value(HValue* value) { hydrogen_value_ = value; } |
HValue* hydrogen_value() const { return hydrogen_value_; } |
- virtual void SetDeferredLazyDeoptimizationEnvironment(LEnvironment* env) { } |
- |
void MarkAsCall() { bit_field_ = IsCallBits::update(bit_field_, true); } |
bool IsCall() const { return IsCallBits::decode(bit_field_); } |
@@ -1481,39 +1479,30 @@ class LInstanceOf final : public LTemplateInstruction<1, 3, 0> { |
inputs_[2] = right; |
} |
- LOperand* context() { return inputs_[0]; } |
- LOperand* left() { return inputs_[1]; } |
- LOperand* right() { return inputs_[2]; } |
+ LOperand* context() const { return inputs_[0]; } |
+ LOperand* left() const { return inputs_[1]; } |
+ LOperand* right() const { return inputs_[2]; } |
DECLARE_CONCRETE_INSTRUCTION(InstanceOf, "instance-of") |
}; |
-class LInstanceOfKnownGlobal final : public LTemplateInstruction<1, 2, 0> { |
+class LHasInPrototypeChainAndBranch final : public LControlInstruction<2, 1> { |
public: |
- LInstanceOfKnownGlobal(LOperand* context, LOperand* value) { |
- inputs_[0] = context; |
- inputs_[1] = value; |
+ LHasInPrototypeChainAndBranch(LOperand* object, LOperand* prototype, |
+ LOperand* scratch) { |
+ inputs_[0] = object; |
+ inputs_[1] = prototype; |
+ temps_[0] = scratch; |
} |
- LOperand* context() { return inputs_[0]; } |
- LOperand* value() { return inputs_[1]; } |
+ LOperand* object() const { return inputs_[0]; } |
+ LOperand* prototype() const { return inputs_[1]; } |
+ LOperand* scratch() const { return temps_[0]; } |
- DECLARE_CONCRETE_INSTRUCTION(InstanceOfKnownGlobal, |
- "instance-of-known-global") |
- DECLARE_HYDROGEN_ACCESSOR(InstanceOfKnownGlobal) |
- |
- Handle<JSFunction> function() const { return hydrogen()->function(); } |
- LEnvironment* GetDeferredLazyDeoptimizationEnvironment() { |
- return lazy_deopt_env_; |
- } |
- virtual void SetDeferredLazyDeoptimizationEnvironment( |
- LEnvironment* env) override { |
- lazy_deopt_env_ = env; |
- } |
- |
- private: |
- LEnvironment* lazy_deopt_env_; |
+ DECLARE_CONCRETE_INSTRUCTION(HasInPrototypeChainAndBranch, |
+ "has-in-prototype-chain-and-branch") |
+ DECLARE_HYDROGEN_ACCESSOR(HasInPrototypeChainAndBranch) |
}; |