From b6c18e537eea70fa02f91ba21b63e1088e2afc20 Mon Sep 17 00:00:00 2001 From: Hannes Verschore Date: Fri, 29 Jul 2016 16:53:48 +0200 Subject: [PATCH] Bug 1289054 - Part 3: Implement the 64bit variant of WrapInt64ToInt32 on arm, r=bbouvier --- js/src/jit/arm/CodeGenerator-arm.cpp | 9 +++++++++ js/src/jit/arm/CodeGenerator-arm.h | 2 ++ 2 files changed, 11 insertions(+) diff --git a/js/src/jit/arm/CodeGenerator-arm.cpp b/js/src/jit/arm/CodeGenerator-arm.cpp index b638772c23af..9b20ab71d98f 100644 --- a/js/src/jit/arm/CodeGenerator-arm.cpp +++ b/js/src/jit/arm/CodeGenerator-arm.cpp @@ -3007,3 +3007,12 @@ CodeGeneratorARM::visitCopySignD(LCopySignD* ins) masm.as_vxfer(lhsi, InvalidReg, lhs, Assembler::FloatToCore, Assembler::Always, 0); masm.ma_vxfer(lhsi, rhsi, output); } + +void +CodeGeneratorARM::visitWrapInt64ToInt32(LWrapInt64ToInt32* lir) +{ + const LInt64Allocation& input = lir->getInt64Operand(0); + Register output = ToRegister(lir->output()); + + masm.move32(ToRegister(input.low()), output); +} diff --git a/js/src/jit/arm/CodeGenerator-arm.h b/js/src/jit/arm/CodeGenerator-arm.h index 83877be99bb3..424b9c893279 100644 --- a/js/src/jit/arm/CodeGenerator-arm.h +++ b/js/src/jit/arm/CodeGenerator-arm.h @@ -157,6 +157,8 @@ class CodeGeneratorARM : public CodeGeneratorShared virtual void visitTruncateDToInt32(LTruncateDToInt32* ins); virtual void visitTruncateFToInt32(LTruncateFToInt32* ins); + virtual void visitWrapInt64ToInt32(LWrapInt64ToInt32* lir); + // Out of line visitors. void visitOutOfLineBailout(OutOfLineBailout* ool); void visitOutOfLineTableSwitch(OutOfLineTableSwitch* ool);