mirror of
https://git.suyu.dev/suyu/dynarmic.git
synced 2026-01-08 23:48:18 +01:00
Merge pull request #442 from lioncash/fcvtxn
A64: Implement scalar and vector variants of FCVTXN
This commit is contained in:
commit
fb039e232c
14 changed files with 210 additions and 32 deletions
|
|
@ -1948,14 +1948,12 @@ U32U64 IREmitter::FPSub(const U32U64& a, const U32U64& b, bool fpcr_controlled)
|
|||
}
|
||||
}
|
||||
|
||||
U32 IREmitter::FPDoubleToSingle(const U64& a, bool fpcr_controlled) {
|
||||
ASSERT(fpcr_controlled);
|
||||
return Inst<U32>(Opcode::FPDoubleToSingle, a);
|
||||
U32 IREmitter::FPDoubleToSingle(const U64& a, FP::RoundingMode rounding) {
|
||||
return Inst<U32>(Opcode::FPDoubleToSingle, a, Imm8(static_cast<u8>(rounding)));
|
||||
}
|
||||
|
||||
U64 IREmitter::FPSingleToDouble(const U32& a, bool fpcr_controlled) {
|
||||
ASSERT(fpcr_controlled);
|
||||
return Inst<U64>(Opcode::FPSingleToDouble, a);
|
||||
U64 IREmitter::FPSingleToDouble(const U32& a, FP::RoundingMode rounding) {
|
||||
return Inst<U64>(Opcode::FPSingleToDouble, a, Imm8(static_cast<u8>(rounding)));
|
||||
}
|
||||
|
||||
U32 IREmitter::FPToFixedS32(const U32U64& a, size_t fbits, FP::RoundingMode rounding) {
|
||||
|
|
|
|||
|
|
@ -312,8 +312,8 @@ public:
|
|||
U32U64 FPRSqrtStepFused(const U32U64& a, const U32U64& b);
|
||||
U32U64 FPSqrt(const U32U64& a);
|
||||
U32U64 FPSub(const U32U64& a, const U32U64& b, bool fpcr_controlled);
|
||||
U32 FPDoubleToSingle(const U64& a, bool fpcr_controlled);
|
||||
U64 FPSingleToDouble(const U32& a, bool fpcr_controlled);
|
||||
U32 FPDoubleToSingle(const U64& a, FP::RoundingMode rounding);
|
||||
U64 FPSingleToDouble(const U32& a, FP::RoundingMode rounding);
|
||||
U32 FPToFixedS32(const U32U64& a, size_t fbits, FP::RoundingMode rounding);
|
||||
U64 FPToFixedS64(const U32U64& a, size_t fbits, FP::RoundingMode rounding);
|
||||
U32 FPToFixedU32(const U32U64& a, size_t fbits, FP::RoundingMode rounding);
|
||||
|
|
|
|||
|
|
@ -500,8 +500,8 @@ OPCODE(FPSub32, U32, U32,
|
|||
OPCODE(FPSub64, U64, U64, U64 )
|
||||
|
||||
// Floating-point conversions
|
||||
OPCODE(FPSingleToDouble, U64, U32 )
|
||||
OPCODE(FPDoubleToSingle, U32, U64 )
|
||||
OPCODE(FPSingleToDouble, U64, U32, U8 )
|
||||
OPCODE(FPDoubleToSingle, U32, U64, U8 )
|
||||
OPCODE(FPDoubleToFixedS32, U32, U64, U8, U8 )
|
||||
OPCODE(FPDoubleToFixedS64, U64, U64, U8, U8 )
|
||||
OPCODE(FPDoubleToFixedU32, U32, U64, U8, U8 )
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue