Sven Barth
69bfff046a
+ add a test for converting a 64-bit Boolean (either QWordBool or Boolean64) to a 32-bit signed integer (this problematic case was discovered after e65b822a
on PowerPC
2021-12-05 15:11:24 +01:00
florian
d708bef92f
+ Aarch64: read register sets with ranges properly
...
+ tests
2021-11-07 20:02:29 +01:00
Jonas Maebe
4426d0da7a
Fixed variant discriminator types
2021-10-31 21:13:35 +01:00
Yuriy Sydorov
e9d318e7e2
* x86: Fixed update of used registers in the CMOV optimizations.
...
This fixes a bug reported by Martin Frb in fpc-devel which is triggered
by the recently provided test code in FPC 3.2.2 x86_64, but is hidden
in trunk by other pipeline peephole optimizations.
2021-10-04 18:10:34 +03:00
florian
5abfe21f39
+ apply unary minus optimizations also to /
...
* test extended
2021-09-23 22:44:16 +02:00
florian
69d5d648a9
+ more unary minus optimizations
...
* test extended
2021-09-21 23:09:33 +02:00
florian
3e760b33c7
+ more unary minus optimizations
...
* test extended
2021-09-20 22:31:16 +02:00
florian
8cb92fd49a
* simplify real expressions involving unary minus
...
+ test
2021-09-19 23:08:32 +02:00
Yuriy Sydorov
16d17de1ff
+ Added a test for a bug fixed in b96057ad
.
2021-09-06 19:01:34 +03:00
florian
9969da24e1
* { ... } is no a longer valid comment in aarch64 assembler
...
git-svn-id: trunk@49215 -
2021-04-17 11:14:37 +00:00
Jonas Maebe
3e047d3691
* generate more efficient code for trunc(currency), trunc(comp), and
...
round(comp) on platforms where currency and comp are handled using the FPU
o also fixes trunc(comp) and trunc(currency) compilation for x86 on LLVM
with -Oofastmath
* add missing removal of excess fpu precision typecasts for trunc/round
git-svn-id: trunk@47854 -
2020-12-27 13:18:47 +00:00
florian
33afecd117
+ support got modifier on labels
...
git-svn-id: trunk@47851 -
2020-12-26 18:51:45 +00:00
svenbarth
32938dde1c
* apply patch by Blaise.ru to allow record methods to be assigned to method variables as well (this is Delphi compatible)
...
+ added test
git-svn-id: trunk@47794 -
2020-12-16 21:43:25 +00:00
florian
792b629aa6
+ -Xa option: generate code which allows to use more than 2 GB of static data on 64 Bit targets
...
+ implemented support for x86-64
* more than 2 GB static data requires to use the --no-relax option on linux
git-svn-id: trunk@47651 -
2020-11-30 22:07:34 +00:00
svenbarth
903486642e
* allow an integer expression for SetPeFlags and SetPeOptFlags (Delphi compatible)
...
* adjusted test to check that as well
git-svn-id: trunk@47602 -
2020-11-26 20:13:40 +00:00
svenbarth
eb7158d250
* ensure that internal method names (namely operator overloads and class con-/destructors) result in different mangled names from ordinary methods even if they should be converted to lowercase (which happens for section names)
...
+ added tests
git-svn-id: trunk@47110 -
2020-10-14 09:11:44 +00:00
svenbarth
2f877218b4
* fix test: TThread.WaitFor calls CheckSynchronize as well, so the thread needs to signal when it's done with removing entries from the queue
...
git-svn-id: trunk@47084 -
2020-10-11 12:38:16 +00:00
florian
284aca7348
+ x86: FstpFld2Fst optimization (re-enabled for safe cases)
...
git-svn-id: trunk@47024 -
2020-09-30 19:20:14 +00:00
svenbarth
a624348692
* when removing a method from the synchronization queue using TThread.RemoveQueuedEvent then both the Code and the Data need to match (Delphi does the same)
...
+ added test
git-svn-id: trunk@47007 -
2020-09-29 17:34:26 +00:00
svenbarth
cce2dad1bf
* fix for Mantis #37806 : allow undefineddefs for Include() and Exclude()
...
+ added tests
git-svn-id: trunk@46953 -
2020-09-25 14:13:53 +00:00
Jonas Maebe
0904ea0c3f
* added missing "end." (fixup for r46904)
...
git-svn-id: trunk@46906 -
2020-09-20 12:43:49 +00:00
Jonas Maebe
9f42931eeb
* don't print range check warnings when evaluating inlined explicit typecasts
...
git-svn-id: trunk@46904 -
2020-09-20 10:29:51 +00:00
svenbarth
9d86fed95b
* avoid range check error when using SwapEndian with 16-bit constants
...
+ added test
git-svn-id: trunk@46897 -
2020-09-19 17:04:17 +00:00
yury
2ab7cceeaa
* Added the $F+ switch (forced far calls) for some TP mode tests.
...
git-svn-id: trunk@46456 -
2020-08-16 10:48:10 +00:00
pierre
9f60f5093d
F_GetLk/SetLk have different values for sparc/sparc64
...
git-svn-id: trunk@45829 -
2020-07-22 23:15:03 +00:00
svenbarth
52678562e3
* correctly handle selection between Single and Double overloads for Currency
...
+ added test
git-svn-id: trunk@45707 -
2020-06-27 22:33:36 +00:00
svenbarth
febeef03e4
* for adding procdefs to forwarddefs check for the specialization flag instead of whether it's a full specialization; fixes implicit finalization handlers on x86_64-win64 not being found
...
+ added tests
git-svn-id: trunk@45646 -
2020-06-13 18:42:31 +00:00
yury
c1d124d497
* x86: Fixed peephole optimization introduced in r44233. tb0219 and tb0548 tests have failed with -O2 since then.
...
* Added variants of the tb0219 and tb0548 tests with forced -O2.
git-svn-id: trunk@45291 -
2020-05-06 14:18:44 +00:00
svenbarth
3d2945726a
* handle generic parameters in Ord()
...
+ added test
git-svn-id: trunk@45232 -
2020-05-03 15:08:31 +00:00
florian
b6097a0300
* correctly handle result type of string constant nodes for internally created
...
nodes
git-svn-id: trunk@45231 -
2020-05-03 12:41:17 +00:00
svenbarth
bd01182ff0
* add support for AND, OR, XOR and NOT of integer values in preprocessor directives (Delphi allows that as well)
...
+ added test
git-svn-id: trunk@45053 -
2020-04-24 14:09:04 +00:00
svenbarth
5ef9a78f5f
* fix for Mantis #36951 : B and BL can take immediate literals as well
...
+ added test
git-svn-id: trunk@44999 -
2020-04-22 20:19:14 +00:00
florian
66aa2e1416
* fixed tests for architectures with FPC_COMP_IS_INT64 defined
...
git-svn-id: trunk@44222 -
2020-02-20 20:51:46 +00:00
svenbarth
c4f3f7f453
* only resolve a dummy symbol if it is a type symbol (thus truly a dummy symbol)
...
+ added tests
git-svn-id: trunk@44172 -
2020-02-14 16:49:07 +00:00
svenbarth
9a42625cfb
* also allow by-value open array parameters for the tail recursion optimization
...
* adjusted test
git-svn-id: trunk@44012 -
2020-01-21 21:30:10 +00:00
svenbarth
4fc02d3d09
* enable tail recursion optimization also for const and constref open arrays
...
+ added test
git-svn-id: trunk@44011 -
2020-01-21 21:29:56 +00:00
svenbarth
3e7dc25667
* fix for Mantis #36496 : correctly handle the function result alias variable inside generic functions
...
+ added tests
git-svn-id: trunk@43823 -
2019-12-30 21:35:26 +00:00
svenbarth
ef6c9e930b
* correctly handle the genericdef being a procdef, otherwise no code will be generated (and no error either :/ )
...
+ added test
git-svn-id: trunk@43586 -
2019-11-25 20:28:23 +00:00
svenbarth
39f4b97ea5
+ add test for a problem reported by Michael van Canneyt which is fixed by the previous revision
...
git-svn-id: trunk@43569 -
2019-11-24 00:04:35 +00:00
florian
3de38c4894
* naming of tests fixed
...
git-svn-id: trunk@43502 -
2019-11-16 17:18:04 +00:00
florian
60b3296594
* relax conditions in tcallnode.optimize_funcret_assignment, resolves #36279
...
git-svn-id: trunk@43501 -
2019-11-16 17:16:16 +00:00
svenbarth
b4e998b3f8
+ add tests to check for correct definition of the FPC_* mode defines
...
git-svn-id: trunk@43115 -
2019-10-03 12:34:42 +00:00
Jonas Maebe
9b70c7623d
* initialise local variable to prevent random failures
...
git-svn-id: trunk@42992 -
2019-09-14 07:30:38 +00:00
Jonas Maebe
ce598c15ec
* factored out the conditions under which add nodes need to perform
...
overflow checks
o in particular ensure that cpu-specific overrides don't perform overflow
checks when nf_internal is set
git-svn-id: trunk@42573 -
2019-08-03 12:19:50 +00:00
Jonas Maebe
15532e5277
* disabled low-level hack test for LLVM
...
git-svn-id: trunk@42102 -
2019-05-19 19:20:38 +00:00
svenbarth
b7a716cd81
* correct return a pointer to the list so that List^[x] works as it did before 3.2
...
+ added test
git-svn-id: trunk@41938 -
2019-04-26 08:13:11 +00:00
svenbarth
307ff071e6
* allow any untyped parameter to be passed to a untyped constref parameter
...
+ added test
git-svn-id: trunk@41829 -
2019-04-04 19:31:55 +00:00
svenbarth
9a9c6a3ff4
* fix for Mantis #35150 : correctly convert Int64/QWord values to OleVariant (Delphi compatible)
...
+ added test
git-svn-id: trunk@41571 -
2019-03-03 14:50:09 +00:00
Jonas Maebe
7b313a2c15
* stop searching for methods to implement interfaces in parent classes after
...
encountering a method with the correct name that does not have the
"overload" directive (same logic as when looking for a call candidate,
to avoid errors when using a Pascal-level wrapper to call interface
methods, and Delphi-compatible since it always required "overload" for
overloaded methods)
o also catches calling convention mismatches like in webtbs/tw27349
git-svn-id: trunk@40683 -
2018-12-28 18:25:58 +00:00
Jonas Maebe
c6bb85eae9
* support for compiling the objects unit methods that expect local procedure/
...
function pointers using {$modeswitch nestedprocvars} functionality, activate
this for LLVM and also activate that modeswitch for a test that uses this
o also convert the IDE units to use this functionality
o requires extra typecasts because implicit type conversions from
procvar(p: psometype) to procvar(p: pointer) are not supported; on the
plus side, even those type conversions are checked for validity
o note: requires {$modeswitch nestedprocvars} in all programs/units
that rely on this functionality
git-svn-id: trunk@40598 -
2018-12-20 21:22:40 +00:00