shader: Add copy constructor to instructions

This commit is contained in:
ReinUsesLisp
2021-07-25 21:34:17 -03:00
committed by Fernando Sahmkow
parent 95761cc6a7
commit c892359d1b
4 changed files with 20 additions and 1 deletions

View File

@ -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);