Ronald Caesar
c45acbf6ad
cpu: add explicit padding to bal_cpu_t
...
Signed-off-by: Ronald Caesar <github43132@proton.me >
2026-06-15 03:34:17 -04:00
mcrib884
40246aa4f0
assembler: add bal_x86_emit_sub_r64_r64
...
Emits the x86 sub r64, r64 instruction (opcode 0x2B, REX.W + ModRM,
3 bytes). Follows the 5-check guard pattern matching add_r64_r64.
Signed-off-by: mcrib884 <farukkaya229@outlook.com >
2026-06-14 05:56:23 +00:00
Ronald Caesar
4f33c6fc57
x86/assembler: emit add r64, imm32
...
Signed-off-by: Ronald Caesar <github43132@proton.me >
2026-06-06 10:06:33 -04:00
Ronald Caesar
b50ac94b04
x86/assembler: emit add r64, r64
...
Signed-off-by: Ronald Caesar <github43132@proton.me >
2026-06-06 09:05:02 -04:00
Ronald Caesar
44dc0ec602
x86/compiler1: organize macro opcodes
...
Signed-off-by: Ronald Caesar <github43132@proton.me >
2026-06-06 02:11:38 -04:00
Ronald Caesar
ae91aac6f7
x86/compiler1: support setcc and jcc instructions in sliding window
...
Signed-off-by: Ronald Caesar <github43132@proton.me >
2026-06-06 02:08:32 -04:00
Ronald Caesar
a0a15707d7
x86/assembler: emit jcc offset
...
Signed-off-by: Ronald Caesar <github43132@proton.me >
2026-06-06 01:45:23 -04:00
Ronald Caesar
89c53b1a3c
x86/assembler: add static assert for bal_x86_condition_t
...
Signed-off-by: Ronald Caesar <github43132@proton.me >
2026-06-06 01:31:52 -04:00
Ronald Caesar
1c5dacaab7
x86/assembler: emit setcc byte ptr [rbp + offset]
...
Signed-off-by: Ronald Caesar <github43132@proton.me >
2026-06-06 01:10:22 -04:00
Ronald Caesar
a80ba0c320
x86/compiler1: add static assert for compiler1
...
Signed-off-by: Ronald Caesar <github43132@proton.me >
2026-06-05 04:03:35 -04:00
Ronald Caesar
42fa89dab3
x86/compiler: add static assert for sliding window struct size
...
Signed-off-by: Ronald Caesar <github43132@proton.me >
2026-06-05 04:02:50 -04:00
Ronald Caesar
d202e37aac
x86/compiler1: move macros array to the bottom of struct
...
Setting 128 bytes right in the middle of a struct is bad for the CPU.
Signed-off-by: Ronald Caesar <github43132@proton.me >
2026-06-05 04:01:41 -04:00
Ronald Caesar
21628681d5
build: introduce and fix struct padding warningd
...
Signed-off-by: Ronald Caesar <github43132@proton.me >
2026-06-05 03:39:27 -04:00
Ronald Caesar
69434449cd
x86/assembler: organize functions in alphabetical order
...
Signed-off-by: Ronald Caesar <github43132@proton.me >
2026-06-03 02:22:56 -04:00
Ronald Caesar
014a4ec7e2
x86/assembler: add condition codes for setcc and jcc instructions
...
Signed-off-by: Ronald Caesar <github43132@proton.me >
2026-06-03 02:22:56 -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
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
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
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
b3fec3a500
x86/compiler1: add reset function
...
Signed-off-by: Ronald Caesar <github43132@proton.me >
2026-05-29 21:57:57 -04:00
Ronald Caesar
946602952e
x86/compiler1: add reset function to sliding window
...
Signed-off-by: Ronald Caesar <github43132@proton.me >
2026-05-29 21:55:15 -04:00
Ronald Caesar
549d366fbc
x86/compiler1: fix incorrect doc comment
...
The sliding window will be used only by the Tier 1 compiler.
Signed-off-by: Ronald Caesar <github43132@proton.me >
2026-05-29 21:53:30 -04:00