Fabian
|
770f90feae
|
Rename load_*_from_stack
|
2020-12-31 19:14:31 -06:00 |
|
Fabian
|
a3dbd9ad5f
|
Rename wasm functions loading from fixed address
|
2020-12-31 19:14:31 -06:00 |
|
Fabian
|
bf661f0829
|
Add some helper functions
|
2020-12-31 19:14:31 -06:00 |
|
Fabian
|
9a40122075
|
Optimise code for div
|
2020-12-31 19:14:31 -06:00 |
|
Fabian
|
dceaa723a2
|
jit div32
|
2020-12-31 19:14:31 -06:00 |
|
Fabian
|
8f94cc2716
|
jit DB/6 FCOMI
|
2020-12-31 19:14:31 -06:00 |
|
Fabian
|
240c4d0457
|
loop/loopz/loopnz: Move side-effects into function
|
2020-12-31 19:14:31 -06:00 |
|
Fabian
|
6e3bc388b5
|
Improve jitted version of DF/4 fstsw
|
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
|
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
|
29e0ef8c4c
|
jit MOVNTI
|
2020-12-31 19:14:31 -06:00 |
|
Fabian
|
3ae3e6fdf5
|
Heavily simplify string instructions (and fix 16-bit address size). Slow variant, will be improved in next commits.
|
2020-12-31 19:14:30 -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
|
a26eb43719
|
Fix: Inhibit interrupts for one instruction after STI (fixes ReactOS)
|
2020-12-31 19:14:30 -06:00 |
|
Fabian
|
0edc821618
|
Jit DIV/IDIV
|
2020-12-31 19:14:30 -06:00 |
|
Fabian
|
3026e985fa
|
Jit BT
|
2020-12-31 19:14:30 -06:00 |
|
Fabian
|
fc43119406
|
Optimise returns and indirect jumps/calls into same page
|
2020-12-31 19:14:30 -06:00 |
|
Fabian
|
ee542c5f84
|
Optimise lazy flag handling
- remove last_add_result and last_op2 from arithmetic instructions
- optimise getcf
|
2020-12-31 19:14:30 -06:00 |
|
Fabian
|
46671b5354
|
Jit inc16/dec16
|
2020-12-31 19:14:30 -06:00 |
|
Fabian
|
ce0f34eff2
|
Jit cmp8/test8
|
2020-12-31 19:14:30 -06:00 |
|
Fabian
|
4723249259
|
Jit more cmp16/test16
|
2020-12-31 19:14:30 -06:00 |
|
Fabian
|
741d6005d2
|
Simplify
|
2020-12-31 19:14:30 -06:00 |
|
Fabian
|
3a41694efb
|
Jit cmp16/test16
|
2020-12-31 19:14:30 -06:00 |
|
Fabian
|
fe89acfc80
|
Jit xchg r, r/m
|
2020-12-31 19:14:30 -06:00 |
|
Fabian
|
8427a30d89
|
Simplify
|
2020-12-31 19:14:30 -06:00 |
|
Fabian
|
860833e80f
|
Custom inc32 & dec32
|
2020-12-31 19:14:30 -06:00 |
|
Fabian
|
9da94d5438
|
Move wasm ops to WasmBuilder
|
2020-12-31 19:14:30 -06:00 |
|
Fabian
|
97205c67a2
|
Rename to wasm_builder
|
2020-12-31 19:14:30 -06:00 |
|
Fabian
|
23988f50f6
|
Restore xlat in jit mode
|
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
|
62010e64e8
|
Make string instructions partially custom
|
2020-12-31 19:14:30 -06:00 |
|
Fabian
|
a73988a817
|
Make loop, loopz, loopnz and jcxz custom generated
|
2020-12-31 19:14:30 -06:00 |
|
Fabian
|
232d3763d9
|
Make maskmov* custom
|
2020-12-31 19:14:30 -06:00 |
|
Fabian
|
15a27746f6
|
Split fldenv, frstor, fsave and fstenv into 16 and 32 bit variants
|
2020-12-31 19:14:30 -06:00 |
|
Fabian
|
ccd6244cfd
|
Split D9 and DD instructions by operand size
|
2020-12-31 19:14:30 -06:00 |
|
Fabian
|
764879bad1
|
s/reg32s/reg32
|
2020-12-31 19:14:29 -06:00 |
|
Fabian
|
4bfd024366
|
Simplify gen_safe_read_write by removing fallback function
|
2020-12-31 19:14:29 -06:00 |
|
Fabian
|
5515c32e8d
|
Correct codegen for some undefined fpu instructions
|
2020-12-31 19:14:29 -06:00 |
|
Fabian
|
48940e426a
|
Fix fldm80/fstenv/fldenv: These instructions were generating and unconditional exit from jitted code but not updating eip. Changed to use the fallback mechanism for handling pagefaults
|
2020-12-31 19:14:29 -06:00 |
|
Fabian
|
5e73b6f21b
|
Remove invalid assertion on sfence/mfence/lfence (low bits of modrm byte are ignored)
|
2020-12-31 19:14:29 -06:00 |
|
Fabian
|
1c474eabdb
|
Fix mov [mem], sreg in 32-bit mode (should be 16-bit write)
|
2020-12-31 19:14:29 -06:00 |
|
Fabian
|
c207400922
|
Fix Rust warnings
|
2020-12-31 19:14:29 -06:00 |
|
Fabian
|
c97600f5cb
|
Also prepare gen_safe_read{64,128} for later optimisations
|
2020-12-31 19:14:29 -06:00 |
|