From 302f56b36a63edba0d1fe75bbfe5f64e51a7ce2d Mon Sep 17 00:00:00 2001 From: Lioncash Date: Mon, 4 Mar 2019 12:22:58 -0500 Subject: [PATCH] A64: Fall back to interpreting for FCADD and FCMLA half-precision variants Rather than straight-up treating them as undefined, we can fall back to an interpreter in this case. --- src/frontend/A64/translate/impl/simd_three_same_extra.cpp | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/frontend/A64/translate/impl/simd_three_same_extra.cpp b/src/frontend/A64/translate/impl/simd_three_same_extra.cpp index a972a557..cc6919a0 100644 --- a/src/frontend/A64/translate/impl/simd_three_same_extra.cpp +++ b/src/frontend/A64/translate/impl/simd_three_same_extra.cpp @@ -66,7 +66,7 @@ bool TranslatorVisitor::FCMLA_vec(bool Q, Imm<2> size, Vec Vm, Imm<2> rot, Vec V // TODO: Currently we don't support half-precision floating point if (esize == 16) { - return UnallocatedEncoding(); + return InterpretThisInstruction(); } const size_t datasize = Q ? 128 : 64; @@ -139,7 +139,7 @@ bool TranslatorVisitor::FCADD_vec(bool Q, Imm<2> size, Vec Vm, Imm<1> rot, Vec V // TODO: Currently we don't support half-precision floating point if (esize == 16) { - return UnallocatedEncoding(); + return InterpretThisInstruction(); } const size_t datasize = Q ? 128 : 64;