J. Gareth "Curious Kit" Moreton
|
fe39f9ca21
|
Fixed bug on x86 platforms where the stack pointer was not allocated if it was different to the frame pointer
|
2022-02-08 20:47:47 +00:00 |
|
florian
|
c42b8c43bd
|
* \t => spaces
|
2022-02-07 23:04:20 +01:00 |
|
J. Gareth "Curious Kit" Moreton
|
c4ea01cf3d
|
Improved JccMov1JmpMov0Jmp -> SETcc optimisation
|
2022-02-03 21:38:52 +00:00 |
|
J. Gareth "Curious Kit" Moreton
|
9b4033fa80
|
Fast mod
|
2022-01-30 08:22:39 +00:00 |
|
J. Gareth "Curious Kit" Moreton
|
29625c7112
|
Fixed registers in references not being tracked properly in MovMovXX2MovXX 1 optimisation
|
2022-01-28 20:17:24 +00:00 |
|
J. Gareth "Curious Kit" Moreton
|
f8e04aad03
|
CMOV now modifies rather than writes to the destination register so RegUsedAfterInstruction behaves properly
|
2022-01-28 20:17:24 +00:00 |
|
J. Gareth "Curious Kit" Moreton
|
69fff102af
|
Added correct flag tracking for JccMov2CMov optimisations
|
2022-01-28 20:17:24 +00:00 |
|
florian
|
2a7744df80
|
* check also for 64 bit registers in TX86AsmOptimizer.RegModifiedByInstruction
|
2022-01-23 12:30:30 +01:00 |
|
florian
|
c062061d6d
|
+ MovapXComisX2ComisX2 optimization
|
2022-01-18 23:05:20 +01:00 |
|
J. Gareth "Curious Kit" Moreton
|
32d6cf7093
|
Fixed and refactored MOVX optimisation that occasionally caused crashes on i386 platforms
|
2022-01-16 20:04:53 +00:00 |
|
J. Gareth "Curious Kit" Moreton
|
bb49c190af
|
New MOV optimisation that helps reduce instruction count and memory accesses
|
2022-01-10 20:53:08 +00:00 |
|
J. Gareth "Curious Kit" Moreton
|
67a1d52806
|
JccAdd2SetccAdd modified to make use of GetIntRegisterBetween
|
2022-01-08 22:43:41 +00:00 |
|
J. Gareth "Curious Kit" Moreton
|
30166f8eb7
|
Procedure-saved registers are now recorded for peephole optimizers to use
|
2022-01-08 22:43:41 +00:00 |
|
florian
|
4966e93764
|
* small fix for ie
|
2022-01-07 11:05:49 +01:00 |
|
J. Gareth "Curious Kit" Moreton
|
15a5a62eb4
|
New backward MOV optimisation
|
2022-01-06 20:57:48 +00:00 |
|
J. Gareth "Curious Kit" Moreton
|
33cf86ff9f
|
PostPeepholeOptTestOr now removes TEST when dealing with POPCNT and LZCNT
|
2022-01-06 20:57:48 +00:00 |
|
J. Gareth "Curious Kit" Moreton
|
116c861af6
|
MOV/CMP optimisation is now in both Pass 1 and Pass 2 to catch more
eventualities
|
2021-12-31 14:28:35 +00:00 |
|
J. Gareth "Curious Kit" Moreton
|
8609c0803e
|
Fixed MovxOp2Op failing on i386 due to lack of register check
|
2021-12-26 16:20:18 +00:00 |
|
J. Gareth "Curious Kit" Moreton
|
f289f2694a
|
x86: Additions to OptPass2Movx to better synergise with new CMP optimisation under -O2
|
2021-12-25 19:07:48 +00:00 |
|
J. Gareth "Curious Kit" Moreton
|
683a92bcc8
|
i386: Correction to GetIntRegisterBetween to ensure we only get 8-bit registers that we can actually encode
|
2021-12-25 19:07:48 +00:00 |
|
J. Gareth "Curious Kit" Moreton
|
1da7ce46de
|
x86: New double CMP optimisation to remove a branch
|
2021-12-25 19:07:48 +00:00 |
|
J. Gareth "Curious Kit" Moreton
|
cafd708b6d
|
Refactoring of OptPass2Movx to remove goto
|
2021-12-25 16:38:10 +00:00 |
|
J. Gareth "Curious Kit" Moreton
|
22cd8d5d62
|
Fixed bug in MovxMovx2Movx optimisation that would specify a 64-bit destination instead of 32-bit one
|
2021-12-25 14:49:08 +00:00 |
|
J. Gareth "Curious Kit" Moreton
|
b4c8c1da12
|
Overflow bug fixes to MovZX/SX optimisations when CMP instructions are encountered.
|
2021-12-23 07:14:49 +00:00 |
|
florian
|
6dbe71cd30
|
* TX86AsmOptimizer.OptPass1MOVXX should search only over other instructions if it works with registers only
|
2021-12-22 22:54:11 +01:00 |
|
florian
|
6147d6d8a0
|
* compilation with i386 fixed
|
2021-12-21 22:46:12 +01:00 |
|
J. Gareth "Curious Kit" Moreton
|
d083cc7247
|
New MovxAndTest2Test optimisation to mirror the regular MovAndTest2Test optimisation
|
2021-12-20 22:10:22 +00:00 |
|
J. Gareth "Curious Kit" Moreton
|
5b4c104aaf
|
Massive overhaul to OptPass2Movx to favour operand shrinkage
|
2021-12-20 22:10:22 +00:00 |
|
J. Gareth "Curious Kit" Moreton
|
d255ffba8b
|
Improved handling of signed sequences in OptPass2Movx
|
2021-12-20 22:10:22 +00:00 |
|
J. Gareth "Curious Kit" Moreton
|
01e5f4855a
|
MovZX->MovSX optimisation
|
2021-12-20 22:10:22 +00:00 |
|
J. Gareth "Curious Kit" Moreton
|
4825d2d16c
|
New Movz ###,%ecx, shift/rotate %cl,... optimisation
|
2021-12-20 22:10:22 +00:00 |
|
J. Gareth "Curious Kit" Moreton
|
f02b7508de
|
Bolder OptPass2Movx optimisations, including a simplification fix
|
2021-12-20 22:10:22 +00:00 |
|
J. Gareth "Curious Kit" Moreton
|
da899df6b2
|
New MovxMovxOp2OpMovx optimisation
|
2021-12-20 22:10:22 +00:00 |
|
J. Gareth "Curious Kit" Moreton
|
40196f4a43
|
Fixes to ADD/SUB 128 optimisation that didn't check flags properly, and also handling ADC/SBB properly
|
2021-12-19 20:51:57 +00:00 |
|
J. Gareth "Curious Kit" Moreton
|
b4bd15a5c0
|
Removed incorrect logic in TEST optimisation
|
2021-12-17 22:10:12 +00:00 |
|
J. Gareth "Curious Kit" Moreton
|
be448e29f6
|
Fixed bug in new TEST optimisation where a FLAGS check always returned "in use"
|
2021-12-15 20:14:26 +00:00 |
|
J. Gareth "Curious Kit" Moreton
|
42c429bf45
|
New optimisation that merges small constants written to the stack
|
2021-12-15 19:47:50 +00:00 |
|
J. Gareth "Curious Kit" Moreton
|
7a15312b54
|
Safety checks on TEST removals and better FLAG tracking
|
2021-12-13 16:11:33 +00:00 |
|
J. Gareth "Kit" Moreton
|
f60523a3b9
|
x86: New TEST optimisations
|
2021-12-12 21:40:42 +00:00 |
|
Yuriy Sydorov
|
e9acd759a4
|
* Fixed random AVs when targeting the AVX FPU.
|
2021-12-12 18:19:35 +02:00 |
|
Yuriy Sydorov
|
7b2cd0bcdc
|
* Prevent a range check error in case of big unsigned values.
|
2021-12-12 17:55:46 +02:00 |
|
J. Gareth "Curious Kit" Moreton
|
2dc0995067
|
- Bug fix to new ADD/SUB optimisation where conditions are concerned
- Register allocation fixes for overflow checks
|
2021-11-17 20:18:57 +00:00 |
|
J. Gareth "Curious Kit" Moreton
|
3ce6c478cc
|
Bug fixes to magic division and vectorcall code that trigger -CriotR checks
|
2021-11-16 20:39:57 +00:00 |
|
J. Gareth "Curious Kit" Moreton
|
9f60628e5b
|
x86: new optimisation to change add/sub 128,(dest) to sub/add -128,(dest) to reduce binary size
|
2021-11-14 21:38:38 +00:00 |
|
Pierre Muller
|
8e7791ac23
|
Explicitly disable overflow for offset propagation optimization
|
2021-11-08 22:55:44 +00:00 |
|
J. Gareth "Curious Kit" Moreton
|
671c674d65
|
Expanding division to 64-bit and tests
|
2021-11-08 21:46:12 +00:00 |
|
florian
|
7fcbd1d7e0
|
* my last commit hopefully fixed
|
2021-11-07 14:58:17 +01:00 |
|
florian
|
492d75483d
|
* fix (V)Cvtss2CvtSd(V)Cvtsd2ss2* optmizations for non-avx code, resolves #39416
|
2021-11-07 14:46:13 +01:00 |
|
florian
|
44051b4af3
|
* corrected accidently made changs in 01a449c8 , resolves #39424
|
2021-11-03 22:41:07 +01:00 |
|
J. Gareth "Curious Kit" Moreton
|
284317d877
|
Fixed OptPass2Lea not honouring symbols
|
2021-10-31 15:44:00 +00:00 |
|