Commit graph

325 commits

Author SHA1 Message Date
Fabian 03566c2067 jit {,F3}0F53 (rcp{ps,ss}) 2021-04-04 15:35:21 -05:00
Fabian 38c484629d jit {,F3}0F52 (rsqrt{ps,ss}) 2021-04-04 15:35:21 -05:00
Fabian 297d649836 jit {,66,F2,F3}0F51 2021-04-04 15:20:51 -05:00
Fabian bc11d7089e jit 0fc2/cmpps 660fc2/cmppd 2020-12-31 19:14:34 -06:00
Fabian 2b7b562a56 jit 0fc6/shufps 2020-12-31 19:14:34 -06:00
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