Index: src/arm/lithium-codegen-arm.cc |
diff --git a/src/arm/lithium-codegen-arm.cc b/src/arm/lithium-codegen-arm.cc |
index 6269a7abd4550729308984e35b7e0516cd334113..5bfa9b7b9bcd562ee3a34b88fea35eff0ea4853a 100644 |
--- a/src/arm/lithium-codegen-arm.cc |
+++ b/src/arm/lithium-codegen-arm.cc |
@@ -5230,6 +5230,26 @@ void LCodeGen::DoClampTToUint8(LClampTToUint8* instr) { |
} |
+void LCodeGen::DoDoubleBits(LDoubleBits* instr) { |
+ DwVfpRegister value_reg = ToDoubleRegister(instr->value()); |
+ Register result_reg = ToRegister(instr->result()); |
+ if (instr->hydrogen()->bits() == HDoubleBits::HIGH) { |
+ __ VmovHigh(result_reg, value_reg); |
+ } else { |
+ __ VmovLow(result_reg, value_reg); |
+ } |
+} |
+ |
+ |
+void LCodeGen::DoConstructDouble(LConstructDouble* instr) { |
+ Register hi_reg = ToRegister(instr->hi()); |
+ Register lo_reg = ToRegister(instr->lo()); |
+ DwVfpRegister result_reg = ToDoubleRegister(instr->result()); |
+ __ VmovHigh(result_reg, hi_reg); |
+ __ VmovLow(result_reg, lo_reg); |
+} |
+ |
+ |
void LCodeGen::DoAllocate(LAllocate* instr) { |
class DeferredAllocate V8_FINAL : public LDeferredCode { |
public: |