summaryrefslogtreecommitdiff
path: root/src/shader_recompiler/frontend/ir/microinstruction.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/shader_recompiler/frontend/ir/microinstruction.h')
-rw-r--r--src/shader_recompiler/frontend/ir/microinstruction.h6
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) {