Index: src/hydrogen-instructions.h |
diff --git a/src/hydrogen-instructions.h b/src/hydrogen-instructions.h |
index c77c2ebf0e495a134172b2da370b19eebfdfb6cc..1423c726593c6e88dcfbeccadb1fcf604b977d17 100644 |
--- a/src/hydrogen-instructions.h |
+++ b/src/hydrogen-instructions.h |
@@ -7282,31 +7282,35 @@ class HSeqStringGetChar V8_FINAL : public HTemplateInstruction<2> { |
}; |
-class HSeqStringSetChar V8_FINAL : public HTemplateInstruction<3> { |
+class HSeqStringSetChar V8_FINAL : public HTemplateInstruction<4> { |
public: |
- DECLARE_INSTRUCTION_FACTORY_P4(HSeqStringSetChar, String::Encoding, |
- HValue*, HValue*, HValue*); |
+ DECLARE_INSTRUCTION_WITH_CONTEXT_FACTORY_P4( |
+ HSeqStringSetChar, String::Encoding, |
+ HValue*, HValue*, HValue*); |
String::Encoding encoding() { return encoding_; } |
- HValue* string() { return OperandAt(0); } |
- HValue* index() { return OperandAt(1); } |
- HValue* value() { return OperandAt(2); } |
+ HValue* context() { return OperandAt(0); } |
+ HValue* string() { return OperandAt(1); } |
+ HValue* index() { return OperandAt(2); } |
+ HValue* value() { return OperandAt(3); } |
virtual Representation RequiredInputRepresentation(int index) V8_OVERRIDE { |
- return (index == 0) ? Representation::Tagged() |
+ return (index <= 1) ? Representation::Tagged() |
: Representation::Integer32(); |
} |
DECLARE_CONCRETE_INSTRUCTION(SeqStringSetChar) |
private: |
- HSeqStringSetChar(String::Encoding encoding, |
+ HSeqStringSetChar(HValue* context, |
+ String::Encoding encoding, |
HValue* string, |
HValue* index, |
HValue* value) : encoding_(encoding) { |
- SetOperandAt(0, string); |
- SetOperandAt(1, index); |
- SetOperandAt(2, value); |
+ SetOperandAt(0, context); |
+ SetOperandAt(1, string); |
+ SetOperandAt(2, index); |
+ SetOperandAt(3, value); |
set_representation(Representation::Tagged()); |
SetGVNFlag(kChangesStringChars); |
} |