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.
This commit is contained in:
Lioncash 2019-03-23 13:45:19 -04:00 committed by MerryMage
parent fe84ecb780
commit 28a8b4d210

View file

@ -12,13 +12,13 @@ namespace Dynarmic::A64 {
bool TranslatorVisitor::FMOV_float(Imm<2> type, Vec Vn, Vec Vd) { bool TranslatorVisitor::FMOV_float(Imm<2> type, Vec Vn, Vec Vd) {
const auto datasize = FPGetDataSize(type); const auto datasize = FPGetDataSize(type);
if (!datasize || *datasize == 16) { if (!datasize) {
return UnallocatedEncoding(); 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; return true;
} }