mirror of
https://gitlab.com/freepascal.org/fpc/source.git
synced 2025-04-17 11:19:36 +02:00
The sources of the Free Pascal compiler, RTL, packages and utilities.
See https://www.freepascal.org/ for more info.
![]() - xorq %reg,%reg (identical registers) is now changed to xorl %reg,%reg if doing so removes the REX prefix. - movw %bx,%ax; andl $0xffff,%eax, for example, is now changed to movzwl %bx,%eax as long as a conditional operation doesn't follow 'and' (checks to see if the CPU flags are in use). - movzbq and movzwq get optimised to movzbl and movzwl respectively if doing so removes the REX prefix. - Removal of optimisation code that zero-extends from 32-bit to 64-bit, because there isn't actually a valid combination of opcodes for MOVZX that allows that (for registers, just use MOV). This is not the case with MOVSX. - movq is now optimised to movl even if the CPU flags are in use (this stops mov %reg,0 from being optimised to xor %reg,%reg if doing so breaks an algorithm that relies on them). - Fixed typo in peephole message regarding movq to movl (it said movd instead). - Made the peephole debug messages more consistent in formatting, some of which now have more detail. * small fixes of the patch git-svn-id: trunk@38070 - |
||
---|---|---|
compiler | ||
installer | ||
packages | ||
rtl | ||
tests | ||
utils | ||
.gitattributes | ||
.gitignore | ||
fpmake_add1.inc | ||
fpmake_proc1.inc | ||
fpmake.pp | ||
Makefile | ||
Makefile.fpc |