mirror of
https://github.com/emu-russia/pureikyubu.git
synced 2025-04-02 10:42:15 -04:00
63 lines
1.3 KiB
C++
63 lines
1.3 KiB
C++
|
|
#pragma once
|
|
|
|
namespace DSP
|
|
{
|
|
// Flag modify rules
|
|
|
|
enum class CFlagRules
|
|
{
|
|
None = -1,
|
|
Zero,
|
|
C1, // (Ds(39) & S(39)) | (~Dd(39) & (Ds(39) | S(39)))
|
|
C2, // (Ds(39) & ~S(39)) | (~Dd(39) & (Ds(39) | ~S(39)))
|
|
C3, // Ds(39) ^ S(15) != 0 ? (Ds(39) & S(15)) | (~Dd(39) & (Ds(39) | S(15))) : (Ds(39) & ~S(15)) | (~Dd(39) & (Ds(39) | ~S(15)))
|
|
C4, // ~Ds(39) & ~Dd(39)
|
|
C5, // Ds(39) ^ S(31) == 0 ? (Ds(39) & S(39)) | (~Dd(39) & (Ds(39) | S(39))) : (Ds(39) & ~S(39)) | (~Dd(39) & (Ds(39) | ~S(39)))
|
|
C6, // Ds(39) & ~Dd(39)
|
|
C7, // P(39) & ~D(39)
|
|
C8, // (P(39) & S(39)) | (~D(39) & (P(39) | S(39)))
|
|
};
|
|
|
|
enum class VFlagRules
|
|
{
|
|
None = -1,
|
|
Zero,
|
|
V1, // (Ds(39) & S(39) & ~Dd(39)) | (~Ds(39) & ~S(39) & Dd(39))
|
|
V2, // (Ds(39) & ~S(39) & ~Dd(39)) | (~Ds(39) & S(39) & Dd(39))
|
|
V3, // Ds(39)& Dd(39)
|
|
V4, // ~Ds(39) & Dd(39)
|
|
V5, // Dd(39)
|
|
V6, // ~P(39) & D(39)
|
|
V7, // (P(39) & S(39) & ~D(39)) | (~P(39) & ~S(39) & D(39))
|
|
V8, // Ds(39) & ~Dd(39)
|
|
};
|
|
|
|
enum class ZFlagRules
|
|
{
|
|
None = -1,
|
|
Z1, // Dd == 0
|
|
Z2, // Dd(31 - 16) == 0
|
|
Z3, // Dd(39 - 0) == 0
|
|
};
|
|
|
|
enum class NFlagRules
|
|
{
|
|
None = -1,
|
|
N1, // Dd(39)
|
|
N2, // Dd(31)
|
|
};
|
|
|
|
enum class EFlagRules
|
|
{
|
|
None = -1,
|
|
E1, // Dd(39 - 31) != (0b0'0000'0000 || 0b1'1111'1111)
|
|
};
|
|
|
|
enum class UFlagRules
|
|
{
|
|
None = -1,
|
|
U1, // ~(Dd(31) ^ Dd(30))
|
|
};
|
|
|
|
}
|