Commit graph

736 commits

Author SHA1 Message Date
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 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 e1b6e34c19 wip code tlb 2022-11-15 10:14:28 +09:00
Fabian d0ca758177 reformat msrs 2022-11-15 10:14:28 +09:00
Fabian 2a8a89dd34 stub some msr for new linux kernel 2022-11-15 10:14:28 +09:00
Fabian b9df44e646 cpuid: correctly report level 7 for ecx != 0 2022-11-15 10:14:28 +09:00
Fabian 3c02f166b9 late c2rust cleanup 2022-09-21 17:58:25 +08:00
Fabian b961703fe4 jit: execute mmio reads at full size 2022-09-13 17:19:23 +09:00
Fabian 86fc542352 tlb: don't mark writable on read access (otherwise the write bit might not be set if a read occurs before a write) 2022-09-13 15:53:28 +09:00
Fabian b227b2e45b Replace winnt_fix by cpuid_level, make configurable 2022-09-08 16:45:28 +09:00
Fabian 89e5173712 Use regs::EAX over 0 2022-09-08 16:22:49 +09:00
Fabian 4e9ceb0ec1 Implement #np for IDTs (windows nt 3.x) 2022-09-07 18:50:08 +09:00
Fabian 2cbe54cf38 Refactor some sse instructions into sse_read128_xmm_xmm_imm/sse_read128_xmm_mem_imm 2022-09-06 01:05:39 +09:00
Fabian 1135122f8a Fix jitted cmpss/cmppd/shufps/shufpd with the same source and destination register 2022-09-06 01:05:39 +09:00
Fabian 0a359a2495 Allow flags optimisation to be used for setcc/cmovcc instructions 2022-09-06 00:26:39 +09:00
Fabian e50d4fa5a8 Fix flags in cmpxchg in jit 2022-09-06 00:26:39 +09:00
Fabian a464c77ec0 Also mask other 16-bit arithmetic (not strictly necessary, but more robust for future changes) 2022-09-06 00:26:39 +09:00
Fabian 21c7a88d16 Add assertion for immediate values in test_be 2022-09-06 00:26:39 +09:00
Fabian 4cab56f2f4 Fix flags set by AAM instruction 2022-09-06 00:26:39 +09:00
Fabian 6e0ab79d4f Fix mask sign-extended 8-bit immediate to 16-bit for cmp (fixes #726) 2022-09-06 00:26:39 +09:00
Fabian 88d205396d Remove some unused pub annotations 2022-09-06 00:26:39 +09:00
Fabian f1ebdb1c72 implement fbstp (close #708) 2022-08-02 21:40:57 +09:00
Fabian 961a9f46ef Properly mask values given to safe_read_write 2022-07-11 12:36:55 +09:00
Fabian dec8fa0b59 Fix svga not rendering pixels at bottom of changed buffer (#628) 2022-03-10 21:46:57 +01:00
Fabian 4eb1e5035e Optimised putImageData 2022-02-22 00:39:05 +01:00
Fabian e0551fcee4 minor 2022-02-22 00:39:05 +01:00
Fabian 726bccf7da c2rust cleanup (remove wrapping_*) 2022-02-22 00:39:05 +01:00
Fabian be3be4827d c2rust cleanup (remove _0 from field names) 2022-02-22 00:39:05 +01:00
Fabian 52ccc6a03c Port svga rendering to rust 2022-02-22 00:39:05 +01:00
Fabian 97f29af274 Move around paging code 2022-02-21 00:11:00 +01:00