mirror of
https://git.suyu.dev/suyu/sirit.git
synced 2025-12-28 10:16:13 +01:00
Move flow and function opcodes into their own file
This commit is contained in:
parent
3bd3688567
commit
c2215fca0e
6 changed files with 63 additions and 27 deletions
|
|
@ -47,18 +47,31 @@ public:
|
|||
void AddEntryPoint(spv::ExecutionModel execution_model, const Op* entry_point,
|
||||
const std::string& name, const std::vector<const Op*>& interfaces = {});
|
||||
|
||||
/**
|
||||
* Adds an instruction to module's code
|
||||
* @param op Instruction to insert into code. Types must not be emitted
|
||||
* @return Returns op.
|
||||
*/
|
||||
const Op* Emit(const Op* op);
|
||||
|
||||
// Types
|
||||
|
||||
/// Returns type void.
|
||||
const Op* TypeVoid();
|
||||
|
||||
/// Returns a function type.
|
||||
const Op* TypeFunction(const Op* return_type, const std::vector<const Op*>& arguments = {});
|
||||
|
||||
/// Adds an instruction to module's code block
|
||||
const Op* Emit(const Op* op);
|
||||
// Function
|
||||
|
||||
/// Emits a function.
|
||||
const Op* Function(const Op* result_type, spv::FunctionControlMask function_control,
|
||||
const Op* function_type);
|
||||
const Op* function_type);
|
||||
|
||||
/// Emits a function end.
|
||||
const Op* FunctionEnd();
|
||||
|
||||
// Flow
|
||||
|
||||
/// Emits a label. It starts a block.
|
||||
const Op* Label();
|
||||
|
|
@ -66,9 +79,6 @@ public:
|
|||
/// Emits a return. It ends a block.
|
||||
const Op* Return();
|
||||
|
||||
/// Emits a function end.
|
||||
const Op* FunctionEnd();
|
||||
|
||||
private:
|
||||
const Op* AddCode(Op* op);
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue