Add support for guest Fz (Fpcr) mode through host Ftz and Daz (Mxcsr) modes (fast paths). (#1630)

* Add support for guest Fz (Fpcr) mode through host Ftz and Daz (Mxcsr) modes (fast paths).

* Ptc.InternalVersion = 1630

* Nits.

* Address comments.

* Update Ptc.cs

* Address comment.
This commit is contained in:
LDj3SNuD 2020-12-07 10:37:07 +01:00 committed by GitHub
parent 668720b088
commit 567ea726e1
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
14 changed files with 221 additions and 27 deletions

View file

@ -17,8 +17,10 @@ namespace Ryujinx.Tests.Cpu
protected const ulong CodeBaseAddress = 0x1000;
protected const ulong DataBaseAddress = CodeBaseAddress + Size;
private const bool Ignore_FpcrFz_FpcrDn = false;
private const bool IgnoreAllExcept_FpsrQc = false;
private static bool Ignore_FpcrFz = false;
private static bool Ignore_FpcrDn = false;
private static bool IgnoreAllExcept_FpsrQc = false;
private ulong _currAddress;
@ -205,11 +207,14 @@ namespace Ryujinx.Tests.Cpu
int fpsr = 0,
bool runUnicorn = true)
{
if (Ignore_FpcrFz_FpcrDn)
if (Ignore_FpcrFz)
{
#pragma warning disable CS0162
fpcr &= ~((1 << (int)Fpcr.Fz) | (1 << (int)Fpcr.Dn));
#pragma warning restore CS0162
fpcr &= ~(1 << (int)Fpcr.Fz);
}
if (Ignore_FpcrDn)
{
fpcr &= ~(1 << (int)Fpcr.Dn);
}
Opcode(opcode);
@ -323,9 +328,7 @@ namespace Ryujinx.Tests.Cpu
if (IgnoreAllExcept_FpsrQc)
{
#pragma warning disable CS0162
fpsrMask &= Fpsr.Qc;
#pragma warning restore CS0162
}
if (fpSkips != FpSkips.None)