This repository has been archived on 2025-11-10 . You can view files and clone it. You cannot open issues or pull requests or push a commit.
848c2f75e31ac7373dbb7b232911b8c15728dd20
Lucky surprise: OP_PLUS follows the same principle rules as the bitwise operators in that they return the same type as the input. Therefore I can simply use the same macro to implement it and MULT as those. Very nice.
Oreo's Virtual Machine (OVM)
A stack based virtual machine in C11. Deals primarily in bytes, doesn't make assertions about typing and is very simple to target.
Instructions to target
You need to link with the object files for
base.c, darr.c and
inst.c to be able to properly target the OVM.
The basic idea is to create instructions via inst_t then using the
inst(s)_write_* API to generate bytecode (and write to a file).
Then to execute the program, the virtual machine interpreter ovm.out
is used.
For clarity, one may build lib (make lib) then use the resulting
object files to link and create bytecode for the virtual machine.
Description
Languages
C
70.2%
C++
26.5%
Makefile
3.3%