Commit Graph

2567 Commits

Author SHA1 Message Date
florian
42f2e5f8ad + simplify "x mod -1", resolves #37449
git-svn-id: trunk@45969 -
2020-07-30 20:35:34 +00:00
florian
0b5c50ea41 * Aarch64: set register size correctly for AndStrb2Strb optimization, resolves #37427
git-svn-id: trunk@45872 -
2020-07-28 20:46:05 +00:00
florian
3db2794598 + add test for #31714 which is already fixed
git-svn-id: trunk@45859 -
2020-07-25 21:08:58 +00:00
florian
ed158f1e52 * set register size correctly for popcnt(<byte>), resolves #37400
git-svn-id: trunk@45828 -
2020-07-22 20:47:12 +00:00
florian
5da913de0e * float operations can have an exception as a side effect, resolves #37398
git-svn-id: trunk@45824 -
2020-07-21 20:09:39 +00:00
Jonas Maebe
dd6e6eb26a * disable tail recursion optimisation if there is a copy-back parameter
* handle fparainit in tail recursion optimisation (mantis #37397)

git-svn-id: trunk@45823 -
2020-07-21 17:57:50 +00:00
florian
13cb57b2c3 + Aarch64: trgcpu.get_spill_subreg: return MM sub register correctly, resolves #37393
git-svn-id: trunk@45814 -
2020-07-20 21:07:09 +00:00
florian
a57f3ba396 * patch by Sergey Larin to handle Native(U)Int conversions from/to variants, resolves #37339
git-svn-id: trunk@45797 -
2020-07-16 20:44:30 +00:00
florian
f6f5cb45a3 + strip leading zeros in numeric labels in iso/extended pascal mode also in label declarations, resolves #37323
git-svn-id: trunk@45764 -
2020-07-11 07:12:37 +00:00
florian
392d66a9ce * variables can have the same name as the main program in iso mode, resolves #37322
git-svn-id: trunk@45757 -
2020-07-10 21:05:59 +00:00
florian
f65f1bd802 * fix test to check result properly as pointed out by Bi0T1N in the bug tracker
git-svn-id: trunk@45739 -
2020-07-07 20:22:00 +00:00
florian
3caacc529a * fix abs() intrinsic optimisation, resolves #37301
git-svn-id: trunk@45732 -
2020-07-05 09:19:14 +00:00
florian
ff295bf349 * delay setting of pd_body and pd_implement till the header of a generic
procedure is parsed, resolves #37261

git-svn-id: trunk@45717 -
2020-06-30 20:36:51 +00:00
florian
d41f4c7c4e * correctly handle sign/zero extensions for optimization "var3", resolves #37254
git-svn-id: trunk@45713 -
2020-06-29 20:36:54 +00:00
svenbarth
eaa2a2006c * fix for Mantis #37272: also allow the empty set for dynamic array parameters; Delphi probably started to allow that together with array constructors.
+ added tests

git-svn-id: trunk@45706 -
2020-06-27 22:33:31 +00:00
florian
cb11e2568d + Xtensa: patch by Christo Crause to add optional MAC16 registers, resolves #37130
git-svn-id: trunk@45679 -
2020-06-22 19:05:13 +00:00
Jonas Maebe
3cb341eabc * ensure that dispose(managed_ptr) does not result in multiple evaluations of
the managed_ptr expression

git-svn-id: trunk@45673 -
2020-06-21 15:10:38 +00:00
florian
a7c0fa0def o patch for Xtensa by Christo Crause, resolves #37099
+ Added postfix parsing in tattreader.GetToken
    - Removed all postfixed versions of OpCodes from the instruction list
    + Added all missing OpCodes from Xtensa ISA
    * Changed branch OpCode to A_B, similar to ARM
    + Added missing branch condition flags BCI and BSI
    * Updated existing compiler code that referred to the old postfixed instructions
    + Added prefix and postfix handling in TxtensaInstrWriter.WriteInstruction
    * Updated TCPUAddNode.second_addfloat to specify .S postfix
    * Updated tcpuunaryminusnode.second_float to specify .S postfix
    + Implemented prefix and postfix identification in txtensaattreader.is_asmopcode
    * Adapted branch condition extraction to respect postfixes
    * Changed itcpugas to call findreg_by_name_table from raatt.pas (same as issue #0037121, difficult to test these changes without including a fix for the register name search problem)

git-svn-id: trunk@45672 -
2020-06-21 14:51:40 +00:00
florian
80111a0a60 * make local variables in assembler blocks working again after r44933
* test for #37218

git-svn-id: trunk@45667 -
2020-06-20 20:17:53 +00:00
florian
62c417c8bf * temporarily fix #37034 by disabling the problematic optimization until the real cause is fixed
git-svn-id: trunk@45655 -
2020-06-15 19:57:39 +00:00
florian
50c48349d5 * check properly for i/o errors in the iso read helpers, resolves #37154
* CheckRead checks if reading caused an I/O error and returns false in this case

git-svn-id: trunk@45635 -
2020-06-10 20:47:58 +00:00
florian
aafc22bd74 + optimize real operations with 0 and 1 if fast math is turned on
git-svn-id: trunk@45627 -
2020-06-08 20:33:27 +00:00
florian
8f88112bfe * allow in iso mode constants selecting the branch to dispose of a variant record (no functional effect though), resolves #37085
git-svn-id: trunk@45519 -
2020-05-27 21:10:55 +00:00
florian
b4de0b2e9c * insert fwait after fcompp, resolves #37136
git-svn-id: trunk@45500 -
2020-05-25 20:38:19 +00:00
florian
51da470757 * constrained type parameters are not undefined defs, resolves #37107
git-svn-id: trunk@45457 -
2020-05-21 18:19:08 +00:00
Jonas Maebe
a88eee4080 * fixed unitdir directive for relative paths in case the current module's
path is not set, broken by r43312 (mantis #37095)

git-svn-id: trunk@45410 -
2020-05-17 21:27:00 +00:00
michael
f432bd9307 * Patch from Noel Duffy to add TrySTrToHost* functions
git-svn-id: trunk@45376 -
2020-05-16 13:11:28 +00:00
florian
7a60e044e3 * simplify constant expressions after re-ordering, resolves #37062
git-svn-id: trunk@45360 -
2020-05-13 20:26:04 +00:00
michael
71e322d058 * Patch from Noel Duffy to improve IPV6 address parsing (bug ID tw37013)
git-svn-id: trunk@45350 -
2020-05-13 07:19:03 +00:00
florian
7a6bd84bc0 * cast only the longint
git-svn-id: trunk@45325 -
2020-05-10 12:52:17 +00:00
florian
b48c8d8596 * fixed test for 32 Bit targets
git-svn-id: trunk@45324 -
2020-05-10 09:04:13 +00:00
Jonas Maebe
722ad1ff7b * support floating point parameters split over multiple locations, including
integer registers, for homogeneous records/arrays on ppc64le (related to
    mantis #36934)

git-svn-id: trunk@45205 -
2020-05-01 13:02:48 +00:00
Jonas Maebe
05923af386 * ppc64le: fix storing homogeneous 64 bit float parameters in case they are
split over just FPU registers and memory (related to mantis #36934)

git-svn-id: trunk@45204 -
2020-05-01 13:02:45 +00:00
Jonas Maebe
d83232f881 * ELFv2: fixed homogeneous aggregate parameter passing when they should
overflow into integer registers (mantis #36934)

git-svn-id: trunk@45199 -
2020-04-30 20:53:05 +00:00
florian
eee2e9f950 * commented test
git-svn-id: trunk@44610 -
2020-04-05 21:12:12 +00:00
florian
2f5d51436e + with the randseed set as in the test, the test fails on x86_64-linux, added so it won't be forgotten
git-svn-id: trunk@44599 -
2020-04-05 16:26:11 +00:00
florian
0f06a7205b * do not create full copies of objects when object checking is on, resolves #36863
git-svn-id: trunk@44598 -
2020-04-05 16:26:10 +00:00
michael
a24a4b9745 * Patch from Bart Broersma to fix bug ID #36809 - test program
git-svn-id: trunk@44478 -
2020-04-01 07:06:01 +00:00
svenbarth
97c8464b11 * fix for Mantis #36738: when copying a record using its copy operator we assume that we've copied the whole record; this way managed records inside non-managed records are handled correctly
+ added (adjusted) test

git-svn-id: trunk@44257 -
2020-03-02 22:04:45 +00:00
svenbarth
8003f675c5 + add test for already fixed Mantis #24283
git-svn-id: trunk@44249 -
2020-02-28 16:29:14 +00:00
florian
bb6028a275 * AArch64: the PIC code needs also more registers, so use the same ifdefs as arm and sparc
git-svn-id: trunk@44217 -
2020-02-19 21:10:20 +00:00
yury
fc42953814 * Disabled range and overflow checks for the tw36587 test, since overflows are intended there.
git-svn-id: trunk@44168 -
2020-02-14 10:37:14 +00:00
florian
1e64133a08 * fix TVector.Reserve after IncreaseCapacity changes, resolves #36698
git-svn-id: trunk@44167 -
2020-02-13 21:29:23 +00:00
yury
39c48f0d01 * Fixed r43577 for cases when the size of the new result of a simplified node after typecheckpass is smaller than the size of the original node's result. This caused internal errors or invalid assembly in some cases. Issue #36587.
git-svn-id: trunk@44151 -
2020-02-11 12:49:12 +00:00
florian
2d47013cd1 * patch by J. Gareth Moreton: fixes internal error 200405231 with inline, resolves #35590
git-svn-id: trunk@44119 -
2020-02-05 20:35:03 +00:00
florian
de213ba258 - test removed as it cannot work on all variants of currency support
git-svn-id: trunk@44107 -
2020-02-03 20:16:33 +00:00
yury
4a756a2d30 * r42239 broke the tw13948b test for aarch64. Fixed this and improved the test.
git-svn-id: trunk@44052 -
2020-01-28 17:50:20 +00:00
yury
405b01f116 * Skip the test for android.
git-svn-id: trunk@44050 -
2020-01-27 18:12:16 +00:00
florian
6c71fd461d * avoid internalerror for dec/inc(...,v) with v>high(int64), resolves #35298
git-svn-id: trunk@44031 -
2020-01-24 21:39:07 +00:00
florian
d87a5cc9fb * take care of m_duplicate_names when checking for duplicate locals, resolves #33221
git-svn-id: trunk@44028 -
2020-01-23 21:32:09 +00:00