mirror of
https://git.suyu.dev/suyu/dynarmic.git
synced 2026-03-13 18:12:56 +00:00
Merge pull request #458 from lioncash/float-op
A64: Handle half-precision floating point in FABS, FNEG, and scalar FMOV
This commit is contained in:
@@ -1773,11 +1773,17 @@ U128 IREmitter::ZeroVector() {
|
||||
return Inst<U128>(Opcode::ZeroVector);
|
||||
}
|
||||
|
||||
U32U64 IREmitter::FPAbs(const U32U64& a) {
|
||||
if (a.GetType() == Type::U32) {
|
||||
U16U32U64 IREmitter::FPAbs(const U16U32U64& a) {
|
||||
switch (a.GetType()) {
|
||||
case Type::U16:
|
||||
return Inst<U16>(Opcode::FPAbs16, a);
|
||||
case Type::U32:
|
||||
return Inst<U32>(Opcode::FPAbs32, a);
|
||||
} else {
|
||||
case Type::U64:
|
||||
return Inst<U64>(Opcode::FPAbs64, a);
|
||||
default:
|
||||
UNREACHABLE();
|
||||
return U16U32U64{};
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1880,11 +1886,17 @@ U32U64 IREmitter::FPMulX(const U32U64& a, const U32U64& b) {
|
||||
}
|
||||
}
|
||||
|
||||
U32U64 IREmitter::FPNeg(const U32U64& a) {
|
||||
if (a.GetType() == Type::U32) {
|
||||
U16U32U64 IREmitter::FPNeg(const U16U32U64& a) {
|
||||
switch (a.GetType()) {
|
||||
case Type::U16:
|
||||
return Inst<U16>(Opcode::FPNeg16, a);
|
||||
case Type::U32:
|
||||
return Inst<U32>(Opcode::FPNeg32, a);
|
||||
} else {
|
||||
case Type::U64:
|
||||
return Inst<U64>(Opcode::FPNeg64, a);
|
||||
default:
|
||||
UNREACHABLE();
|
||||
return U16U32U64{};
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user