J. Gareth "Kit" Moreton
79f60923ba
Bug fix to XMM block move optimisation
2021-09-26 14:09:29 +00:00
florian
a3666aa8c9
o manually applied merge request 46 by J. Gareth "Kit" Moreton:
...
+ x86_64: XMM-based block move optimisation
2021-09-24 20:10:38 +02:00
florian
01d6358f93
* some fixes for expectloc
2021-09-22 22:09:19 +02:00
florian
fc41306c45
* fix alignment issues with -<single/double> when using SSE
2021-09-19 17:44:16 +02:00
florian
5bcc530707
* handle -<mm reg.> more cleverly if SSE is used
2021-09-18 22:11:03 +02:00
florian
5a2d884fe3
* is_calljmp really means calls and jmp
...
* is_calljmpuncondret includes ret
2021-09-18 19:24:53 +02:00
J. Gareth "Kit" Moreton
962c5bd727
x86: MOV constant optimisation
2021-09-18 08:30:50 +00:00
Yuriy Sydorov
a83f5749de
* Reverted the accidentally committed debug code in 4a7a113a
.
2021-09-17 23:54:41 +03:00
florian
81e83ffa67
* release temp
2021-09-15 23:16:53 +02:00
Yuriy Sydorov
4a7a113a30
* x86: Fixed attributes of the LEAVE instruction - it reads EBP.
...
This fixes crashes with -O3s in some cases due to an incorrect peephole
optimization.
2021-09-15 22:30:00 +03:00
Florian Klämpfl
e121a753e1
* mark temps as deallocated
...
(cherry picked from commit 50452e5707b1d5f8590042ed55fc5f47bce33962)
2021-09-15 20:41:16 +02:00
Yuriy Sydorov
b8befe3d1f
* Fixed a typo in the condition, though it seems this code path is not used now.
2021-09-15 12:25:48 +03:00
Yuriy Sydorov
a7e234254f
* x86: Do not replace inc/dec with add/sub 1 because this code path is
...
executed only for the C_Z,C_NZ,C_E,C_NE conditions, so inc/dec can be
used.
2021-09-15 00:31:32 +03:00
florian
9bd785c06b
* fix handling of -0.0 in sse/avx code, resolves #39357
2021-09-13 22:47:26 +02:00
florian
37bb10e893
* make ShlOp2Op optimization more fool proof
2021-09-09 23:11:41 +02:00
florian
9a1ccd2a16
* x86: ShlOp2Op optimization
2021-09-07 23:05:34 +02:00
Yuriy Sydorov
6007ceb908
* Patch by J. Gareth "Kit" Moreton (issue #39343 ). x86 peephole
...
optimization of conditions which are always true or false.
2021-09-07 20:09:47 +03:00
Yuriy Sydorov
940ac567a5
* Patch by J. Gareth "Kit" Moreton (issue #39343 ). Added missing allocation
...
of flags in tx86typeconvnode.second_int_to_bool and in generic
tcgtypeconvnode.second_int_to_bool. This fixes random failures of the
tcnvint1 test and some other tests when compiled with -O2.
2021-09-07 19:50:28 +03:00
florian
3cddfb4e2f
* patch by J. Gareth Moreton: x86: SETcc/TEST/SETcc -> SETcc/SETcc optimisation, resolves #39271
2021-09-05 22:17:11 +02:00
florian
ef31e8c2ed
Merge remote-tracking branch 'origin/main' into tg74/avx512-0037785
2021-08-22 19:20:15 +02:00
florian
61a3f6603d
* change information for round* fixed
2021-08-20 23:55:17 +02:00
florian
a45123a87b
* fix change information for popcnt
2021-08-19 23:01:59 +02:00
Yuriy Sydorov
122ed4b76a
* Support for sleb128 and uleb128 constants in the NASM writer.
...
* Added sleb128tostr() and uleb128tostr() methods to TExternalAssembler.
* Use these methods in assembler writers instead of code duplication.
2021-08-16 00:40:34 +03:00
florian
306fae299e
* patch by J. Gareth Moreton: AND/CMP optimisation, resolves #39287
2021-08-11 23:01:30 +02:00
Florian Klämpfl
62baa89646
Merge remote-tracking branch 'origin/main' into tg74/avx512-0037785
...
# Conflicts:
# .gitattributes
# compiler/msgidx.inc
# compiler/msgtxt.inc
2021-08-10 23:30:02 +02:00
Yuriy Sydorov
10acbca828
* x86: Added the "test $-1,%reg" condition to the MovAndTest2Test optimization.
2021-08-09 23:52:44 +03:00
Yuriy Sydorov
5920d169c0
* Prevent double release of a temp.
2021-08-06 21:30:28 +03:00
florian
c67d35b8cc
* patch by J. Gareth Moreton: x86: Minor bitwise optimisations, resolves #39299
...
git-svn-id: trunk@49614 -
2021-07-16 21:47:36 +00:00
florian
2629bd7ba9
* patch by J. Gareth Moreton: x86: Lea2Nop for stack pointer, resolves #39225
...
git-svn-id: trunk@49612 -
2021-07-15 20:58:46 +00:00
florian
d16160be91
* patch by J. Gareth Moreton: CMP chain shortcutting, resolves #39141
...
git-svn-id: trunk@49592 -
2021-07-10 20:29:00 +00:00
florian
c185ce02cc
* patch by J. Gareth Moreton: x86: RegLoadedWIthNewValue overhaul and bug fix, resolves #39187
...
git-svn-id: trunk@49588 -
2021-07-09 20:58:42 +00:00
florian
cb0f422eb1
* patch by J. Gareth Moreton: x86: MovMovSar2MovCltd bug fix, resolves #39180
...
git-svn-id: trunk@49586 -
2021-07-08 20:40:10 +00:00
florian
86ac03e07e
+ support SHLX and SHRX in TX86AsmOptimizer.RegLoadedWithNewValue, resolves #39178
...
git-svn-id: trunk@49583 -
2021-07-07 20:28:04 +00:00
florian
ea47cb313d
* patch by J. Gareth Moreton: improve MovAndTest2Test optimization, resolves #39156
...
git-svn-id: trunk@49580 -
2021-07-06 20:55:41 +00:00
florian
7d6b01bfc4
+ SHXXMov2SHXX optimization
...
git-svn-id: trunk@49579 -
2021-07-05 21:07:46 +00:00
florian
9377d9a029
* CMOV does not read the second operand
...
git-svn-id: trunk@49578 -
2021-07-04 20:46:28 +00:00
florian
7a4110cca9
* DeepMovOpt requires that the target reg of the mov is not modified before hp2
...
git-svn-id: trunk@49577 -
2021-07-04 20:46:02 +00:00
florian
94a15faa7f
* patch by J. Gareth Moreton to fix faulty conditional jump logic, resolves #38985
...
git-svn-id: trunk@49576 -
2021-07-03 21:05:27 +00:00
florian
ce1f9cce01
* throw an error if esp/rsp are used as index register
...
git-svn-id: trunk@49568 -
2021-06-27 21:21:19 +00:00
florian
ba1b0883c2
* r/esp cannot be used as index register
...
git-svn-id: trunk@49567 -
2021-06-27 20:51:03 +00:00
tg74
43b2937589
activate 'compressed disp8*N' for VCVTQQ2PS xmmreg, xmmrm and VCVTTPD2UDQ xmmreg, xmmrm
...
git-svn-id: branches/tg74/avx512-0037785@49512 -
2021-06-18 14:06:55 +00:00
florian
c02b43fb93
* change fma cpu flag into an fpu flag
...
git-svn-id: trunk@49448 -
2021-06-01 21:16:52 +00:00
florian
f2e0af6d37
* check used registers properly for SETcc/TEST/Jcc -> Jcc, resolves #38940
...
git-svn-id: trunk@49405 -
2021-05-28 21:23:09 +00:00
florian
30df955001
* the MovOpMov2Op optimization needs to take care of the second operand, should resolve #38359
...
git-svn-id: trunk@49404 -
2021-05-27 21:13:23 +00:00
florian
bae583118a
* patch by J. Gareth Moreton: x86 JccMovJmpMov2MovSetcc improvement, resolves #38761
...
git-svn-id: trunk@49402 -
2021-05-26 21:03:56 +00:00
florian
5726428dcc
* patch by J. Gareth Moreton: Additional SETcc optimisations, resolves #38767
...
git-svn-id: trunk@49386 -
2021-05-21 20:36:15 +00:00
florian
578424cf51
* patch by J. Gareth Moreton: TEST chain shortcutting, resolves #38908
...
git-svn-id: trunk@49385 -
2021-05-20 20:45:38 +00:00
florian
6f482952de
* patch by J. Gareth Moreton: Memory CMP optimisation, resolves #38907
...
git-svn-id: trunk@49382 -
2021-05-19 20:29:04 +00:00
florian
e57059eea3
* fix building on i386 after r49366
...
git-svn-id: trunk@49372 -
2021-05-15 16:02:22 +00:00
florian
884d24e321
* patch by J. Gareth Moreton: x86 MOVZX/CMP optimisation, resolves #38882
...
git-svn-id: trunk@49366 -
2021-05-14 20:50:03 +00:00