Commit graph

87 commits

Author SHA1 Message Date
Fabian
58f9902057 merge updates to last_op_size and flags_changed 2022-11-15 10:14:28 +09:00
Fabian
c6ef3c4c68 cache state flags 2022-11-15 10:14:28 +09:00
Fabian
e1b6e34c19 wip code tlb 2022-11-15 10:14:28 +09:00
Fabian
85df1ec798 Expect tests: tlb offset is not stable 2021-09-23 20:13:08 +02:00
Fabian
cd4c5bd49e Update expect tests 2021-05-22 23:59:23 -05:00
viorelcanja
757d95b6be
Mem fast path optimization (#469)
Remove one addition from the memory access fast path
2021-05-23 06:03:34 +02:00
viorelcanja
0297f48346
resize tlb_data to proper size (#468)
Resize tlb_data to proper size

Reduce initial memory size
2021-05-08 22:49:37 +02:00
Fabian
5f3453acf9 Update expect tests 2021-04-04 23:47:40 -05:00
Fabian
472e53fec6 Update expect tests 2020-12-31 19:14:33 -06:00
Fabian
39eb650ff3 Update expect tests 2020-12-31 19:14:33 -06:00
Fabian
faadca9f35 Update expect tests 2020-12-31 19:14:32 -06:00
Fabian
14214fe113 Update expect tests 2020-12-31 19:14:32 -06:00
Fabian
1f1474680b Update expect tests 2020-12-31 19:14:32 -06:00
Fabian
584ab0cca0 Support null segment #gp in jit mode (Windows 98 / Windows ME / QNX) 2020-12-31 19:14:32 -06:00
Fabian
46cb7eb212 Accept expect tests (order of types changed) 2020-12-31 19:14:31 -06:00
Fabian
cd65ecca9e Optimise safe_write* by using tlb info to skip dirty page check 2020-12-31 19:14:31 -06:00
Fabian
69238b96a7 Update expect tests 2020-12-31 19:14:30 -06:00
Fabian
e498b4a1c5 Add expect test for STI 2020-12-31 19:14:30 -06:00
Fabian
073f2d03e9 Expect tests: Remove interactive mode 2020-12-31 19:14:30 -06:00
Fabian
d0b04863f6 Accept expect test changes 2020-12-31 19:14:30 -06:00
Fabian
5ca991b929 Add ./tests/expect/run.js --accept-all as a nicer workflow to accept changes 2020-12-31 19:14:30 -06:00
Fabian
8a0e31da16 Update expect tests (inc32) 2020-12-31 19:14:30 -06:00
Fabian
acb8ad5423 Avoid console.assert (doesn't throw) 2020-12-31 19:14:30 -06:00
Fabian
3a473aad79 Remove prefix handling from jit and exceptions 2020-12-31 19:14:30 -06:00
Fabian
ae3a652333 jit_add_seg_offset: Assert that segment is not null 2020-12-31 19:14:29 -06:00
Fabian
3f1ba044ed Increment timestamp_counter before running basic block 2020-12-31 19:14:29 -06:00
Fabian
e2eecc7295 task_switch_test*_jit: assert that jit agrees 2020-12-31 19:14:29 -06:00
Fabian
492a2cf78e Update previous_ip only if page fault is going to happen 2020-12-31 19:14:29 -06:00
Fabian
c47b4b252c Optimise cr0 access in task_switch_test (only low byte needed) 2020-12-31 19:14:29 -06:00
Fabian
c5cd93678e Pass local to gen_safe_read, add single function for modrm_resolve and gen_safe_read (preparation for later optimisations) 2020-12-31 19:14:29 -06:00
Fabian
aad8072aa7 Optimise push reg 2020-12-31 19:14:28 -06:00
Fabian
43fcdf9fc2 Introduce LocalOrImmediate for more efficient parameter passing to cmp/test instructions 2020-12-31 19:14:28 -06:00
Fabian
bc3c73a607 wasm state machine: Fallthrough 2020-12-31 19:14:28 -06:00
Fabian
63afa77167 Global pointers: Align general purpose registers, sse registers and flags 2020-12-31 19:14:28 -06:00
Fabian
5f31a8aba2 Update expect tests for flags and arithmetic code generation (last two commits) 2020-12-31 19:14:28 -06:00
Fabian
b5a72061fb Custom codegen for absolute jmp/call (FF_2/FF_4) 2020-12-31 19:14:28 -06:00
Fabian
aadaf13854 Update expect tests 2020-08-30 19:37:15 -05:00
Fabian
c2508bc61e Update expect tests 2020-08-30 19:37:15 -05:00
Fabian
fc954cecea Update libwabt (fix failing decoding of large generated modules) 2020-08-30 19:37:15 -05:00
Fabian
958fb7b9d6 Update expect tests 2020-08-30 19:37:15 -05:00
Fabian
29395181d2 Update expect test results 2020-08-30 19:37:15 -05:00
Fabian
9e13650c19 fixup expect tests 2020-08-30 19:37:15 -05:00
Fabian
5b95165de2 Add TEST_RELEASE_BUILD to run tests on release build 2020-08-30 19:37:15 -05:00
Fabian
52b6e0caae Normalise memory offset in output wast in expect tests 2020-08-30 19:37:15 -05:00
Fabian
0798a0b40e Don't create unnecessary entry points
This commit prevents creation of entry points for jumps within the same
page. In interpreted mode, execution is continued on these kinds of
jumps.

Since this prevents the old hotness detection from working efficiently,
hotness detection has also been changed to work based on instruction
counters, and is such more precise (longer basic blocks are compiled
earlier).

This also breaks the old detection loop safety mechanism and causes
Linux to sometimes loop forever on "calibrating delay loop", so
JIT_ALWAYS_USE_LOOP_SAFETY has been set to 1.
2020-08-30 19:29:54 -05:00
Fabian
b70a5c081a Allow fast path for memory reads from pages that contain code 2020-08-30 19:29:54 -05:00
Fabian
295985e8e0 Remove code section: Only a single buffer is used for generating code 2020-08-30 19:29:54 -05:00
Fabian
12eb838939 Expect tests: Catch libwabt errors and try to help 2020-08-30 19:29:54 -05:00
Fabian
3b1063d58a Expect tests: Accept TEST_NAME env variable 2020-08-30 19:29:54 -05:00
Fabian
3706bcac12 Use jit for read-modify-write arithmetic instructions 2020-08-30 19:29:54 -05:00