Commit Graph

2025 Commits

Author SHA1 Message Date
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