|
|
|
@ -499,6 +499,11 @@ enum class SystemVariable : u64 { |
|
|
|
CircularQueueEntryAddressHigh = 0x63, |
|
|
|
}; |
|
|
|
|
|
|
|
enum class PhysicalAttributeDirection : u64 { |
|
|
|
Input = 0, |
|
|
|
Output = 1, |
|
|
|
}; |
|
|
|
|
|
|
|
union Instruction { |
|
|
|
Instruction& operator=(const Instruction& instr) { |
|
|
|
value = instr.value; |
|
|
|
@ -811,6 +816,12 @@ union Instruction { |
|
|
|
BitField<20, 24, s64> immediate_offset; |
|
|
|
} stg; |
|
|
|
|
|
|
|
union { |
|
|
|
BitField<32, 1, PhysicalAttributeDirection> direction; |
|
|
|
BitField<47, 3, AttributeSize> size; |
|
|
|
BitField<20, 11, u64> address; |
|
|
|
} al2p; |
|
|
|
|
|
|
|
union { |
|
|
|
BitField<0, 3, u64> pred0; |
|
|
|
BitField<3, 3, u64> pred3; |
|
|
|
@ -1374,8 +1385,9 @@ public: |
|
|
|
ST_A, |
|
|
|
ST_L, |
|
|
|
ST_S, |
|
|
|
LDG, // Load from global memory |
|
|
|
STG, // Store in global memory |
|
|
|
LDG, // Load from global memory |
|
|
|
STG, // Store in global memory |
|
|
|
AL2P, // Transforms attribute memory into physical memory |
|
|
|
TEX, |
|
|
|
TEX_B, // Texture Load Bindless |
|
|
|
TXQ, // Texture Query |
|
|
|
@ -1646,6 +1658,7 @@ private: |
|
|
|
INST("1110111101010---", Id::ST_L, Type::Memory, "ST_L"), |
|
|
|
INST("1110111011010---", Id::LDG, Type::Memory, "LDG"), |
|
|
|
INST("1110111011011---", Id::STG, Type::Memory, "STG"), |
|
|
|
INST("1110111110100---", Id::AL2P, Type::Memory, "AL2P"), |
|
|
|
INST("110000----111---", Id::TEX, Type::Texture, "TEX"), |
|
|
|
INST("1101111010111---", Id::TEX_B, Type::Texture, "TEX_B"), |
|
|
|
INST("1101111101001---", Id::TXQ, Type::Texture, "TXQ"), |
|
|
|
|