diff options
Diffstat (limited to 'src/shader_recompiler/frontend/ir/ir_emitter.h')
| -rw-r--r-- | src/shader_recompiler/frontend/ir/ir_emitter.h | 4 |
1 files changed, 2 insertions, 2 deletions
diff --git a/src/shader_recompiler/frontend/ir/ir_emitter.h b/src/shader_recompiler/frontend/ir/ir_emitter.h index 4decb46bc..24b012a39 100644 --- a/src/shader_recompiler/frontend/ir/ir_emitter.h +++ b/src/shader_recompiler/frontend/ir/ir_emitter.h | |||
| @@ -178,7 +178,7 @@ private: | |||
| 178 | } | 178 | } |
| 179 | 179 | ||
| 180 | template <typename T> | 180 | template <typename T> |
| 181 | requires(sizeof(T) <= sizeof(u64) && std::is_trivially_copyable_v<T>) struct Flags { | 181 | requires(sizeof(T) <= sizeof(u32) && std::is_trivially_copyable_v<T>) struct Flags { |
| 182 | Flags() = default; | 182 | Flags() = default; |
| 183 | Flags(T proxy_) : proxy{proxy_} {} | 183 | Flags(T proxy_) : proxy{proxy_} {} |
| 184 | 184 | ||
| @@ -187,7 +187,7 @@ private: | |||
| 187 | 187 | ||
| 188 | template <typename T = Value, typename FlagType, typename... Args> | 188 | template <typename T = Value, typename FlagType, typename... Args> |
| 189 | T Inst(Opcode op, Flags<FlagType> flags, Args... args) { | 189 | T Inst(Opcode op, Flags<FlagType> flags, Args... args) { |
| 190 | u64 raw_flags{}; | 190 | u32 raw_flags{}; |
| 191 | std::memcpy(&raw_flags, &flags.proxy, sizeof(flags.proxy)); | 191 | std::memcpy(&raw_flags, &flags.proxy, sizeof(flags.proxy)); |
| 192 | auto it{block->PrependNewInst(insertion_point, op, {Value{args}...}, raw_flags)}; | 192 | auto it{block->PrependNewInst(insertion_point, op, {Value{args}...}, raw_flags)}; |
| 193 | return T{Value{&*it}}; | 193 | return T{Value{&*it}}; |