| Index: src/a64/lithium-a64.h
|
| diff --git a/src/a64/lithium-a64.h b/src/a64/lithium-a64.h
|
| index 94fcb4b04395776273b1a5e20f15c35749f1b9fb..a7e6717cbfc568afa71a3fd9e63e00aa89b9edea 100644
|
| --- a/src/a64/lithium-a64.h
|
| +++ b/src/a64/lithium-a64.h
|
| @@ -162,6 +162,7 @@ class LCodeGen;
|
| V(Return) \
|
| V(SeqStringSetChar) \
|
| V(ShiftI) \
|
| + V(ShiftS) \
|
| V(SmiTag) \
|
| V(SmiUntag) \
|
| V(StackCheck) \
|
| @@ -2461,6 +2462,29 @@ class LShiftI V8_FINAL : public LTemplateInstruction<1, 2, 0> {
|
| };
|
|
|
|
|
| +class LShiftS V8_FINAL : public LTemplateInstruction<1, 2, 1> {
|
| + public:
|
| + LShiftS(Token::Value op, LOperand* left, LOperand* right, LOperand* temp,
|
| + bool can_deopt) : op_(op), can_deopt_(can_deopt) {
|
| + inputs_[0] = left;
|
| + inputs_[1] = right;
|
| + temps_[0] = temp;
|
| + }
|
| +
|
| + Token::Value op() const { return op_; }
|
| + LOperand* left() { return inputs_[0]; }
|
| + LOperand* right() { return inputs_[1]; }
|
| + LOperand* temp() { return temps_[0]; }
|
| + bool can_deopt() const { return can_deopt_; }
|
| +
|
| + DECLARE_CONCRETE_INSTRUCTION(ShiftS, "shift-s")
|
| +
|
| + private:
|
| + Token::Value op_;
|
| + bool can_deopt_;
|
| +};
|
| +
|
| +
|
| class LStoreCodeEntry V8_FINAL: public LTemplateInstruction<0, 2, 1> {
|
| public:
|
| LStoreCodeEntry(LOperand* function, LOperand* code_object,
|
|
|