| Index: src/x64/lithium-x64.h
|
| diff --git a/src/x64/lithium-x64.h b/src/x64/lithium-x64.h
|
| index 4aa235f13789cfc841b66cf6ead69de961f80e13..0e3369cbce5720467f6ad4349d4ab01440f4fa6a 100644
|
| --- a/src/x64/lithium-x64.h
|
| +++ b/src/x64/lithium-x64.h
|
| @@ -73,6 +73,9 @@ class LCodeGen;
|
| V(CheckNonSmi) \
|
| V(CheckPrototypeMaps) \
|
| V(CheckSmi) \
|
| + V(ClampDToUint8) \
|
| + V(ClampIToUint8) \
|
| + V(ClampTToUint8) \
|
| V(ClassOfTest) \
|
| V(ClassOfTestAndBranch) \
|
| V(CmpID) \
|
| @@ -1907,6 +1910,47 @@ class LCheckSmi: public LTemplateInstruction<0, 1, 0> {
|
| };
|
|
|
|
|
| +class LClampDToUint8: public LTemplateInstruction<1, 1, 1> {
|
| + public:
|
| + LClampDToUint8(LOperand* value, LOperand* temp) {
|
| + inputs_[0] = value;
|
| + temps_[0] = temp;
|
| + }
|
| +
|
| + LOperand* unclamped() { return inputs_[0]; }
|
| +
|
| + DECLARE_CONCRETE_INSTRUCTION(ClampDToUint8, "clamp-d-to-uint8")
|
| +};
|
| +
|
| +
|
| +class LClampIToUint8: public LTemplateInstruction<1, 1, 0> {
|
| + public:
|
| + explicit LClampIToUint8(LOperand* value) {
|
| + inputs_[0] = value;
|
| + }
|
| +
|
| + LOperand* unclamped() { return inputs_[0]; }
|
| +
|
| + DECLARE_CONCRETE_INSTRUCTION(ClampIToUint8, "clamp-i-to-uint8")
|
| +};
|
| +
|
| +
|
| +class LClampTToUint8: public LTemplateInstruction<1, 1, 2> {
|
| + public:
|
| + LClampTToUint8(LOperand* value,
|
| + LOperand* temp,
|
| + LOperand* temp2) {
|
| + inputs_[0] = value;
|
| + temps_[0] = temp;
|
| + temps_[1] = temp2;
|
| + }
|
| +
|
| + LOperand* unclamped() { return inputs_[0]; }
|
| +
|
| + DECLARE_CONCRETE_INSTRUCTION(ClampTToUint8, "clamp-t-to-uint8")
|
| +};
|
| +
|
| +
|
| class LCheckNonSmi: public LTemplateInstruction<0, 1, 0> {
|
| public:
|
| explicit LCheckNonSmi(LOperand* value) {
|
|
|