J. Gareth "Curious Kit" Moreton
|
a70e4ed9be
|
* x86: "OptPass2ADD" and "OptPass2SUB" now force another iteration if "OptPass2MOV" returned True
|
2025-03-02 14:00:57 +00:00 |
|
J. Gareth "Curious Kit" Moreton
|
f85aa24ad0
|
* x86: Refactoring register update code in "OptPass2ADD" and "OptPass2SUB"
|
2025-03-02 14:00:57 +00:00 |
|
J. Gareth "Curious Kit" Moreton
|
b2dd980329
|
* x86: Fixed bug where flags register wasn't tracked during
long-range "AddMov2LeaAdd" and "SubMov2LeaSub" optimisations
|
2025-03-02 14:00:57 +00:00 |
|
J. Gareth "Curious Kit" Moreton
|
83c9b17ec5
|
* x86: Fixed oversight in LeaLea2LeaLea optimisations where bad code is
generated if the intermediate register appears in the first reference
|
2025-02-27 21:25:23 +00:00 |
|
J. Gareth "Curious Kit" Moreton
|
4648f967bd
|
* x86: Fixed bug in "MovMovMov2MovMovMov" optimisation where a register wasn't properly tracked
|
2025-02-24 15:32:21 +00:00 |
|
florian
|
9a223100d1
|
+ x86: proper flag (de)alloc in a_bit_scan
|
2025-02-15 22:19:05 +01:00 |
|
florian
|
29b3b09251
|
* allow absolutes on open arrays (use of this is doubtful though), resolves #41147
|
2025-02-11 22:45:56 +01:00 |
|
Rika Ichinose
|
d1ba97d462
|
Make use of not_zero in x86 bitscans.
|
2025-02-09 21:01:43 +00:00 |
|
florian
|
b2f6214b33
|
+ a_bit_scan_reg_reg gets a flag if src cannot be zero: this simplifies the generated code
|
2025-02-08 14:27:48 +01:00 |
|
florian
|
125da5f10a
|
* SubLea2Lea has to check both times for equal super registers, resolves the second part of #41126
|
2025-02-03 22:19:25 +01:00 |
|
florian
|
f75de6c340
|
* check for 64 bit registers in TX86AsmOptimizer.RegReadByInstruction as well for sanity reasons
|
2025-02-02 22:12:06 +01:00 |
|
florian
|
9355e703d7
|
* change some getglobaldatalabel into getlocaldatalabel to simplify code if pic is used
|
2025-01-13 22:34:31 +01:00 |
|
florian
|
5b54ab2040
|
+ zen5 architecture for completeness
|
2024-12-07 22:23:35 +01:00 |
|
User Muller
|
f689746372
|
cmpxchg16b instruction uses no size suffix in ATT syntax
|
2024-12-06 14:45:44 +01:00 |
|
J. Gareth "Curious Kit" Moreton
|
36f771a312
|
* x86: Modification to PostPeepholeOptShr to skip over MOV instructions if they don't modify the current register
|
2024-11-30 12:51:07 +00:00 |
|
florian
|
42c5e368bd
|
* formatting/readability
|
2024-11-10 09:33:51 +01:00 |
|
J. Gareth "Curious Kit" Moreton
|
43bdd8c07e
|
* x86: Refactor of a DeepMOVOpt call to make use of a while loop and aoc_ForceNewIteration to increase compiler speed and efficiency.
|
2024-11-10 08:23:02 +00:00 |
|
J. Gareth "Curious Kit" Moreton
|
8520dabebb
|
* x86: New RET/lbl/RET optimisation
|
2024-10-27 08:17:10 +00:00 |
|
J. Gareth "Curious Kit" Moreton
|
8bb3367a49
|
* x86: Refactored SetCC optimisations to better
spot label clusters and alignment hints.
|
2024-10-27 08:17:10 +00:00 |
|
florian
|
5d4bb6db9b
|
* patch by lag programming to replace bitcnt by popcnt, resolves #40962
|
2024-10-22 22:54:57 +02:00 |
|
J. Gareth "Curious Kit" Moreton
|
80f1d55822
|
- MovOp2Op optimisation upgraded.
|
2024-10-20 12:43:52 +00:00 |
|
J. Gareth "Curious Kit" Moreton
|
85ee93c2c5
|
- MovLea2Add optimisation upgraded.
|
2024-10-20 12:43:52 +00:00 |
|
J. Gareth "Curious Kit" Moreton
|
1bc0ae3d18
|
- Mov2Nop 5a and Mov2Nop 5b optimisations upgraded.
|
2024-10-20 12:43:52 +00:00 |
|
J. Gareth "Curious Kit" Moreton
|
f36fbd17b1
|
- 32-to-64-bit zero extension optimisations upgraded.
|
2024-10-20 12:43:52 +00:00 |
|
J. Gareth "Curious Kit" Moreton
|
b1a76314ae
|
- Const and ref merge optimisations upgraded.
|
2024-10-20 12:43:52 +00:00 |
|
J. Gareth "Curious Kit" Moreton
|
65f2dd2337
|
- OR and extension optimisations upgraded.
|
2024-10-20 12:43:52 +00:00 |
|
J. Gareth "Curious Kit" Moreton
|
6dfe323e6f
|
- AND and DeepMovOpt optimisations upgraded.
|
2024-10-20 12:43:52 +00:00 |
|
J. Gareth "Curious Kit" Moreton
|
e187d49590
|
* x86: New reference support methods to detect modification
|
2024-10-20 12:43:52 +00:00 |
|
J. Gareth "Curious Kit" Moreton
|
d0c7838eec
|
* x86: CheckMovMov2MovMov2 now sets "Force New Iteration" if it optimises
|
2024-10-20 12:43:52 +00:00 |
|
J. Gareth "Curious Kit" Moreton
|
d5c6286852
|
* x86: Bug fix in OptPass1MOV long-range optimisations where
the wrong register was checked to see if had changed.
|
2024-10-20 12:43:52 +00:00 |
|
florian
|
210cb8cb74
|
* load 64 bit constants through a register into memory to avoid store-forwarding stalls, resolves #40945
|
2024-10-12 21:19:14 +02:00 |
|
florian
|
23bbf87c10
|
* accidentally committed with a set debug define
|
2024-10-08 23:13:53 +02:00 |
|
florian
|
e91c8040ea
|
* do not generate lea with 16 bit references on x86-64, resolves #40936
|
2024-10-07 22:53:54 +02:00 |
|
florian
|
2f5fe67e56
|
* FSRM works only with movsb
|
2024-09-28 21:52:37 +02:00 |
|
florian
|
eb440e0ff1
|
+ Zen4 for i386
|
2024-09-22 10:43:26 +02:00 |
|
Rika Ichinose
|
fc1050a834
|
Make use of CPUX86_HINT_BSX_DEST_UNCHANGED_ON_ZF_1 in Bsf*/Bsr*.
|
2024-09-22 08:33:44 +00:00 |
|
J. Gareth "Curious Kit" Moreton
|
a06a20f9c0
|
* x86: Fixed an issue where invalid typecast errors would be raised in the peephole optimizer under -CriotR
|
2024-07-25 20:35:06 +00:00 |
|
florian
|
f6002d8078
|
* ensure make_simple_ref is called, resolves #40851
|
2024-07-10 22:26:09 +02:00 |
|
florian
|
db5e821ead
|
* more change information updates
|
2024-07-02 22:21:24 +02:00 |
|
florian
|
9ce7fbeef0
|
* change information updates
|
2024-06-28 22:45:00 +02:00 |
|
J. Gareth "Curious Kit" Moreton
|
fb66369a3b
|
* x86: CheckJumpMovTransferOpt now also copies over register deallocations to allow better optimisations
|
2024-06-24 20:05:39 +00:00 |
|
florian
|
2fe3955be9
|
+ more change information
|
2024-06-11 23:22:21 +02:00 |
|
florian
|
bdb611c925
|
* small fix of change information
|
2024-06-10 23:10:48 +02:00 |
|
florian
|
15b3f16646
|
* use fld1/fchs regardless of pic
|
2024-06-06 22:36:29 +02:00 |
|
florian
|
aaeefacf85
|
* also optimize loading of -1.0
|
2024-06-05 22:56:45 +02:00 |
|
florian
|
8c2aca6ece
|
* load 2 on x86 stack by fld1/fadd, if pic code is generated. It is more efficient as two memory accesses are saved.
|
2024-06-04 23:21:26 +02:00 |
|
florian
|
c64fae2f89
|
* missing AVX-2 change information fixed
|
2024-06-03 23:29:37 +02:00 |
|
florian
|
73a251410e
|
+ more change information
|
2024-06-02 23:11:14 +02:00 |
|
florian
|
8db51a367e
|
* forgotten part of last commit
|
2024-06-01 18:53:50 +02:00 |
|
florian
|
055681c8b4
|
* correct change information for some instructions where the change
information cannot be modelled in x86ins.dat
|
2024-06-01 18:46:23 +02:00 |
|