| Index: src/ia32/lithium-ia32.h
|
| diff --git a/src/ia32/lithium-ia32.h b/src/ia32/lithium-ia32.h
|
| index 23acd27e23b01846ba8ad9cc23077f0e0aec4d00..600c40f101386f26a8b3309df896bdb0ca1043bf 100644
|
| --- a/src/ia32/lithium-ia32.h
|
| +++ b/src/ia32/lithium-ia32.h
|
| @@ -93,6 +93,7 @@ class LCodeGen;
|
| V(DoubleToI) \
|
| V(DoubleToSmi) \
|
| V(Drop) \
|
| + V(Dummy) \
|
| V(DummyUse) \
|
| V(ElementsKind) \
|
| V(ForInCacheArray) \
|
| @@ -156,6 +157,7 @@ class LCodeGen;
|
| V(PushArgument) \
|
| V(RegExpLiteral) \
|
| V(Return) \
|
| + V(SeqStringGetChar) \
|
| V(SeqStringSetChar) \
|
| V(ShiftI) \
|
| V(SmiTag) \
|
| @@ -431,6 +433,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) {
|
| @@ -741,15 +750,13 @@ class LMathFloor V8_FINAL : public LTemplateInstruction<1, 1, 0> {
|
| };
|
|
|
|
|
| -class LMathRound V8_FINAL : public LTemplateInstruction<1, 2, 1> {
|
| +class LMathRound V8_FINAL : public LTemplateInstruction<1, 1, 1> {
|
| public:
|
| - LMathRound(LOperand* context, LOperand* value, LOperand* temp) {
|
| - inputs_[1] = context;
|
| + LMathRound(LOperand* value, LOperand* temp) {
|
| inputs_[0] = value;
|
| temps_[0] = temp;
|
| }
|
|
|
| - LOperand* context() { return inputs_[1]; }
|
| LOperand* value() { return inputs_[0]; }
|
| LOperand* temp() { return temps_[0]; }
|
|
|
| @@ -852,15 +859,13 @@ class LMathSqrt V8_FINAL : public LTemplateInstruction<1, 1, 0> {
|
| };
|
|
|
|
|
| -class LMathPowHalf V8_FINAL : public LTemplateInstruction<1, 2, 1> {
|
| +class LMathPowHalf V8_FINAL : public LTemplateInstruction<1, 1, 1> {
|
| public:
|
| - LMathPowHalf(LOperand* context, LOperand* value, LOperand* temp) {
|
| - inputs_[1] = context;
|
| + LMathPowHalf(LOperand* value, LOperand* temp) {
|
| inputs_[0] = value;
|
| temps_[0] = temp;
|
| }
|
|
|
| - LOperand* context() { return inputs_[1]; }
|
| LOperand* value() { return inputs_[0]; }
|
| LOperand* temp() { return temps_[0]; }
|
|
|
| @@ -969,6 +974,7 @@ class LStringCompareAndBranch V8_FINAL : public LControlInstruction<3, 0> {
|
| inputs_[2] = right;
|
| }
|
|
|
| + LOperand* context() { return inputs_[1]; }
|
| LOperand* left() { return inputs_[1]; }
|
| LOperand* right() { return inputs_[2]; }
|
|
|
| @@ -1073,6 +1079,7 @@ class LCmpT V8_FINAL : public LTemplateInstruction<1, 3, 0> {
|
| DECLARE_CONCRETE_INSTRUCTION(CmpT, "cmp-t")
|
| DECLARE_HYDROGEN_ACCESSOR(CompareGeneric)
|
|
|
| + LOperand* context() { return inputs_[0]; }
|
| Token::Value op() const { return hydrogen()->token(); }
|
| };
|
|
|
| @@ -1099,6 +1106,7 @@ class LInstanceOfKnownGlobal V8_FINAL : public LTemplateInstruction<1, 2, 1> {
|
| temps_[0] = temp;
|
| }
|
|
|
| + LOperand* context() { return inputs_[0]; }
|
| LOperand* value() { return inputs_[1]; }
|
| LOperand* temp() { return temps_[0]; }
|
|
|
| @@ -1337,6 +1345,21 @@ 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(LOperand* string,
|
| @@ -1497,7 +1520,8 @@ class LArithmeticT V8_FINAL : public LTemplateInstruction<1, 3, 0> {
|
|
|
| class LReturn V8_FINAL : public LTemplateInstruction<0, 3, 0> {
|
| public:
|
| - explicit LReturn(LOperand* value, LOperand* context,
|
| + explicit LReturn(LOperand* value,
|
| + LOperand* context,
|
| LOperand* parameter_count) {
|
| inputs_[0] = value;
|
| inputs_[1] = context;
|
|
|