SPU Analyzer: Add pure opcode tag

This commit is contained in:
Elad 2026-03-19 10:49:55 +02:00
parent e866e3555d
commit 91f4ce12c5

View File

@ -13,6 +13,7 @@ struct spu_itype
static constexpr struct quadrop_tag{} _quadrop{}; // 4-op Instructions
static constexpr struct xfloat_tag{} xfloat{}; // Instructions producing xfloat values
static constexpr struct zregmod_tag{} zregmod{}; // Instructions not modifying any GPR
static constexpr struct pure_tag{} pure{}; // Instructions that always produce the same values as long as arguments are equal
enum class type : unsigned char
{
@ -301,6 +302,12 @@ struct spu_itype
{
return (value >= HEQ && value <= STQR) || (value >= BR && value <= BIHNZ);
}
// Test for instructions which always produce the same values as long as arguments and immediate values are equal
friend constexpr bool operator &(type value, pure_tag)
{
return (value >= ILH && value <= CLGTI);
}
};
using spu_itype_t = spu_itype::type;