Commit Graph

21448 Commits

Author SHA1 Message Date
Yuriy Sydorov
ebc55c0f4e * If in a move instruction "MOV reg1,reg2" one of the registers must be
spilled, but reg1 and reg2 are coalesced, then this is a no-op
  instruction and no spilling is needed.

(cherry picked from commit b43ee41090)
2021-09-09 22:23:28 +02:00
Yuriy Sydorov
0ca0cd9d0d * Remove register allocations of coalesced registers if the alias
register is spilled.

(cherry picked from commit b96057adeb)
2021-09-07 21:43:16 +02:00
Yuriy Sydorov
0b5951cf22 * 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.

(cherry picked from commit 940ac567a5)
2021-09-07 21:37:19 +02:00
florian
58dacbd625 * generate a def. file only if really necessary
(cherry picked from commit d3615788a8)
2021-08-29 21:40:31 +02:00
Jonas Maebe
b7b9c5d94c * fix false possitive tconstexprint range errors after r41441 (mantis #35144)
git-svn-id: trunk@41469 -
(cherry picked from commit eb71a30933)
2021-08-27 10:02:15 +02:00
Pierre Muller
b2ce589dae Delete binary file added by error 2021-08-27 09:11:05 +02:00
Jonas Maebe
197f5cbec5 * let all the case code generation work with tconstexprint instead of aint,
so it also works for 32 bit targets and a high level code generator
    (where aint is still 32 bit, but 64 bit operations are not decomposed)

git-svn-id: trunk@41441 -
(cherry picked from commit 07bd4ba517)

With local change to fix compilation for x86_64 CPU
2021-08-26 23:28:28 +02:00
florian
9a7a015109 * properly handle result size for avx/sse based frac function, resolves #38248
git-svn-id: trunk@47839 -
(cherry picked from commit b28aa5c684)
2021-08-24 23:26:25 +02:00
florian
4e5fb2c6a8 * might_have_sideeffects gets flags: if mhs_exceptions is passed, nodes which might cause an exception are considered as having a side effect
git-svn-id: branches/laksen/riscv_new@39483 -
(cherry picked from commit 32a58ba7d1)
2021-08-24 10:43:24 +02:00
florian
f6dee4c3e0 * process fma intrinsic parameters in an order which takes care of multiple x87 stack parameters, resolves #38295
(cherry picked from commit 9592c033e5)

# Conflicts:
#	.gitattributes
2021-08-24 00:14:05 +02:00
florian
e683e6e912 * fix spilling of (v)min/max/s/ps/d operations
git-svn-id: trunk@48856 -
(cherry picked from commit 90710d055b)
2021-08-24 00:08:44 +02:00
florian
7a77369d5e * another loop counter copying fix
git-svn-id: trunk@49028 -
(cherry picked from commit a32a870f33)
2021-08-24 00:06:47 +02:00
florian
f7f0d53604 * prefetch instructions read only the operand
git-svn-id: trunk@49089 -
(cherry picked from commit aa1a68000b)
2021-08-24 00:06:20 +02:00
florian
7ceb3854c5 * AVR: fixed TCpuAsmOptimizer.RegLoadedWithNewValue
git-svn-id: trunk@49126 -
(cherry picked from commit 05cf47f995)
2021-08-24 00:01:42 +02:00
florian
26f200b0ff * even if currency is handled by torddef, it is a real number, so using / is perfectly right, resolves #38718
(cherry picked from commit 09628e56cb)

# Conflicts:
#	.gitattributes
2021-08-24 00:00:50 +02:00
florian
30c6cc295c * newer linux distros might have powerpc64 libraries in /usr/lib or /lib
git-svn-id: trunk@49182 -
(cherry picked from commit 0a99028128)
2021-08-24 00:00:01 +02:00
florian
078a6c31c9 * explicitly reset successor if noreturn is set
git-svn-id: trunk@49487 -
(cherry picked from commit a988c0fab1)
2021-08-23 23:53:22 +02:00
florian
9f2ab5eb2f + new switches -DD and DT which allow to pass an arbitrary string which is used by %DATE%/%TIME%
git-svn-id: trunk@47132 -
(cherry picked from commit 9ea52b8578)

# Conflicts:
#	compiler/msgidx.inc
#	compiler/msgtxt.inc
2021-08-21 21:26:25 +02:00
florian
7fca3c9b1f * check if git executable really exists
(cherry picked from commit a77f5221f3)
2021-08-21 20:57:24 +02:00
Don
5e06e89678 Allow custom definition of GIT.
(cherry picked from commit f6636c9c1c)
2021-08-21 20:55:44 +02:00
florian
d1f11bb292 * always use $(GIT) to call git
(cherry picked from commit a4878d892c)

# Conflicts:
#	compiler/Makefile
2021-08-21 20:55:38 +02:00
florian
7ae51087e5 * compiler Makefile checks if SOURCE_SOURCE_DATE_EPOCH_DATE is set or if git is used, in either case the former or the latter are used for the build date reported by the compiler
git-svn-id: trunk@47133 -
(cherry picked from commit 201281ae2a)
2021-08-21 20:46:54 +02:00
florian
055283f9cb * set register size correctly for popcnt(<byte>), resolves #37400
(cherry picked from commit ed158f1e52)

# Conflicts:
#	.gitattributes
2021-08-21 16:36:43 +02:00
florian
f58f92f005 * fix change information for popcnt
(cherry picked from commit a45123a87b)
2021-08-19 23:05:07 +02:00
florian
1fd49868c7 * properly check if -unpushed should be appended in revision.inc
(cherry picked from commit 3e3f99c328)
2021-08-18 10:57:27 +02:00
florian
d48e34a81d + include -unpushed in revision.inc if not all changes are pushed to the remote
(cherry picked from commit 4c1eb4e454)
2021-08-17 23:01:40 +02:00
florian
c69fde258c * if sub nodes of a commutative node contain conditionally executed nodes, these sub nodes might not be swapped
as this might result in some nodes not being executed, like temp. create nodes with init. code, see e.g. issue #34653, resolves #34653
(cherry picked from commit e24449bcfd)

# Conflicts:
#	.gitattributes
2021-08-16 23:11:06 +02:00
florian
1127761f49 * do not swap left/right code generation for assignment nodes if
conditional expressions are involved, resolves #38129
(cherry picked from commit cc64d9eb4e)

# Conflicts:
#	.gitattributes
2021-08-16 23:08:20 +02:00
florian
2e7736064e * use git describe to create a revision.inc if a .git dir is found
(cherry picked from commit 0ff3f04700)

# Conflicts:
#	compiler/Makefile
2021-08-16 21:37:51 +02:00
pierre
d1a642100a Add PPUDUMP variable to be able to specify explicit version of ppudump program, defaulting to ppudump executable in SEARCHPATH
git-svn-id: trunk@42580 -
(cherry picked from commit 754b1bd930)
2021-08-16 21:36:28 +02:00
Don
fce62a84a8 Remove "r" from FPC revision.
(cherry picked from commit d147533c94)
2021-08-13 22:40:57 +02:00
florian
8d6a8e5492 + support SHLX and SHRX in TX86AsmOptimizer.RegLoadedWithNewValue, resolves #39178
(cherry picked from commit 86ac03e07e)

# Conflicts:
#	.gitattributes
2021-08-09 23:12:01 +02:00
florian
6847e7bfa8 * CMOV does not read the second operand
git-svn-id: trunk@49578 -
(cherry picked from commit 9377d9a029)
2021-08-08 17:10:11 +02:00
pierre
2ade09bdf8 Merge commit #45733 to fixes branch:
------------------------------------------------------------------------
r45733 | pierre | 2020-07-06 13:39:42 +0200 (Mon, 06 Jul 2020) | 1 line

 Fix cycle with -CriotR option on aarch64-linux
------------------------------------------------------------------------
--- Merging r45733 into '.':
U    compiler/constexp.pas
--- Recording mergeinfo for merge of r45733 into '.':
 U   .

git-svn-id: branches/fixes_3_2@49606 -
2021-07-13 09:44:53 +00:00
pierre
397629dd39 ------------------------------------------------------------------------
r47234 | pierre | 2020-10-28 12:37:57 +0000 (Wed, 28 Oct 2020) | 1 line

 Update -T help output after introduction of iOS targets
------------------------------------------------------------------------
--- Merging r47234 into '.':
U    compiler/msg/errore.msg
U    compiler/msgidx.inc
U    compiler/msgtxt.inc
--- Recording mergeinfo for merge of r47234 into '.':
 U   .

git-svn-id: branches/fixes_3_2@49533 -
2021-06-23 14:13:05 +00:00
pierre
1d3acf10c7 r48111 | pierre | 2021-01-08 12:05:29 +0100 (Fri, 08 Jan 2021) | 1 line
Add setting of all optimization debug macros with single DEBUG_ALL_OPT macro
------------------------------------------------------------------------
--- Merging r48111 into '.':
U    compiler/fpcdefs.inc
--- Recording mergeinfo for merge of r48111 into '.':
 U   .
------------------------------------------------------------------------
r48112 | pierre | 2021-01-08 12:13:43 +0100 (Fri, 08 Jan 2021) | 1 line

 Fix compilation with -dALLOCREGDEBUG
------------------------------------------------------------------------
--- Merging r48112 into '.':
U    compiler/aoptobj.pas
--- Recording mergeinfo for merge of r48112 into '.':
 G   .

git-svn-id: branches/fixes_3_2@49497 -
2021-06-11 16:08:33 +00:00
pierre
a092e59200 ------------------------------------------------------------------------
r48140 | pierre | 2021-01-11 22:17:09 +0000 (Mon, 11 Jan 2021) | 1 line

 Correct check of stringtype inside use_tag_prefix function
------------------------------------------------------------------------
--- Merging r48140 into '.':
U    compiler/dbgstabs.pas
--- Recording mergeinfo for merge of r48140 into '.':
 U   .

git-svn-id: branches/fixes_3_2@49447 -
2021-06-01 20:59:46 +00:00
pierre
2930a975fa ------------------------------------------------------------------------
r42206 | pierre | 2019-06-10 13:55:59 +0000 (Mon, 10 Jun 2019) | 1 line

 Fix error in commit #42199
------------------------------------------------------------------------
--- Merging r42206 into '.':
U    compiler/dbgstabx.pas
--- Recording mergeinfo for merge of r42206 into '.':
 U   .

git-svn-id: branches/fixes_3_2@49423 -
2021-05-31 21:27:48 +00:00
pierre
180f6541bd ------------------------------------------------------------------------
r42199 | pierre | 2019-06-09 20:59:06 +0000 (Sun, 09 Jun 2019) | 1 line

 Use use_tag_types everywhere to get consistent results for 'Tt' versus 't' for stabs for string definitions
------------------------------------------------------------------------
--- Merging r42199 into '.':
U    compiler/dbgstabs.pas
U    compiler/dbgstabx.pas
--- Recording mergeinfo for merge of r42199 into '.':
 U   .

git-svn-id: branches/fixes_3_2@49422 -
2021-05-31 21:03:29 +00:00
pierre
9cd5a5b916 ------------------------------------------------------------------------
r40155 | jonas | 2018-11-01 20:39:38 +0000 (Thu, 01 Nov 2018) | 1 line

  * fixed compilation with -O3 (one false positive, one real error)
------------------------------------------------------------------------
--- Merging r40155 into '.':
   C compiler/riscv { not present in fixes branch }
U    compiler/sparcgen/ncpumat.pas
--- Recording mergeinfo for merge of r40155 into '.':
 U   .
Summary of conflicts:
  Tree conflicts: 1

git-svn-id: branches/fixes_3_2@49419 -
2021-05-31 13:37:44 +00:00
pierre
1ed2a3e055 ------------------------------------------------------------------------
r40821 | pierre | 2019-01-09 22:48:08 +0000 (Wed, 09 Jan 2019) | 1 line

 Avoid warnings with -O4 option
------------------------------------------------------------------------
--- Merging r40821 into '.':
U    compiler/ogomf.pas
--- Recording mergeinfo for merge of r40821 into '.':
 U   .

git-svn-id: branches/fixes_3_2@49418 -
2021-05-31 13:01:23 +00:00
marco
74aff88586 --- Merging r49045 into '.':
C    Makefile
C    Makefile.fpc
--- Recording mergeinfo for merge of r49045 into '.':
 U   .
Summary of conflicts:
  Text conflicts: 2

# revisions: 49045
r49045 | jonas | 2021-03-24 15:33:09 +0100 (Wed, 24 Mar 2021) | 1 line
Changed paths:
   M /trunk/Makefile
   M /trunk/Makefile.fpc

  * support building with FPC 3.2.2

git-svn-id: branches/fixes_3_2@49384 -
2021-05-20 20:03:52 +00:00
svenbarth
a29ee477e3 Merged revision(s) 49339 from trunk:
Add explicit zeroing of trttiparaloc record to avoid hash calculation issues
........

git-svn-id: branches/fixes_3_2@49343 -
2021-05-07 05:17:17 +00:00
svenbarth
4b7f92a367 Merged revision(s) 48972, 49057 from trunk:
+ tx64tryfinallynode.dogetcopy properly implemented, resolves #37305
........
  * patch by Do-wan Kim: fix loop unrolling for try .. finally blocks in win32,
    similiar to r48972 for win64
........

git-svn-id: branches/fixes_3_2@49316 -
2021-05-01 15:48:45 +00:00
Jonas Maebe
ea640967ee --- Merging r49312 into '.':
U    compiler/aarch64/aasmcpu.pas
--- Recording mergeinfo for merge of r49312 into '.':
 U   .

git-svn-id: branches/fixes_3_2@49315 -
2021-05-01 15:41:39 +00:00
svenbarth
adfe9581ba Merged revision(s) 47390 from trunk:
* patch by Cyrax: forbid to use heaptrc and valgrind at the same time, resolves #36529
  * load cmem before line* units as they might allocate memory
........

git-svn-id: branches/fixes_3_2@49314 -
2021-05-01 14:09:57 +00:00
marco
94894e7f79 --- Merging r48432 into '.':
U    compiler/msg/errorct.msg
C    compiler/msg/errord.msg
U    compiler/msg/errorda.msg
C    compiler/msg/errordu.msg
U    compiler/msg/errore.msg
U    compiler/msg/errores.msg
U    compiler/msg/errorf.msg
U    compiler/msg/errorfi.msg
U    compiler/msg/errorhe.msg
U    compiler/msg/errorheu.msg
U    compiler/msg/errorid.msg
U    compiler/msg/erroriu.msg
U    compiler/msg/errorn.msg
U    compiler/msg/errorpl.msg
U    compiler/msg/errorpli.msg
U    compiler/msg/errorpt.msg
U    compiler/msg/errorptu.msg
U    compiler/msg/errorr.msg
U    compiler/msg/errorru.msg
U    compiler/msg/errorues.msg
U    compiler/msgtxt.inc
--- Recording mergeinfo for merge of r48432 into '.':
 U   .
Summary of conflicts:
  Text conflicts: 2

# revisions: 48432
r48432 | florian | 2021-01-26 23:03:17 +0100 (Tue, 26 Jan 2021) | 1 line
Changed paths:
   M /trunk/compiler/msg/errorct.msg
   M /trunk/compiler/msg/errord.msg
   M /trunk/compiler/msg/errorda.msg
   M /trunk/compiler/msg/errordu.msg
   M /trunk/compiler/msg/errore.msg
   M /trunk/compiler/msg/errores.msg
   M /trunk/compiler/msg/errorf.msg
   M /trunk/compiler/msg/errorfi.msg
   M /trunk/compiler/msg/errorhe.msg
   M /trunk/compiler/msg/errorheu.msg
   M /trunk/compiler/msg/errorid.msg
   M /trunk/compiler/msg/erroriu.msg
   M /trunk/compiler/msg/errorn.msg
   M /trunk/compiler/msg/errorpl.msg
   M /trunk/compiler/msg/errorpli.msg
   M /trunk/compiler/msg/errorpt.msg
   M /trunk/compiler/msg/errorptu.msg
   M /trunk/compiler/msg/errorr.msg
   M /trunk/compiler/msg/errorru.msg
   M /trunk/compiler/msg/errorues.msg
   M /trunk/compiler/msgtxt.inc

  * updated copyright year to 2021

git-svn-id: branches/fixes_3_2@49309 -
2021-05-01 12:09:53 +00:00
Jonas Maebe
acb59c7592 --- Merging r49236 into '.':
U    compiler/aarch64/hlcgcpu.pas
A    tests/webtbs/tw38766.pp
--- Recording mergeinfo for merge of r49236 into '.':
 U   .

git-svn-id: branches/fixes_3_2@49237 -
2021-04-19 20:52:46 +00:00
Jonas Maebe
7ed1ba7a51 --- Merging r49206 into '.':
U    compiler/aarch64/aasmcpu.pas
--- Recording mergeinfo for merge of r49206 into '.':
 U   .
--- Merging r49207 into '.':
U    compiler/aarch64/rgcpu.pas
A    tests/webtbs/tw38053.pp
--- Recording mergeinfo for merge of r49207 into '.':
 G   .

git-svn-id: branches/fixes_3_2@49208 -
2021-04-15 19:16:05 +00:00
svenbarth
946d9ec715 Merged revision(s) 39838 from trunk:
* only i386 uses oldfpccall for interrupts, all other architectures use now stdcall, resolves #34317
........

git-svn-id: branches/fixes_3_2@49176 -
2021-04-10 22:25:40 +00:00