diff --git a/src/shader_recompiler/ir/ir_emitter.cpp b/src/shader_recompiler/ir/ir_emitter.cpp index 73b33432b..ed972c40f 100644 --- a/src/shader_recompiler/ir/ir_emitter.cpp +++ b/src/shader_recompiler/ir/ir_emitter.cpp @@ -1619,4 +1619,9 @@ void IREmitter::EmitPrimitive() { Inst(Opcode::EmitPrimitive); } +IR::Inst* IREmitter::CopyInst(const IR::Inst& inst) { + auto it{block->PrependNewInst(insertion_point, inst)}; + return &*it; +} + } // namespace Shader::IR diff --git a/src/shader_recompiler/ir/ir_emitter.h b/src/shader_recompiler/ir/ir_emitter.h index b3f513085..0ca955475 100644 --- a/src/shader_recompiler/ir/ir_emitter.h +++ b/src/shader_recompiler/ir/ir_emitter.h @@ -321,6 +321,8 @@ public: void EmitVertex(); void EmitPrimitive(); + [[nodiscard]] Inst* CopyInst(const Inst& inst); + private: IR::Block::iterator insertion_point;