diff options
Diffstat (limited to 'src/shader_recompiler/frontend/ir/microinstruction.h')
| -rw-r--r-- | src/shader_recompiler/frontend/ir/microinstruction.h | 6 |
1 files changed, 6 insertions, 0 deletions
diff --git a/src/shader_recompiler/frontend/ir/microinstruction.h b/src/shader_recompiler/frontend/ir/microinstruction.h index 770bbd550..77296cfa4 100644 --- a/src/shader_recompiler/frontend/ir/microinstruction.h +++ b/src/shader_recompiler/frontend/ir/microinstruction.h | |||
| @@ -99,6 +99,12 @@ public: | |||
| 99 | return ret; | 99 | return ret; |
| 100 | } | 100 | } |
| 101 | 101 | ||
| 102 | template <typename FlagsType> | ||
| 103 | requires(sizeof(FlagsType) <= sizeof(u32) && std::is_trivially_copyable_v<FlagsType>) | ||
| 104 | [[nodiscard]] void SetFlags(FlagsType& new_val) noexcept { | ||
| 105 | std::memcpy(&flags, &new_val, sizeof(new_val)); | ||
| 106 | } | ||
| 107 | |||
| 102 | /// Intrusively store the host definition of this instruction. | 108 | /// Intrusively store the host definition of this instruction. |
| 103 | template <typename DefinitionType> | 109 | template <typename DefinitionType> |
| 104 | void SetDefinition(DefinitionType def) { | 110 | void SetDefinition(DefinitionType def) { |