From 28a8b4d2102128318428c205075feda5bb4cea46 Mon Sep 17 00:00:00 2001
From: Lioncash <mathew1800@gmail.com>
Date: Sat, 23 Mar 2019 13:45:19 -0400
Subject: [PATCH] A64: Handle half-precision floating point in scalar FMOV

This is simply performing a scalar value transfer between registers
without conversions, so this is trivial to handle as-is.
---
 .../impl/floating_point_data_processing_one_register.cpp    | 6 +++---
 1 file changed, 3 insertions(+), 3 deletions(-)

diff --git a/src/frontend/A64/translate/impl/floating_point_data_processing_one_register.cpp b/src/frontend/A64/translate/impl/floating_point_data_processing_one_register.cpp
index e574c1f9..2a8c096e 100644
--- a/src/frontend/A64/translate/impl/floating_point_data_processing_one_register.cpp
+++ b/src/frontend/A64/translate/impl/floating_point_data_processing_one_register.cpp
@@ -12,13 +12,13 @@ namespace Dynarmic::A64 {
 
 bool TranslatorVisitor::FMOV_float(Imm<2> type, Vec Vn, Vec Vd) {
     const auto datasize = FPGetDataSize(type);
-    if (!datasize || *datasize == 16) {
+    if (!datasize) {
         return UnallocatedEncoding();
     }
 
-    const IR::U128 operand = V(*datasize, Vn);
+    const IR::U16U32U64 operand = V_scalar(*datasize, Vn);
 
-    V(*datasize, Vd, operand);
+    V_scalar(*datasize, Vd, operand);
     return true;
 }