summaryrefslogtreecommitdiffstats
path: root/src/shader_recompiler/frontend/ir/microinstruction.cpp
diff options
context:
space:
mode:
authorReinUsesLisp <reinuseslisp@airmail.cc>2021-07-26 02:34:17 +0200
committerFernando Sahmkow <fsahmkow27@gmail.com>2021-11-16 22:11:28 +0100
commitc892359d1bf228d3c119c953c20fff44f280a7c4 (patch)
treec7461d3dea22a37448351fdcf92b5efadc1143b0 /src/shader_recompiler/frontend/ir/microinstruction.cpp
parentshader: Add integer division opcodes (diff)
downloadyuzu-c892359d1bf228d3c119c953c20fff44f280a7c4.tar
yuzu-c892359d1bf228d3c119c953c20fff44f280a7c4.tar.gz
yuzu-c892359d1bf228d3c119c953c20fff44f280a7c4.tar.bz2
yuzu-c892359d1bf228d3c119c953c20fff44f280a7c4.tar.lz
yuzu-c892359d1bf228d3c119c953c20fff44f280a7c4.tar.xz
yuzu-c892359d1bf228d3c119c953c20fff44f280a7c4.tar.zst
yuzu-c892359d1bf228d3c119c953c20fff44f280a7c4.zip
Diffstat (limited to 'src/shader_recompiler/frontend/ir/microinstruction.cpp')
-rw-r--r--src/shader_recompiler/frontend/ir/microinstruction.cpp11
1 files changed, 11 insertions, 0 deletions
diff --git a/src/shader_recompiler/frontend/ir/microinstruction.cpp b/src/shader_recompiler/frontend/ir/microinstruction.cpp
index 30b470bdd..97e2bf6af 100644
--- a/src/shader_recompiler/frontend/ir/microinstruction.cpp
+++ b/src/shader_recompiler/frontend/ir/microinstruction.cpp
@@ -47,6 +47,17 @@ Inst::Inst(IR::Opcode op_, u32 flags_) noexcept : op{op_}, flags{flags_} {
}
}
+Inst::Inst(const Inst& base) : op{base.op}, flags{base.flags} {
+ if (base.op == Opcode::Phi) {
+ throw NotImplementedException("Copying phi node");
+ }
+ std::construct_at(&args);
+ const size_t num_args{base.NumArgs()};
+ for (size_t index = 0; index < num_args; ++index) {
+ SetArg(index, base.Arg(index));
+ }
+}
+
Inst::~Inst() {
if (op == Opcode::Phi) {
std::destroy_at(&phi_args);