| Index: src/mips/lithium-mips.h
|
| diff --git a/src/mips/lithium-mips.h b/src/mips/lithium-mips.h
|
| index 301be8fdf2c7054a13bb74e51e7b5841a98eed35..8c82a9d7cbbcaaadfacb0ccd45a56784dd080d33 100644
|
| --- a/src/mips/lithium-mips.h
|
| +++ b/src/mips/lithium-mips.h
|
| @@ -72,6 +72,7 @@ class LCodeGen;
|
| V(ClampIToUint8) \
|
| V(ClampTToUint8) \
|
| V(ClassOfTestAndBranch) \
|
| + V(CompareMinusZeroAndBranch) \
|
| V(CompareNumericAndBranch) \
|
| V(CmpObjectEqAndBranch) \
|
| V(CmpHoleAndBranch) \
|
| @@ -91,6 +92,7 @@ class LCodeGen;
|
| V(DoubleToI) \
|
| V(DoubleToSmi) \
|
| V(Drop) \
|
| + V(Dummy) \
|
| V(DummyUse) \
|
| V(ElementsKind) \
|
| V(ForInCacheArray) \
|
| @@ -155,6 +157,7 @@ class LCodeGen;
|
| V(Random) \
|
| V(RegExpLiteral) \
|
| V(Return) \
|
| + V(SeqStringGetChar) \
|
| V(SeqStringSetChar) \
|
| V(ShiftI) \
|
| V(SmiTag) \
|
| @@ -182,6 +185,7 @@ class LCodeGen;
|
| V(Typeof) \
|
| V(TypeofIsAndBranch) \
|
| V(Uint32ToDouble) \
|
| + V(Uint32ToSmi) \
|
| V(UnknownOSRValue) \
|
| V(ValueOf) \
|
| V(WrapReceiver)
|
| @@ -419,6 +423,13 @@ class LLazyBailout V8_FINAL : public LTemplateInstruction<0, 0, 0> {
|
| };
|
|
|
|
|
| +class LDummy V8_FINAL : public LTemplateInstruction<1, 0, 0> {
|
| + public:
|
| + explicit LDummy() { }
|
| + DECLARE_CONCRETE_INSTRUCTION(Dummy, "dummy")
|
| +};
|
| +
|
| +
|
| class LDummyUse V8_FINAL : public LTemplateInstruction<1, 1, 0> {
|
| public:
|
| explicit LDummyUse(LOperand* value) {
|
| @@ -913,6 +924,22 @@ class LCmpHoleAndBranch V8_FINAL : public LControlInstruction<1, 0> {
|
| };
|
|
|
|
|
| +class LCompareMinusZeroAndBranch V8_FINAL : public LControlInstruction<1, 1> {
|
| + public:
|
| + LCompareMinusZeroAndBranch(LOperand* value, LOperand* temp) {
|
| + inputs_[0] = value;
|
| + temps_[0] = temp;
|
| + }
|
| +
|
| + LOperand* value() { return inputs_[0]; }
|
| + LOperand* temp() { return temps_[0]; }
|
| +
|
| + DECLARE_CONCRETE_INSTRUCTION(CompareMinusZeroAndBranch,
|
| + "cmp-minus-zero-and-branch")
|
| + DECLARE_HYDROGEN_ACCESSOR(CompareMinusZeroAndBranch)
|
| +};
|
| +
|
| +
|
| class LIsObjectAndBranch V8_FINAL : public LControlInstruction<1, 1> {
|
| public:
|
| LIsObjectAndBranch(LOperand* value, LOperand* temp) {
|
| @@ -1339,27 +1366,37 @@ class LDateField V8_FINAL : public LTemplateInstruction<1, 1, 1> {
|
| };
|
|
|
|
|
| +class LSeqStringGetChar V8_FINAL : public LTemplateInstruction<1, 2, 0> {
|
| + public:
|
| + LSeqStringGetChar(LOperand* string, LOperand* index) {
|
| + inputs_[0] = string;
|
| + inputs_[1] = index;
|
| + }
|
| +
|
| + LOperand* string() const { return inputs_[0]; }
|
| + LOperand* index() const { return inputs_[1]; }
|
| +
|
| + DECLARE_CONCRETE_INSTRUCTION(SeqStringGetChar, "seq-string-get-char")
|
| + DECLARE_HYDROGEN_ACCESSOR(SeqStringGetChar)
|
| +};
|
| +
|
| +
|
| class LSeqStringSetChar V8_FINAL : public LTemplateInstruction<1, 3, 0> {
|
| public:
|
| - LSeqStringSetChar(String::Encoding encoding,
|
| - LOperand* string,
|
| + LSeqStringSetChar(LOperand* string,
|
| LOperand* index,
|
| - LOperand* value) : encoding_(encoding) {
|
| + LOperand* value) {
|
| inputs_[0] = string;
|
| inputs_[1] = index;
|
| inputs_[2] = value;
|
| }
|
|
|
| - String::Encoding encoding() { return encoding_; }
|
| LOperand* string() { return inputs_[0]; }
|
| LOperand* index() { return inputs_[1]; }
|
| LOperand* value() { return inputs_[2]; }
|
|
|
| DECLARE_CONCRETE_INSTRUCTION(SeqStringSetChar, "seq-string-set-char")
|
| DECLARE_HYDROGEN_ACCESSOR(SeqStringSetChar)
|
| -
|
| - private:
|
| - String::Encoding encoding_;
|
| };
|
|
|
|
|
| @@ -2052,6 +2089,19 @@ class LUint32ToDouble V8_FINAL : public LTemplateInstruction<1, 1, 0> {
|
| };
|
|
|
|
|
| +class LUint32ToSmi V8_FINAL : public LTemplateInstruction<1, 1, 0> {
|
| + public:
|
| + explicit LUint32ToSmi(LOperand* value) {
|
| + inputs_[0] = value;
|
| + }
|
| +
|
| + LOperand* value() { return inputs_[0]; }
|
| +
|
| + DECLARE_CONCRETE_INSTRUCTION(Uint32ToSmi, "uint32-to-smi")
|
| + DECLARE_HYDROGEN_ACCESSOR(Change)
|
| +};
|
| +
|
| +
|
| class LNumberTagI V8_FINAL : public LTemplateInstruction<1, 1, 0> {
|
| public:
|
| explicit LNumberTagI(LOperand* value) {
|
|
|