shader_decode: Implement VMAD and VSETP

This commit is contained in:
ReinUsesLisp
2018-12-24 01:23:00 -03:00
parent b11e0b94c7
commit a1b845b651
5 changed files with 129 additions and 2 deletions

View File

@ -595,6 +595,7 @@ private:
u32 DecodeFloatSet(BasicBlock& bb, u32 pc);
u32 DecodeIntegerSet(BasicBlock& bb, u32 pc);
u32 DecodeHalfSet(BasicBlock& bb, u32 pc);
u32 DecodeVideo(BasicBlock& bb, u32 pc);
u32 DecodeXmad(BasicBlock& bb, u32 pc);
u32 DecodeOther(BasicBlock& bb, u32 pc);
@ -712,6 +713,9 @@ private:
bool is_array, std::size_t array_offset, std::size_t bias_offset,
std::vector<Node>&& coords);
Node GetVideoOperand(Node op, bool is_chunk, bool is_signed, Tegra::Shader::VideoType type,
u64 byte_height);
void WriteLogicOperation(BasicBlock& bb, Tegra::Shader::Register dest,
Tegra::Shader::LogicOperation logic_op, Node op_a, Node op_b,
Tegra::Shader::PredicateResultMode predicate_mode,