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
pierre
17e3c31b7e
Fix gotpcrel relocation for TESTQ x86_64 instruction
...
git-svn-id: trunk@49252 -
2021-04-23 21:52:24 +00:00
florian
29a5d3267c
* moved warning about suspicious comp assignment to type check pass, catches also
...
assignments of constants
git-svn-id: trunk@49242 -
2021-04-21 19:51:22 +00:00
florian
b09669dffe
* allow also CSUBSETREG in tx86inlinenode.second_IncludeExclude, resolves #38733
...
git-svn-id: trunk@49151 -
2021-04-09 20:09:19 +00:00
Jonas Maebe
ca399f3c71
* don't generate high-level CFI statements when the selected assembler
...
does not support them, even if the target normally uses them
o fixes assembling with -Aas-darwin for i386/arm/x86-64 (on OS
versions that used those)
git-svn-id: trunk@49138 -
2021-04-08 19:50:27 +00:00
florian
503fc85dff
* patch by J. Gareth Moreton: handle register allocations correctly in MovMov2Mov 3, resolves #38703
...
git-svn-id: trunk@49128 -
2021-04-06 15:50:28 +00:00
florian
87a67a3222
* typo fixed
...
git-svn-id: trunk@49118 -
2021-04-03 22:01:47 +00:00
florian
7811b915a9
* x86-64: we can spill replace 32 bit operations if the operation does not modify a register
...
git-svn-id: trunk@49097 -
2021-03-31 21:23:22 +00:00
florian
07a8e6c1d6
+ some more change information entries added
...
git-svn-id: trunk@49092 -
2021-03-31 18:53:31 +00:00
florian
aa1a68000b
* prefetch instructions read only the operand
...
git-svn-id: trunk@49089 -
2021-03-30 21:24:00 +00:00
florian
47557e0ad2
* cpubase.cgsize2subreg should handle all valid sizes, resolves #38557
...
git-svn-id: trunk@49087 -
2021-03-30 16:44:19 +00:00
florian
6218254e53
* allow also 8 byte string constants in assembler, resolves #28640
...
git-svn-id: trunk@49066 -
2021-03-27 17:13:14 +00:00
florian
53effea0f5
+ X86: JccMovJmpMov2MovSetcc optimization
...
git-svn-id: trunk@48993 -
2021-03-16 22:19:21 +00:00
florian
612f063795
+ patch by J. Gareth Moreton: AddMov2LeaAdd and AddMov2Lea optimizations, resolves #38579
...
git-svn-id: trunk@48989 -
2021-03-15 21:12:02 +00:00
pierre
85fa313e59
Use uvalue field to get unsigned and avoid range check or overflow errors
...
git-svn-id: trunk@48977 -
2021-03-15 13:24:27 +00:00
florian
913bd009e9
* patch by J. Gareth Moreton: take care of -Os for SubMov2*, part of #38579
...
git-svn-id: trunk@48878 -
2021-03-04 21:35:13 +00:00
florian
01937c4630
* patch by J. Gareth Moreton: SubMov2LeaSub optimisation improvement, resolves #38555
...
git-svn-id: trunk@48871 -
2021-03-02 21:27:43 +00:00
florian
8ffa01e95f
* patch by J. Gareth Moreton: MOV/SHR reference optimisation, resolves #38560
...
git-svn-id: trunk@48857 -
2021-03-01 20:39:57 +00:00
florian
90710d055b
* fix spilling of (v)min/max/s/ps/d operations
...
git-svn-id: trunk@48856 -
2021-03-01 20:29:58 +00:00
florian
c6443809ba
+ SETcc/Mov -> SETcc optimization
...
git-svn-id: trunk@48808 -
2021-02-25 22:07:40 +00:00
pierre
236bef961c
Patch by Gareth Moreton
...
* Fix lea optimizations which lead to more failures with -O3 and -O4 options.
- LeaLea2Lea now checks to see if the index register is in use.
- For both the base and index registers, RegUsedBetween is changed to
RegModifiedBetween, since just reading the register is harmless for the
optimisation (it finds additional optimisations in the RTL as a result).
- Because I saw the mis-optimisation with MOVZX that occurred (even
though it was due to the mis-optimisation of LEA instructions), I wrote
some extra code in OptPass2Movx as a safety measure to ensure this
doesn't happen (although no additional instances of it happening have
been noted so far - best be safe than sorry).
git-svn-id: trunk@48802 -
2021-02-24 12:58:04 +00:00
pierre
2cd6951205
Apply patch proposed by J. Gareth Moreton in bug report #0038527
...
The patch reworks the LeaLea2Lea optimisation and hopefully fixes the bug (admittedly by adding a brand new optimisation!).
git-svn-id: trunk@48792 -
2021-02-22 23:15:31 +00:00
yury
2567631aad
* Removed in_x86mm_last (the duplicate no and unused) from the tinlinenumber enum.
...
git-svn-id: trunk@48395 -
2021-01-24 14:28:49 +00:00
yury
75491ae21c
* Removed/ifdefed the assigned and unused variables.
...
git-svn-id: trunk@48391 -
2021-01-24 13:58:17 +00:00
yury
221efd7a80
* Commented out some unused (yet?) local variables.
...
git-svn-id: trunk@48386 -
2021-01-24 13:04:17 +00:00
yury
64c586b86d
* Removed/ifdefed lots of unused variables.
...
git-svn-id: trunk@48384 -
2021-01-24 12:24:01 +00:00
florian
ecc3ce64ea
* x86: some fixes to enable 8 and 16 bit operations
...
git-svn-id: trunk@48166 -
2021-01-16 22:46:25 +00:00
florian
707bce74d7
* patch by J. Gareth Moreton: refactor OptPass2Jcc, resolves #38343
...
git-svn-id: trunk@48162 -
2021-01-15 21:24:44 +00:00
florian
eb81b981cd
* patch by J. Gareth Moreton to fix MovzxCmp2CmpMovzx, resolves #38339
...
git-svn-id: trunk@48124 -
2021-01-10 10:23:40 +00:00
florian
227bd3e904
* simplified code for JccAdd2SetccAdd optimization
...
git-svn-id: trunk@48122 -
2021-01-09 18:21:49 +00:00
florian
f42f62565b
* patch by J. Gareth Moreton to resolve bug introduced in the first patch, resolves #38294
...
git-svn-id: trunk@48117 -
2021-01-08 22:29:24 +00:00
florian
4e9b42344e
+ AddLea2Lea optimization
...
* improved LeaLea2Lea
git-svn-id: trunk@48116 -
2021-01-08 22:22:56 +00:00
florian
28efcfba65
+ patch by J. Gareth Moreton: Advanced MOVZX optimisations, resolves #38294
...
git-svn-id: trunk@48086 -
2021-01-05 15:15:41 +00:00
florian
de36d6c049
+ added newly used opcodes to avx_opcode_only_op0_may_be_memref
...
git-svn-id: trunk@48070 -
2021-01-04 21:54:36 +00:00
florian
9592c033e5
* process fma intrinsic parameters in an order which takes care of multiple x87 stack parameters, resolves #38295
...
git-svn-id: trunk@48017 -
2021-01-03 17:08:58 +00:00
Jonas Maebe
2fc672452d
* fixed error in load_fpu_location triggered by round() (fixes webtbs/tw32671
...
on i386 after r47854)
git-svn-id: trunk@47890 -
2020-12-29 13:07:41 +00:00
florian
33afecd117
+ support got modifier on labels
...
git-svn-id: trunk@47851 -
2020-12-26 18:51:45 +00:00
pierre
26170815b4
Fix compilation of i8086 compiler after commit #47840
...
git-svn-id: trunk@47844 -
2020-12-24 11:26:01 +00:00
florian
b03eefd5d0
* Ch_ information for vreduce* fixed
...
git-svn-id: trunk@47842 -
2020-12-23 17:58:07 +00:00
florian
b713c7380b
* implemented UseAVX512 properly
...
+ make use of VREDUCE* for frac(...) if AVX512QD is a available
git-svn-id: trunk@47840 -
2020-12-23 17:25:09 +00:00
florian
b28aa5c684
* properly handle result size for avx/sse based frac function, resolves #38248
...
git-svn-id: trunk@47839 -
2020-12-23 16:10:08 +00:00
pierre
2bcd2a4a93
Appply fix from Gareth Moreton in bug report 38247
...
git-svn-id: trunk@47838 -
2020-12-23 10:19:44 +00:00