Commit graph

4,107 commits

Author SHA1 Message Date
Fabian
4932c821e8 jit: generate code for sse moves (f20f1[01], 660f6e, f30f7e, 660fd6) 2022-11-26 14:11:19 -06:00
Fabian
3ed118e790 jit: generate code for punpckldq (660f62) 2022-11-26 14:11:19 -06:00
Fabian
de2a1439aa jit: generate code for {66,}0f{c4,c5} (pinsrw, pextrw) 2022-11-26 14:11:19 -06:00
Fabian
625fdcd4a2 generate slightly better code for ud2 2022-11-26 14:11:19 -06:00
Fabian
cf61ac635a vga: correctly advertise the latest bochs version, and make it r/w (fix #768) 2022-11-26 14:11:19 -06:00
Fabian
baffa6c0d6 generate code for pshufd (660F70) 2022-11-26 14:11:19 -06:00
Fabian
752869dbff movs: allow overlapping strings, as long as they don't overlay within a page 2022-11-26 14:11:19 -06:00
Fabian
3bcd997904 fix: rare conditional jump with double fallthrough doesn't set eip correctly 2022-11-26 14:11:19 -06:00
Fabian
1588687e2a optimise flag generation after adc/sbb 2022-11-26 14:11:19 -06:00
Fabian
6524bbc569 Use local for condition generation after shifts 2022-11-26 14:11:19 -06:00
Belle Aerni
aaa583659c Correct docker image for no limiter 2022-11-21 08:52:56 +09:00
Fabian
3880583470 Use uint8array.slice over new Uint8Array().set(uint8array.subarray) 2022-11-15 10:14:28 +09:00
Fabian
adb7fe5441 allow entering jit after page walk 2022-11-15 10:14:28 +09:00
Fabian
fc520f2876 allow directory as partfile 2022-11-15 10:14:28 +09:00
Fabian
756ce66888 movs: fast path for unaligned src/dst 2022-11-15 10:14:28 +09:00
Fabian
685c39177f movs: fast copy into svga lfb 2022-11-15 10:14:28 +09:00
Fabian
70cf369d18 collect stats about segment offsets 2022-11-15 10:14:28 +09:00
Fabian
eea5cb67b0 include CS in flat_segments 2022-11-15 10:14:28 +09:00
Fabian
23a6994a14 test v86-in-v86 2022-11-15 10:14:28 +09:00
Fabian
8bf7a6aac0 generate better conditions after shl/shr/sar with constant shift count 2022-11-15 10:14:28 +09:00
Fabian
71d36b234f when generating code for a page, use original state flags 2022-11-15 10:14:28 +09:00
Fabian
753a6d1fb3 jit: handle fpu DA group 2022-11-15 10:14:28 +09:00
Fabian
c5ff1d4961 dead code 2022-11-15 10:14:28 +09:00
Fabian
16662ec979 jit: handle {66,}0f17 2022-11-15 10:14:28 +09:00
Fabian
1c8e1bbdfa jit: handle {66,}0f16 2022-11-15 10:14:28 +09:00
Fabian
3e22884a4a improve logging in elf 2022-11-15 10:14:28 +09:00
Fabian
d254a6b7b6 refactor cycle_internal 2022-11-15 10:14:28 +09:00
Fabian
cdaf8dca3d inline function that is only called once 2022-11-15 10:14:28 +09:00
Fabian
7fb9654920 avoid calling jit_dirty_page after page walk in jit mode 2022-11-15 10:14:28 +09:00
Fabian
9ecee545c8 fix spurious make error 2022-11-15 10:14:28 +09:00
Fabian
0596b25f70 improve page heat calculation (combine with recording of entry points) 2022-11-15 10:14:28 +09:00
Fabian
af32a64a3e log reason for running in interpreted mode when state flags don't match 2022-11-15 10:14:28 +09:00
Fabian
43271295c0 late c2rust cleanup, fix panic in idiv16 in debug build 2022-11-15 10:14:28 +09:00
Fabian
574673e476 add tests for idiv overflow 2022-11-15 10:14:28 +09:00
Fabian
6989ba001a log the remaining unoptimised conditionals 2022-11-15 10:14:28 +09:00
Fabian
e9a3fc5b00 consider add/inc/dec; jbe optimised in its current form 2022-11-15 10:14:28 +09:00
Fabian
37841eb0c9 optimise and/or/xor/test; jc/jo/jbe/jl/jle 2022-11-15 10:14:28 +09:00
Fabian
da1c713252 optimise inc/dec; jcc 2022-11-15 10:14:28 +09:00
Fabian
625ad2802c optimise add; jo 2022-11-15 10:14:28 +09:00
Fabian
f8cbf3b2bd optimise add; jc 2022-11-15 10:14:28 +09:00
Fabian
60b555107f identify add for the purpose of optimising conditions 2022-11-15 10:14:28 +09:00
Fabian
92313f582c optimise sub; jle 2022-11-15 10:14:28 +09:00
Fabian
228934d616 optimise sub; jl 2022-11-15 10:14:28 +09:00
Fabian
949081837b optimise sub; jbe 2022-11-15 10:14:28 +09:00
Fabian
7d6a3c67e4 optimise sub8; jo/jb 2022-11-15 10:14:28 +09:00
Fabian
bb0f37bbce optimise sub; jc 2022-11-15 10:14:28 +09:00
Fabian
8f15b554ee optimise cmp8/16 x, imm; jc 2022-11-15 10:14:28 +09:00
Fabian
d629984627 optimise cmp reg, reg/imm; jz 2022-11-15 10:14:28 +09:00
Fabian
19b2771c40 optimise getsf 2022-11-15 10:14:28 +09:00
Fabian
db65dd352d optimise test x, x followed by jz/js 2022-11-15 10:14:28 +09:00