The sources of the Free Pascal compiler, RTL, packages and utilities. See https://www.freepascal.org/ for more info.
Go to file
florian 810acd82b2 * patch by J. Gareth Moreton that makes some improvements to the Peephole Optimizer for x86 and x86-64 code, as well as some cleanup with formatting, code syntax consistency, and debug messages.
- 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 -
2018-01-28 14:41:54 +00:00
compiler * patch by J. Gareth Moreton that makes some improvements to the Peephole Optimizer for x86 and x86-64 code, as well as some cleanup with formatting, code syntax consistency, and debug messages. 2018-01-28 14:41:54 +00:00
installer * fpcmake.inc and Makefiles renerated after last commit 2017-12-27 15:08:18 +00:00
packages * Fix bug ID #33080 2018-01-28 10:38:55 +00:00
rtl * fix 32-bit * 32-bit => 64-bit for Coldfire 2018-01-27 14:26:18 +00:00
tests * fix for #32576 2018-01-28 13:26:49 +00:00
utils pas2js:: rtl.js: add Math.trunc only if used 2018-01-27 14:15:36 +00:00
.gitattributes * fix for #32576 2018-01-28 13:26:49 +00:00
.gitignore * made the ide a package, so it can be build in parallel with the other packages, reasons: 2018-01-06 20:22:30 +00:00
fpmake_add1.inc * Handle the location of each package at run-time, not at compilation time 2013-06-02 17:55:23 +00:00
fpmake_proc1.inc * Handle the location of each package at run-time, not at compilation time 2013-06-02 17:55:23 +00:00
fpmake.pp * Handle the location of each package at run-time, not at compilation time 2013-06-02 17:55:23 +00:00
Makefile * made the ide a package, so it can be build in parallel with the other packages, reasons: 2018-01-06 20:22:30 +00:00
Makefile.fpc * made the ide a package, so it can be build in parallel with the other packages, reasons: 2018-01-06 20:22:30 +00:00