From dcac30c78f7edd865307a4e54c21a369503fff73 Mon Sep 17 00:00:00 2001 From: Serban Constantinescu Date: Mon, 17 Jun 2013 16:54:53 +0100 Subject: Dalvik: Add hardware vfp support for OP_LONG_TO_DOUBLE in JIT The following patch adds hardware vfp support for OP_LONG_TO_DOUBLE in the JIT. Previously this opcode was implemented using one of gcc's builtin helpers. Change-Id: I3c88b2a527dea99dcefdb34be6695e75993da73e Signed-off-by: Serban Constantinescu --- vm/compiler/codegen/arm/Assemble.cpp | 12 ++++++++++++ 1 file changed, 12 insertions(+) (limited to 'vm/compiler/codegen/arm/Assemble.cpp') diff --git a/vm/compiler/codegen/arm/Assemble.cpp b/vm/compiler/codegen/arm/Assemble.cpp index d4707867e..5f2de72d6 100644 --- a/vm/compiler/codegen/arm/Assemble.cpp +++ b/vm/compiler/codegen/arm/Assemble.cpp @@ -447,6 +447,10 @@ ArmEncodingMap EncodingMap[kArmLast] = { kFmtDfp, 22, 12, kFmtDfp, 7, 16, kFmtDfp, 5, 0, kFmtUnused, -1, -1, IS_TERTIARY_OP | REG_DEF0_USE12, "vdivd", "!0S, !1S, !2S", 2), + ENCODING_MAP(kThumb2VmlaF64, 0xee000b00, + kFmtDfp, 22, 12, kFmtDfp, 7, 16, kFmtDfp, 5, 0, + kFmtUnused, -1, -1, IS_TERTIARY_OP | REG_DEF0 | REG_USE012, + "vmla", "!0S, !1S, !2S", 2), ENCODING_MAP(kThumb2VcvtIF, 0xeeb80ac0, kFmtSfp, 22, 12, kFmtSfp, 5, 0, kFmtUnused, -1, -1, kFmtUnused, -1, -1, IS_BINARY_OP | REG_DEF0_USE1, @@ -471,6 +475,14 @@ ArmEncodingMap EncodingMap[kArmLast] = { kFmtSfp, 22, 12, kFmtDfp, 5, 0, kFmtUnused, -1, -1, kFmtUnused, -1, -1, IS_BINARY_OP | REG_DEF0_USE1, "vcvt.f32.f64 ", "!0s, !1S", 2), + ENCODING_MAP(kThumb2VcvtF64S32, 0xeeb80bc0, + kFmtDfp, 22, 12, kFmtSfp, 5, 0, kFmtUnused, -1, -1, + kFmtUnused, -1, -1, IS_BINARY_OP | REG_DEF0_USE1, + "vcvt.f64.s32 ", "!0S, !1s", 2), + ENCODING_MAP(kThumb2VcvtF64U32, 0xeeb80b40, + kFmtDfp, 22, 12, kFmtSfp, 5, 0, kFmtUnused, -1, -1, + kFmtUnused, -1, -1, IS_BINARY_OP | REG_DEF0_USE1, + "vcvt.f64.u32 ", "!0S, !1s", 2), ENCODING_MAP(kThumb2Vsqrts, 0xeeb10ac0, kFmtSfp, 22, 12, kFmtSfp, 5, 0, kFmtUnused, -1, -1, kFmtUnused, -1, -1, IS_BINARY_OP | REG_DEF0_USE1, -- cgit v1.2.3