Commit Graph

6429 Commits

Author SHA1 Message Date
Jonas Maebe
d78dbd5d59 + test from mantis #35224 (already works)
git-svn-id: trunk@41718 -
2019-03-16 20:01:57 +00:00
Jonas Maebe
fd42c3fb01 * only enable tw35187 for Windows and Linux, since it uses syscalls under unix
(which are not supported on all unix targets; feel free to re-enable for
     specific unix targets if the test has been verified to compile there)
   o also fixed placement of dotest directives: they have to come before any
     part of the program code

git-svn-id: trunk@41717 -
2019-03-16 19:14:17 +00:00
Jonas Maebe
ed2ae508d0 * only add hidden parameters for objectdef methods after generating the vmt,
so that they take into account inherited calling conventions (mantis #35233)
   o don't needlessly calculate the paraloc info when generating a JVM mangled
     name

git-svn-id: trunk@41716 -
2019-03-16 19:14:14 +00:00
nickysn
a32e69bf72 * the i386-openbsd C and C++ test modules recompiled with -fPIC
git-svn-id: trunk@41688 -
2019-03-12 16:04:57 +00:00
nickysn
dd41651e36 * recompiled OpenBSD x86_64 C external modules with -fPIC
git-svn-id: trunk@41673 -
2019-03-10 18:18:47 +00:00
nickysn
0d7ee960cc * recompiled the OpenBSD x86_64 C and C++ .o test files; GCC version is the
same (so, no need to update readme.txt), but OpenBSD's default compile
  settings have changed (PIC is enabled by default)

git-svn-id: trunk@41672 -
2019-03-10 17:38:07 +00:00
florian
d657373933 * patch by J. Gareth Moreton which avoids that the optimizer causes reads of invalid memory, resolves #35187
git-svn-id: trunk@41667 -
2019-03-10 10:48:50 +00:00
Jonas Maebe
cb5b407e89 * fixed taarch64abi.pp so it doens't rely on undefined behaviour between the
end of an inline assembly block and the end of a routine

git-svn-id: trunk@41651 -
2019-03-09 16:11:34 +00:00
pierre
a7d45c0ca0 Commit patch submitted by J. Gareth Moreton in bug report 35180
git-svn-id: trunk@41589 -
2019-03-04 21:53:22 +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
aba3f8f162 * fixed over-eager rejection of tobjecttype.fieldname expression after r40785
(mantis #35149)

git-svn-id: trunk@41474 -
2019-02-25 21:17:24 +00:00
florian
38a7f7c975 * casing fixed
git-svn-id: trunk@41428 -
2019-02-24 09:54:05 +00:00
pierre
c1e93bd2c2 + compiler/symdef.pas: Add missing call to tderef.reset methods in all tdef constructors.
+ compiler/sysmsym.pas: Do the same for for all tsym constructors.
  + compiler/symtype.pas: Generate internalerror in  tcompilerppufile.putderef
    if a deref field has index -1, as this means that buildderef was not called
    while it should have been called.
  + compiler/symtable.pas: Fix bug report itself by adding an extra local variable
    CHANGED to add extra cycles in tstoredsymtable.buildderef_referenced method.

New tests for this bug report: tests/webtbs/tw35139.pp and  tests/webtbs/tw35139a.pp

git-svn-id: trunk@41425 -
2019-02-23 23:03:29 +00:00
pierre
1a564de6e6 Add testing of use of variable of class
git-svn-id: trunk@41417 -
2019-02-23 15:37:39 +00:00
joost
42204977f8 * Patch from Bart Broersma to fix writing unicode strings in the Windows
registry + test (modified, bug #35060)

git-svn-id: trunk@41415 -
2019-02-22 22:26:21 +00:00
yury
382d5060a0 * aarch64: According to ARM64 ABI, function's arguments and the result are not required to be sign/zero extended to a full register size. Obey this rule for all targets except iOS where sign/zero extension is required.
git-svn-id: trunk@41412 -
2019-02-22 17:59:54 +00:00
joost
cd03f5326d * Fixed bug #35060, proper unicode-handling of registry-keynames. With test
(modified) from Bart Broersma

git-svn-id: trunk@41325 -
2019-02-15 21:25:05 +00:00
svenbarth
7364cd59b5 * always enable threads on Unix-like targets
git-svn-id: trunk@41308 -
2019-02-11 20:33:29 +00:00
svenbarth
b810d8f32b * fix for Mantis #35027: ensure that the synchronize event entry is reset correctly in case of an exception
+ added test

git-svn-id: trunk@41281 -
2019-02-10 15:43:03 +00:00
svenbarth
1502a13e7c * fix for Mantis #35028: when the mainthread executes a queued ThreadMethod make sure that the queue entry is released even if an exception is raised
+ added test

git-svn-id: trunk@41280 -
2019-02-10 15:42:58 +00:00
svenbarth
b1ee29c836 * fix for Mantis #30205: (adjusted) patch by Do-wan Kim to only use the default calling convention for exception handlers
+ added test

git-svn-id: trunk@41277 -
2019-02-10 11:26:46 +00:00
nickysn
b0ca862f32 + implemented IntroSort (hybrid between QuickSort and HeapSort) in unit SortAlgs
git-svn-id: trunk@41258 -
2019-02-08 15:34:29 +00:00
nickysn
8b17af1f89 + added test for unit sortalgs, that tests the heapsort and randomized quicksort algorithms
git-svn-id: trunk@41247 -
2019-02-07 14:41:33 +00:00
nickysn
5c4af27a7a + added test for the sortbase unit
git-svn-id: trunk@41195 -
2019-02-03 19:16:48 +00:00
nickysn
2a0eb54fd5 + added a simple test that tests TList.Sort
git-svn-id: trunk@41181 -
2019-02-02 23:56:24 +00:00
Jonas Maebe
20c4992ac9 - removed data race test with mixed and writers, because the modifications
to the global variable in the read-locked sections could cause
    false positives regarding detecting whether nothing got changed
    during a write-locked section due to lack of read/write dependencies

git-svn-id: trunk@41165 -
2019-02-02 15:17:12 +00:00
Jonas Maebe
56fd8e1208 * fixed tinterlockedmt*.pp for architectures with weak memory consistency
models

git-svn-id: trunk@41164 -
2019-02-02 14:28:48 +00:00
Jonas Maebe
0db9ff5c39 * fixed packed bitsize calculation for types with a negative lower bound and
and upper bound just below the next power of two (mantis #34971)

git-svn-id: trunk@41161 -
2019-02-01 17:31:53 +00:00
florian
4f0da5fcc3 + patch by Marģers to support the x86 assembler instructions blsi, blsr, blsmsk, adcx, adox, movbe, pclmulqdq, resolves #34815 and #34799
+ avxopcodes tests also movbe and pclmulqdq

git-svn-id: trunk@40951 -
2019-01-20 18:50:12 +00:00
florian
8c66e9a2eb + support for 16 bit registers
git-svn-id: trunk@40950 -
2019-01-20 18:50:10 +00:00
florian
fc7ecf3206 * usage example for linux
git-svn-id: trunk@40949 -
2019-01-20 18:50:09 +00:00
florian
e24449bcfd * 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

git-svn-id: trunk@40934 -
2019-01-20 12:55:20 +00:00
florian
925531b99c * constrained generics are also compatible with formaldefs, resolves #34893
git-svn-id: trunk@40921 -
2019-01-19 21:23:36 +00:00
florian
644c47e121 * when deciding about the case code generation in case of size optimization, the number of labels is relevant, not the covered range, resolves #34818
git-svn-id: trunk@40851 -
2019-01-13 10:32:00 +00:00
florian
dd072ce76b + seek for typefiles in iso mode, resolves #34848
git-svn-id: trunk@40850 -
2019-01-12 23:29:20 +00:00
pierre
193df0204a Add x86_64-haiku target to some Makefile's
git-svn-id: trunk@40820 -
2019-01-09 22:43:56 +00:00
Jonas Maebe
b2b34338e5 * give an error when trying to call an object instance method via a type node
(mantis #34821)

git-svn-id: trunk@40785 -
2019-01-06 15:21:36 +00:00
Károly Balogh
078d8e9d2a tarray15: the conditions added in r40779 should be or, instead of and (thanks Pierre)
git-svn-id: trunk@40784 -
2019-01-06 14:08:35 +00:00
Károly Balogh
cae98304f8 tarray15: no rodata support on a bunch of m68k platforms
git-svn-id: trunk@40779 -
2019-01-06 10:50:02 +00:00
Károly Balogh
59aef99f52 haiku-x86_64: regenerated all Makefiles
git-svn-id: trunk@40757 -
2019-01-04 03:17:19 +00:00
svenbarth
04bbfd1746 * fix for Mantis #27378: save and (more importantly) restore verbosity when switching a unit
+ added test

git-svn-id: trunk@40750 -
2019-01-03 20:31:34 +00:00
florian
22365a1f57 + test for #27543 which is fixed meanwhile
git-svn-id: trunk@40731 -
2019-01-01 16:16:54 +00:00
florian
1641585655 * updated bcase.pp benchmark by Gareth Moreton, now used also as test
git-svn-id: trunk@40710 -
2018-12-30 22:21:03 +00:00
svenbarth
dada756828 * also enable published for TObjA so that the test fails for the correct reason
git-svn-id: trunk@40704 -
2018-12-29 19:23:19 +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
florian
7f5c2fa3aa * (modified) patch by Gareth Moreton: Speed improvement in case blocks, resolves #0034762
This patch improves the compiler where "case" statements are concerned, using jump tables more often and creating more efficient machine code in some situations:
  * If a case block only contains one branch (not including the else block), the initial range check is removed, since this becomes wasted effort.
  * If the else block is empty, the else label is set to the end label - though this doesn't decrease the code size, it takes a bit of strain off the peephole optimizer.
  * On -O2 and above, some node analysis is now done on the branch labels. Most of the time this just redirects it to the end
    label for empty blocks, but if the block contains a goto statement, it will redirect it to its destination instead,
    thus increasing performance by not having multiple jumps (this won't get picked up by the peephole optimiser if the label addresses are in a jump table).
  * Some checks now use what I call the 'true count' rather than the 'label count'. The true count includes each
    individual value in a range - for example, 0..2 counts as 3. This increases the chance that a jump table will be
    utilised in situations where it is more efficient than a linear list.
  * For jump tables, if the case block almost covers the entire range (32 entries or fewer from full coverage),
    the initial range check is removed and the gaps included in the jump table (pointing to the else label).

git-svn-id: trunk@40676 -
2018-12-27 18:31:55 +00:00
svenbarth
0f83458513 * previous Invoke() related commit also correctly fixed Mantis #34509
git-svn-id: trunk@40670 -
2018-12-26 22:59:48 +00:00
svenbarth
93e0cd9e1a * fix for Mantis #34496: correctly align stack so that SSE operations work correctly
git-svn-id: trunk@40666 -
2018-12-26 22:59:36 +00:00
svenbarth
e28dff523a * with the change regarding property access lists this test is no longer considered correct
git-svn-id: trunk@40658 -
2018-12-26 11:26:08 +00:00
svenbarth
60adebfe28 * Mantis #34691 is fixed by previous change regarding property access list
git-svn-id: trunk@40657 -
2018-12-26 11:26:04 +00:00