Ronald Caesar
1215ff89f9
engine: add condition code opcodes
...
Signed-off-by: Ronald Caesar <github43132@proton.me >
2026-06-03 02:01:49 -04:00
Ronald Caesar
98b06ec001
x86: add NCZV flags
...
They are stored as contiguous 8-bit values to allow fast setcc writes
without read-modify-write stalls.
Signed-off-by: Ronald Caesar <github43132@proton.me >
2026-06-03 01:59:12 -04:00
Ronald Caesar
adcade35f9
engine: add clear cache function
...
Signed-off-by: Ronald Caesar <github43132@proton.me >
2026-06-03 01:47:02 -04:00
Ronald Caesar
ac7815ef6e
engine: add is thread running function
...
Signed-off-by: Ronald Caesar <github43132@proton.me >
2026-06-03 01:04:33 -04:00
Ronald Caesar
4461cf1931
engine: add TODO to replace a flag
...
Signed-off-by: Ronald Caesar <github43132@proton.me >
2026-06-03 01:02:14 -04:00
Ronald Caesar
109f6bf6e8
docs: Add more immediate goals
...
Signed-off-by: Ronald Caesar <github43132@proton.me >
2026-06-03 00:57:53 -04:00
Ronald Caesar
0606a86160
engine: fix incorrect doc return type
...
Signed-off-by: Ronald Caesar <github43132@proton.me >
2026-06-02 00:57:03 -04:00
Ronald Caesar
66d0575c96
engine: fix race condition when stopping thread
...
The `stop_requested` thread flag gets set at the beginning of
bal_engine_run_thread() before the main loop happens. A user can call
bal_engine_stop_thread() before this flag gets set causing a race
condition.
Signed-off-by: Ronald Caesar <github43132@proton.me >
2026-06-02 00:32:49 -04:00
Ronald Caesar
214e27381f
engine: add function to stop engine thread
...
Signed-off-by: Ronald Caesar <github43132@proton.me >
2026-06-02 00:30:28 -04:00
Ronald Caesar
1c3880021f
engine: add threading support
...
Adds support to allow host applications to run Ballistic on a separate
thread. Only `bal_engine_run_thread()` has been modified. Functions
to modify the thread state will be added in future commits.
Signed-off-by: Ronald Caesar <github43132@proton.me >
2026-06-01 23:39:48 -04:00
Ronald Caesar
31dfd97a7d
x86/compiler1: fix unused variable warning
...
Signed-off-by: Ronald Caesar <github43132@proton.me >
2026-06-01 23:35:27 -04:00
Ronald Caesar
64d0788f1d
engine: add engine already running error
...
The engine should not be run more than once.
Signed-off-by: Ronald Caesar <github43132@proton.me >
2026-06-01 23:16:02 -04:00
Ronald Caesar
43b0e647d8
engine: do not wipe block cache in reset function
...
This is done to replicate Dynarmic's API more closely.
Signed-off-by: Ronald Caesar <github43132@proton.me >
2026-06-01 22:52:55 -04:00
Ronald Caesar
1689dda630
engine: implement block caching
...
This is a 4-way associative block cache map to avoid blocks being
recompiled over and over again by mapping a GVA to a compiled host
executable pointer
Signed-off-by: Ronald Caesar <github43132@proton.me >
2026-06-01 22:44:32 -04:00
Ronald Caesar
e984f25ceb
engine: support JMP instructions
...
Translates B and BR ARM instructions into x86 JMP instructions.
Signed-off-by: Ronald Caesar <github43132@proton.me >
2026-06-01 21:39:43 -04:00
Ronald Caesar
301f6df564
assembler: emit BR instruction
...
Signed-off-by: Ronald Caesar <github43132@proton.me >
2026-05-31 20:22:45 -04:00
Ronald Caesar
4f75e6e8ed
assembler: emit B instruction
...
Signed-off-by: Ronald Caesar <github43132@proton.me >
2026-05-31 20:22:07 -04:00
Ronald Caesar
6be6ce1fdf
tests/x86/assembler: add missing jmp functions to test cases
...
Signed-off-by: Ronald Caesar <github43132@proton.me >
2026-05-30 16:27:35 -04:00
Ronald Caesar
eae90c216c
x86/assembler: emit jmp rel32
...
Signed-off-by: Ronald Caesar <github43132@proton.me >
2026-05-30 16:20:40 -04:00
Ronald Caesar
8f8f64931c
x86/assembler: emit jmp reg64
...
Signed-off-by: Ronald Caesar <github43132@proton.me >
2026-05-30 16:04:09 -04:00
Ronald Caesar
0aa0aa9f21
engine: implement BAL_ENGINE_FLAG_INSTRUCTION_COUNTING
...
This requires adding an `instruction_count` to `bal_cpu_t` and the
macro `BAL_X86_MACRO_ADD_CPU_ICOUNT` for tracking ARM instructions.
Signed-off-by: Ronald Caesar <github43132@proton.me >
2026-05-30 14:51:40 -04:00
Ronald Caesar
e33d483f76
engine: move engine flags to a separate flag
...
This is for reusability purposes.
Signed-off-by: Ronald Caesar <github43132@proton.me >
2026-05-30 14:24:29 -04:00
Ronald Caesar
d5857b1cb5
x86/assembler: specify which register holds the base guest cpu context
...
Signed-off-by: Ronald Caesar <github43132@proton.me >
2026-05-30 14:02:49 -04:00
Ronald Caesar
d95a1f1317
x86/assembler: emit add qword ptr [rbp + offset], immediate
...
Signed-off-by: Ronald Caesar <github43132@proton.me >
2026-05-30 13:38:06 -04:00
Ronald Caesar
975ee6cdee
x86/assembler: add missing log statement
...
Signed-off-by: Ronald Caesar <github43132@proton.me >
2026-05-30 07:10:22 -04:00