MXVM 1.8.1
Virtual Machine, Compiler, and Pascal Frontend
Loading...
Searching...
No Matches
icode.hpp File Reference

Intermediate code representation, execution engine, and native x64 code generation (SysV + Win64). More...

#include "mxvm/instruct.hpp"
#include "mxvm/parser.hpp"
#include "scanner/exception.hpp"
#include <functional>
#include <unordered_map>
#include <variant>
#include <vector>
Include dependency graph for icode.hpp:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Classes

class  mxvm::Stack
 Runtime operand stack for the MXVM interpreter. More...
class  mxvm::RuntimeFunction
 Wraps a dynamically loaded native function from a shared library module. More...
class  mxvm::Base
 Base class for instruction storage, variables, labels, and external function registrations. More...
class  mxvm::Program
 Complete MXVM program: instruction interpreter and native x64 code generator. More...

Namespaces

namespace  mxvm

Typedefs

using mxvm::StackValue = std::variant<int64_t, void *, double, std::string>
 Stack element: integer, pointer, double, or string.
using mxvm::runtime_call = std::function<void(Program *program, std::vector<Operand> &operands)>
 Callback type for runtime-registered native functions.

Functions

void mxvm::except_assert (std::string reason, bool value)
 Assert a condition, throwing an Exception with the given reason on failure.
bool mxvm::isFunctionReturningOwnedPtr (const std::string &funcName)
 Check whether a named function returns an owned (heap-allocated) pointer.

Detailed Description

Intermediate code representation, execution engine, and native x64 code generation (SysV + Win64).

Author
Jared Bruni

Definition in file icode.hpp.