A64: Enable half-precision variants of floating-point FRINT* variants
With all the backing machinery in place, we can remove the fallback check for half-precision.
This commit is contained in:
parent
fb829b9525
commit
24f583c498
1 changed files with 3 additions and 3 deletions
|
@ -149,12 +149,12 @@ bool TranslatorVisitor::FCVT_float(Imm<2> type, Imm<2> opc, Vec Vn, Vec Vd) {
|
||||||
static bool FloatingPointRoundToIntegral(TranslatorVisitor& v, Imm<2> type, Vec Vn, Vec Vd,
|
static bool FloatingPointRoundToIntegral(TranslatorVisitor& v, Imm<2> type, Vec Vn, Vec Vd,
|
||||||
FP::RoundingMode rounding_mode, bool exact) {
|
FP::RoundingMode rounding_mode, bool exact) {
|
||||||
const auto datasize = FPGetDataSize(type);
|
const auto datasize = FPGetDataSize(type);
|
||||||
if (!datasize || *datasize == 16) {
|
if (!datasize) {
|
||||||
return v.UnallocatedEncoding();
|
return v.UnallocatedEncoding();
|
||||||
}
|
}
|
||||||
|
|
||||||
const IR::U32U64 operand = v.V_scalar(*datasize, Vn);
|
const IR::U16U32U64 operand = v.V_scalar(*datasize, Vn);
|
||||||
const IR::U32U64 result = v.ir.FPRoundInt(operand, rounding_mode, exact);
|
const IR::U16U32U64 result = v.ir.FPRoundInt(operand, rounding_mode, exact);
|
||||||
v.V_scalar(*datasize, Vd, result);
|
v.V_scalar(*datasize, Vd, result);
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in a new issue