Add OpBranch

This commit is contained in:
ReinUsesLisp 2018-08-31 04:10:05 -03:00
parent 48ddaf4913
commit cdeeb9127c
2 changed files with 9 additions and 0 deletions

View file

@ -164,6 +164,9 @@ public:
/// The block label instruction: Any reference to a block is through this ref. /// The block label instruction: Any reference to a block is through this ref.
Ref Label(); Ref Label();
/// Unconditional jump to label.
Ref Branch(Ref target_label);
/// Returns with no value from a function with void return type. /// Returns with no value from a function with void return type.
Ref Return(); Ref Return();

View file

@ -30,6 +30,12 @@ Ref Module::Label() {
return AddCode(spv::Op::OpLabel, bound++); return AddCode(spv::Op::OpLabel, bound++);
} }
Ref Module::Branch(Ref target_label) {
Op* op{new Op(spv::Op::OpBranch)};
op->Add(target_label);
return AddCode(op);
}
Ref Module::Return() { Ref Module::Return() {
return AddCode(spv::Op::OpReturn); return AddCode(spv::Op::OpReturn);
} }