diff options
| author | 2021-03-30 03:19:50 -0300 | |
|---|---|---|
| committer | 2021-07-22 21:51:25 -0400 | |
| commit | 514a6b07eedace58b4a0c95282bdfc729623d1d9 (patch) | |
| tree | b384c882fa5e24ce9a0a2d287076d23949b3e266 /src/shader_recompiler/frontend/ir/microinstruction.cpp | |
| parent | shader: Fix indirect branches to scheduler instructions (diff) | |
| download | yuzu-514a6b07eedace58b4a0c95282bdfc729623d1d9.tar.gz yuzu-514a6b07eedace58b4a0c95282bdfc729623d1d9.tar.xz yuzu-514a6b07eedace58b4a0c95282bdfc729623d1d9.zip | |
shader: Store type of phi nodes in flags
This is needed because pseudo-instructions where invalidated.
Diffstat (limited to 'src/shader_recompiler/frontend/ir/microinstruction.cpp')
| -rw-r--r-- | src/shader_recompiler/frontend/ir/microinstruction.cpp | 4 |
1 files changed, 4 insertions, 0 deletions
diff --git a/src/shader_recompiler/frontend/ir/microinstruction.cpp b/src/shader_recompiler/frontend/ir/microinstruction.cpp index c3ba6b522..074c71d53 100644 --- a/src/shader_recompiler/frontend/ir/microinstruction.cpp +++ b/src/shader_recompiler/frontend/ir/microinstruction.cpp | |||
| @@ -193,6 +193,10 @@ void Inst::AddPhiOperand(Block* predecessor, const Value& value) { | |||
| 193 | if (!value.IsImmediate()) { | 193 | if (!value.IsImmediate()) { |
| 194 | Use(value); | 194 | Use(value); |
| 195 | } | 195 | } |
| 196 | if (Flags<IR::Type>() == IR::Type::Void) { | ||
| 197 | // Set the type of the phi node | ||
| 198 | SetFlags<IR::Type>(value.Type()); | ||
| 199 | } | ||
| 196 | phi_args.emplace_back(predecessor, value); | 200 | phi_args.emplace_back(predecessor, value); |
| 197 | } | 201 | } |
| 198 | 202 | ||