mirror of
https://git.suyu.dev/suyu/dynarmic.git
synced 2026-01-07 23:18:10 +01:00
IR: Add fbits argument to FPVectorFrom{Signed,Unsigned}Fixed
This commit is contained in:
parent
027b0ef725
commit
02150bc0b7
6 changed files with 223 additions and 182 deletions
|
|
@ -94,15 +94,13 @@ bool IntegerConvertToFloat(TranslatorVisitor& v, bool Q, bool sz, Vec Vn, Vec Vd
|
|||
}
|
||||
|
||||
const size_t datasize = Q ? 128 : 64;
|
||||
const size_t esize = sz ? 64 : 32;
|
||||
const FP::RoundingMode rounding_mode = v.ir.current_location->FPCR().RMode();
|
||||
|
||||
const IR::U128 operand = v.V(datasize, Vn);
|
||||
const IR::U128 result = [&] {
|
||||
if (signedness == Signedness::Signed) {
|
||||
return sz ? v.ir.FPVectorS64ToDouble(operand) : v.ir.FPVectorS32ToSingle(operand);
|
||||
}
|
||||
|
||||
return sz ? v.ir.FPVectorU64ToDouble(operand) : v.ir.FPVectorU32ToSingle(operand);
|
||||
}();
|
||||
const IR::U128 result = signedness == Signedness::Signed
|
||||
? v.ir.FPVectorFromSignedFixed(esize, operand, 0, rounding_mode)
|
||||
: v.ir.FPVectorFromUnsignedFixed(esize, operand, 0, rounding_mode);
|
||||
|
||||
v.V(datasize, Vd, result);
|
||||
return true;
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue