| Index: src/arm/lithium-arm.h
|
| diff --git a/src/arm/lithium-arm.h b/src/arm/lithium-arm.h
|
| index 6c036c7b5dd3204b1250736e4c5e770c699053d4..f67747b5d0af7b979da7197e9ca7b03e0adfc7a2 100644
|
| --- a/src/arm/lithium-arm.h
|
| +++ b/src/arm/lithium-arm.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) \
|
| @@ -156,6 +158,7 @@ class LCodeGen;
|
| V(Random) \
|
| V(RegExpLiteral) \
|
| V(Return) \
|
| + V(SeqStringGetChar) \
|
| V(SeqStringSetChar) \
|
| V(ShiftI) \
|
| V(SmiTag) \
|
| @@ -184,6 +187,7 @@ class LCodeGen;
|
| V(Typeof) \
|
| V(TypeofIsAndBranch) \
|
| V(Uint32ToDouble) \
|
| + V(Uint32ToSmi) \
|
| V(UnknownOSRValue) \
|
| V(ValueOf) \
|
| V(WrapReceiver)
|
| @@ -422,6 +426,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) {
|
| @@ -918,6 +929,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) {
|
| @@ -1359,27 +1386,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_;
|
| };
|
|
|
|
|
| @@ -2074,6 +2111,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) {
|
|
|