Commit graph

4,097 commits

Author SHA1 Message Date
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
Fabian
0ea7c7cd81 optimise getof 2022-11-15 10:14:28 +09:00
Fabian
6fcbe7b3d0 optimise cmp x, 0; jz 2022-11-15 10:14:28 +09:00
Fabian
1d55116779 optimise get_last_op1 (for cmp32) 2022-11-15 10:14:28 +09:00
Fabian
5a7c946e83 optimise get_last_result 2022-11-15 10:14:28 +09:00
Fabian
d766863a27 nasmtests: generate single executable for both test and reference 2022-11-15 10:14:28 +09:00
Fabian
a11eb20326 type safety 2022-11-15 10:14:28 +09:00
Fabian
58f9902057 merge updates to last_op_size and flags_changed 2022-11-15 10:14:28 +09:00
Fabian
53cea2e7b1 Use optimised getcf for inc/dec/adc/sbb 2022-11-15 10:14:28 +09:00
Fabian
be08d812db move code around (local_to_instruction_operand/LocalOrImmediate.to_instruction_operand) 2022-11-15 10:14:28 +09:00
Fabian
c6ef3c4c68 cache state flags 2022-11-15 10:14:28 +09:00