Fabian
|
651d0d83f9
|
fix push sreg only touches 16 bits of the stack dword
|
2022-11-26 14:11:19 -06:00 |
|
Fabian
|
de2a1439aa
|
jit: generate code for {66,}0f{c4,c5} (pinsrw, pextrw)
|
2022-11-26 14:11:19 -06:00 |
|
Fabian
|
1588687e2a
|
optimise flag generation after adc/sbb
|
2022-11-26 14:11:19 -06:00 |
|
Fabian
|
6524bbc569
|
Use local for condition generation after shifts
|
2022-11-26 14:11:19 -06:00 |
|
Fabian
|
eea5cb67b0
|
include CS in flat_segments
|
2022-11-15 10:14:28 +09:00 |
|
Fabian
|
8bf7a6aac0
|
generate better conditions after shl/shr/sar with constant shift count
|
2022-11-15 10:14:28 +09:00 |
|
Fabian
|
cdaf8dca3d
|
inline function that is only called once
|
2022-11-15 10:14:28 +09:00 |
|
Fabian
|
6989ba001a
|
log the remaining unoptimised conditionals
|
2022-11-15 10:14:28 +09:00 |
|
Fabian
|
e9a3fc5b00
|
consider add/inc/dec; jbe optimised in its current form
|
2022-11-15 10:14:28 +09:00 |
|
Fabian
|
37841eb0c9
|
optimise and/or/xor/test; jc/jo/jbe/jl/jle
|
2022-11-15 10:14:28 +09:00 |
|
Fabian
|
da1c713252
|
optimise inc/dec; jcc
|
2022-11-15 10:14:28 +09:00 |
|
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
|
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
|
0a359a2495
|
Allow flags optimisation to be used for setcc/cmovcc instructions
|
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
|
31b2582d13
|
Avoid generating memory read for profiling info in release mode
|
2021-11-10 22:52:05 -05:00 |
|
Fabian
|
abe5b972e0
|
Optimise negated condition if reordered
|
2021-11-08 23:25:41 -05:00 |
|
Fabian
|
23d4f862e6
|
Avoid local when modrm address is single register without offset
|
2021-11-04 18:51:36 -05:00 |
|
Fabian
|
c5dbd55d53
|
Fix macros used as expression
|
2021-10-29 01:18:21 +02:00 |
|
Fabian
|
199b1ceb49
|
Fix 32-bit wrap-around for profiler and opstats
|
2021-05-22 23:58:23 -05:00 |
|
Fabian
|
d47be4342d
|
set_reg16 unmasked
|
2021-05-22 23:58: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 |
|
Fabian
|
d929f4d7fd
|
jit some 8-bit arithmetic
|
2021-04-09 15:35:22 -05:00 |
|
Fabian
|
a238684de6
|
Store instruction counter in local, use it for loop limits
|
2020-12-31 19:14:33 -06:00 |
|
Fabian
|
ed12bfa8a6
|
Simplify code generated for 32-bit relative jumps
|
2020-12-31 19:14:33 -06:00 |
|
Fabian
|
b355571f0c
|
Optimise away some eip updates
|
2020-12-31 19:14:33 -06:00 |
|
Fabian
|
7ab4ee3a43
|
Generate slightly better code for negated comparisons
|
2020-12-31 19:14:33 -06:00 |
|
Fabian
|
a1f35beb8c
|
Generate better condition functions for zf/sf/be/l/le immediately after cmp/sub/add/inc/dec/test/or/xor/and
|
2020-12-31 19:14:33 -06:00 |
|
Fabian
|
700b5995c5
|
Simplify some code, use br_if
|
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
|
849b9d184f
|
Minor optimisation (mov reg, reg)
|
2020-12-31 19:14:33 -06:00 |
|
Fabian
|
5da4e192ec
|
Use exit-with-fault block for all faults (#gp, #de, etc.)
|
2020-12-31 19:14:33 -06:00 |
|
Fabian
|
948fcc1c55
|
Use exit label over return (reduces generated code size by ~10%)
|
2020-12-31 19:14:33 -06:00 |
|
Fabian
|
8ba65bffe3
|
Replace depth by labels for br/br_if instructions
|
2020-12-31 19:14:33 -06:00 |
|
Fabian
|
d67a0ced96
|
Use custom type for WasmTableIndex
|
2020-12-31 19:14:32 -06:00 |
|