feat(furvm): add call instruction

This commit is contained in:
2026-06-11 15:09:30 +02:00
parent 6ca5fcc995
commit 3f6d0adef6
5 changed files with 33 additions and 5 deletions
+1 -1
View File
@@ -14,7 +14,7 @@ enum class function_t : std::uint8_t {
Native, /**< A native function implemented through furvm API. */
};
using native_function = std::function<void(const executor_p&)>;
using native_function = std::function<void(executor&)>;
class function {
private:
+7
View File
@@ -65,6 +65,13 @@ enum class instruction_t : byte {
*/
Mod,
/**
* @brief Calls a function.
*
* Calls a function denoted by next two bytes in little-endian from current frame's module.
*/
Call,
/**
* @brief Pops the current call frame.
*/
+8
View File
@@ -51,6 +51,14 @@ public:
* @return The byte.
*/
constexpr byte byte(std::size_t offset) const { return m_bytecode.at(offset); }
public:
/**
* @brief Returns a function from this module.
*
* @param id Id of the function.
* @return The function.
*/
constexpr const function_p& function_at(function_handle id) const { return m_functions.at(id); }
private:
module_handle m_id;
bytecode_t m_bytecode;