| Index: src/a64/lithium-a64.h
|
| diff --git a/src/a64/lithium-a64.h b/src/a64/lithium-a64.h
|
| index e0fb522f393b42ad86a646bf21868f6bd4713550..6f718e5b1b4a7c9c6cd653096fbd7e99a7876370 100644
|
| --- a/src/a64/lithium-a64.h
|
| +++ b/src/a64/lithium-a64.h
|
| @@ -84,6 +84,7 @@ class LCodeGen;
|
| V(ConstantI) \
|
| V(ConstantS) \
|
| V(ConstantT) \
|
| + V(ConstructDouble) \
|
| V(Context) \
|
| V(DateField) \
|
| V(DebugBreak) \
|
| @@ -92,6 +93,7 @@ class LCodeGen;
|
| V(DivByConstI) \
|
| V(DivByPowerOf2I) \
|
| V(DivI) \
|
| + V(DoubleBits) \
|
| V(DoubleToIntOrSmi) \
|
| V(Drop) \
|
| V(Dummy) \
|
| @@ -1017,6 +1019,35 @@ class LClampTToUint8 V8_FINAL : public LTemplateInstruction<1, 1, 2> {
|
| };
|
|
|
|
|
| +class LDoubleBits V8_FINAL : public LTemplateInstruction<1, 1, 0> {
|
| + public:
|
| + explicit LDoubleBits(LOperand* value) {
|
| + inputs_[0] = value;
|
| + }
|
| +
|
| + LOperand* value() { return inputs_[0]; }
|
| +
|
| + DECLARE_CONCRETE_INSTRUCTION(DoubleBits, "double-bits")
|
| + DECLARE_HYDROGEN_ACCESSOR(DoubleBits)
|
| +};
|
| +
|
| +
|
| +class LConstructDouble V8_FINAL : public LTemplateInstruction<1, 2, 1> {
|
| + public:
|
| + LConstructDouble(LOperand* hi, LOperand* lo, LOperand* temp) {
|
| + inputs_[0] = hi;
|
| + inputs_[1] = lo;
|
| + temps_[0] = temp;
|
| + }
|
| +
|
| + LOperand* hi() { return inputs_[0]; }
|
| + LOperand* lo() { return inputs_[1]; }
|
| + LOperand* temp() { return temps_[0]; }
|
| +
|
| + DECLARE_CONCRETE_INSTRUCTION(ConstructDouble, "construct-double")
|
| +};
|
| +
|
| +
|
| class LClassOfTestAndBranch V8_FINAL : public LControlInstruction<1, 2> {
|
| public:
|
| LClassOfTestAndBranch(LOperand* value, LOperand* temp1, LOperand* temp2) {
|
|
|