SDL3, ImGUI, and OpenGL are unused dependencies. They will be enabled
once a GUI becomes necessary
Signed-off-by: Ronald Caesar <github43132@proton.me>
Although this is mandated in the Barr C style guide, I find this
specific rule uneccesarry and tedious.
Signed-off-by: Ronald Caesar <github43132@proton.me>
The linked list was implemented to store instructions in a basic block.
Instructions will now be stored in arrays to keep logic simple and
straight-foward.
Signed-off-by: Ronald Caesar <github43132@proton.me>
Introduces IR instruction management, including instruction_t and
instruction_list_t definitions and their implementations. It also added
const-correctness to the value_t API.
Signed-off-by: Ronald Caesar <github43132@proton.me>
Xphalnos says:
==============
The memory arena is created but not destroyed at the end of execution.
Signed-off-by: Ronald Caesar <github43132@proton.me>
Introduces jit/ir/value.h, which defines the value_t structure which is
a polymorphic container designed to hold various kinds of data that IR
instructions operate on or produce.
Signed-off-by: Ronald Caesar <github43132@proton.me>
A new header, jit/a32_types.h, defines a32_register_t, an enum for Arm32
general purpose register's R0-R15, including standard aliases for SP,
LR, and PC.
Signed-off-by: Ronald Caesar <github43132@proton.me>
This type is designed to hold various kinds of data that IR instructions
operate on, starting with immediate integer constants.
Signed-off-by: Ronald Caesar <github43132@proton.me>
Introduces the core Arm32 decoder, including the instruction parsing
mechanism and an initial set of defined instructions.
Signed-off-by: Ronald Caesar <github43132@proton.me>
Munmap can fail if the length argument is 0, and the address being freed
is not a multiple of the host's page size.
Signed-off-by: Ronald Caesar <github43132@proton.me>
Strengthens the decoder's foundation but does not yet implement the core
instruction lookup table logic or the public arm32_decode API. These
will be addressed in future patches.
Signed-off-by: Ronald Caesar <github43132@proton.me>
The term KVM is missleading because we are not using linux kernel
virtualization. PVM stands for "Pound Virtual Machine" which is more
accurate.
Signed-off-by: Ronald Caesar <github43132@proton.me>
The mmio will not be touchwd for a couple months while we focus on
executing arm instructions. Once we get to that point this design doc
will be rewritten.
Signed-off-by: Ronald Caesar <github43132@proton.me>
The changes affects multiple places in the repo and this one of the rare
instances where I cant be bothered writing a comprehensive commit. Look
at the diff for changes.
Signed-off-by: Ronald Caesar <github43132@proton.me>