Commit graph

370 commits

Author SHA1 Message Date
Fabian
1dfdc9d19a jit 660fc6/shufpd 2020-12-31 19:14:34 -06:00
Fabian
3a8102811d jit f30f11/movss 2020-12-31 19:14:34 -06:00
Fabian
cf4af74d95 jit f30f10/movss 2020-12-31 19:14:34 -06:00
Fabian
b43a5f4818 Mark fwait as block boundary again (fixes qnx hanging) 2020-12-31 19:14:33 -06:00
Fabian
699bf5a2ce Explain 2020-12-31 19:14:33 -06:00
Fabian
37c3d1f83c Generate direct control flow, using wasm blocks and loops 2020-12-31 19:14:33 -06:00
Fabian
0c4e8a7e09 partially jit some sse conversion instructions 2020-12-31 19:14:33 -06:00
Fabian
b859ce5085 jit fcomip df_6 2020-12-31 19:14:33 -06:00
Fabian
81e1b7e5d2 jit movsd f20f11 2020-12-31 19:14:33 -06:00
Fabian
307aed5fbc jit movsd f20f10 2020-12-31 19:14:33 -06:00
Fabian
cbafb411f0 jit bswap 2020-12-31 19:14:33 -06:00
Fabian
9da02b46f1 jit bts/btr/btc 2020-12-31 19:14:33 -06:00
Fabian
6a18618e76 jit cmpxchg8b 2020-12-31 19:14:32 -06:00
Fabian
51b09ade51 jit clc/stc (F8/F9) 2020-12-31 19:14:32 -06:00
Fabian
5081529b56 jit inc8/dec8 2020-12-31 19:14:32 -06:00
Fabian
dc7108ee00 jit sse shift instructions (660F71/660F72/660F73) 2020-12-31 19:14:32 -06:00
Fabian
6e68839365 jit mmx shift instructions (0F71/0F72/0F73) 2020-12-31 19:14:32 -06:00
Fabian
7dc24ba180 jit pshufw (0F70) 2020-12-31 19:14:32 -06:00
Fabian
835396386e jit more mmx instructions (0F6*) 2020-12-31 19:14:32 -06:00
Fabian
03d0c02a56 jit more sse instructions (660F6*) 2020-12-31 19:14:32 -06:00
Fabian
8c7bcdf094 jit sse mov instructions 2020-12-31 19:14:32 -06:00
Fabian
a86d6c8f7e jit more sse instructions (660FD*) 2020-12-31 19:14:32 -06:00
Fabian
61b429c0b6 jit more sse instructions (660FE*) 2020-12-31 19:14:32 -06:00
Fabian
98ecc0d244 jit more sse instructions (660FF*) 2020-12-31 19:14:32 -06:00
Fabian
09c0099632 jit pmovmsk (0fd7/660fd7) 2020-12-31 19:14:32 -06:00
Fabian
78e6bc5995 jit more mmx instructions (0FD*) 2020-12-31 19:14:32 -06:00
Fabian
2711a3b356 jit more mmx instructions (0FE*) 2020-12-31 19:14:32 -06:00
Fabian
0b47c75a06 jit more mmx instructions (0FF*) 2020-12-31 19:14:32 -06:00
Fabian
56272ca397 s/cpu2/cpu 2020-12-31 19:14:32 -06:00
Fabian
159aaaa01f Move imm reads into generate_jit 2020-12-31 19:14:31 -06:00
Fabian
ab46fe4f37 Refactor modrm decoding for jit 2020-12-31 19:14:31 -06:00
Fabian
31f02905b2 Avoid use cpu2::cpu::* in interpreter 2020-12-31 19:14:31 -06:00
Fabian
5dd03792c2 jit RDTSC 2020-12-31 19:14:31 -06:00
Fabian
5fea295191 lfence doesn't need to be a block boundary 2020-12-31 19:14:31 -06:00
Fabian
8f94cc2716 jit DB/6 FCOMI 2020-12-31 19:14:31 -06:00
Fabian
57b6421fae jit one more mmx instruction 2020-12-31 19:14:31 -06:00
Fabian
7ad30c7148 partially jit bsf/bsr 2020-12-31 19:14:31 -06:00
Fabian
8d39542271 Partially jit popcnt 2020-12-31 19:14:31 -06:00
Fabian
6e6762b293 jit some mmx instructions 2020-12-31 19:14:31 -06:00
Fabian
4860c6f461 jit 0F7E/0F7F mmx movd/movq 2020-12-31 19:14:31 -06:00
Fabian
44974370af jit 0F6E/0F6F mmx movd/movq 2020-12-31 19:14:31 -06:00
Fabian
4e6d925ee3 Use gen_trigger_ud 2020-12-31 19:14:31 -06:00
Fabian
9853bdb868 Merge 16-bit and 32-bit 0f tables (saves 200kB on v86.wasm) 2020-12-31 19:14:31 -06:00
Fabian
3711ed7f23 jit LAHF 2020-12-31 19:14:31 -06:00
Fabian
11dfeb1ee7 Fix minor descrepancy between analyser and jit 2020-12-31 19:14:31 -06:00
Fabian
29e0ef8c4c jit MOVNTI 2020-12-31 19:14:31 -06:00
Fabian
c5eea8a8d1 Jit POPF 2020-12-31 19:14:30 -06:00
Fabian
03b88668ab Remove some unused #[no_mangle] 2020-12-31 19:14:30 -06:00
Fabian
822d1efcff Dead 2020-12-31 19:14:30 -06:00
Fabian
4e49468b7b Fix some minor fpu bugs and add more nasm tests 2020-12-31 19:14:30 -06:00