Skip to content

Windows MinGW support

Choose a tag to compare

@fwsGonzo fwsGonzo released this 12 Dec 21:30
· 88 commits to main since this release
f9a9cbc

This release adds initial Windows support with working JIT. libloong now also has shared execute segments, which makes it able to scalable in the engine architecture with many copies of the same program. Finally, the binary translator now has a background compilation mode where the most expensive compilation can happen in another thread while the emulator is running. The result gets live-patched into the execute segment.

Also reached a new CoreMark score with some improvements to binary translator:

$ ./laemu --fast ../tests/programs/coremark.elf 
2K performance run parameters for coremark.
CoreMark Size    : 666
Total ticks      : 12798197
Total time (secs): 12.798197
Iterations/Sec   : 15627.201238
Iterations       : 200000
Compiler version : GCC14.2.0
Compiler flags   : -O3 -DPERFORMANCE_RUN=1  
Memory location  : Please put data memory location here
			(e.g. code in flash, data on heap etc)
seedcrc          : 0xe9f5
[0]crclist       : 0xe714
[0]crcmatrix     : 0x1fd7
[0]crcstate      : 0x8e3a
[0]crcfinal      : 0x4983
Correct operation validated. See README.md for run and reporting rules.
CoreMark 1.0 : 15627.201238 / GCC14.2.0 -O3 -DPERFORMANCE_RUN=1   / Static
Program exited with code 0

It's now at ~38% of native, and gets compiled and applied in the background allowing emulator to start immediately.

Full Changelog: v0.2...v0.3