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) { |