Commit graph

4092 commits

Author SHA1 Message Date
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
Fabian 5839152328 fix rust compiler error: trailing semicolon in macro used in expression position 2022-11-15 10:14:28 +09:00
Fabian 8d747fd0da Add skiffos (#714) 2022-11-15 10:14:28 +09:00
Fabian e1b6e34c19 wip code tlb 2022-11-15 10:14:28 +09:00
Fabian 2887a363f1 Properly clean up generated wasm functions if they are written while being compiled 2022-11-15 10:14:28 +09:00
Fabian d0ca758177 reformat msrs 2022-11-15 10:14:28 +09:00