shader_bytecode: Add AL2P decoding
This commit is contained in:
		| @@ -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"), | ||||
|   | ||||
		Reference in New Issue
	
	Block a user
	 ReinUsesLisp
					ReinUsesLisp