Commit Graph

22727 Commits

Author SHA1 Message Date
florian
3099e10f41 * revert accidently committed code
git-svn-id: trunk@44205 -
2020-02-17 20:12:53 +00:00
florian
e50c4f6373 + AAarch64: optimize divisions by constant
git-svn-id: trunk@44204 -
2020-02-17 20:11:32 +00:00
florian
93521ae8e8 * fold also pointer additions/subtractions
git-svn-id: trunk@44199 -
2020-02-16 20:14:28 +00:00
florian
27e89e07a3 * in case a 32x32 -> 64 multiplication is converted into shl, the type casts need to be restored
git-svn-id: trunk@44197 -
2020-02-16 20:14:27 +00:00
florian
9989d408fd * AArch64 and i386: omit exit stackframe, same as r44191 for x86-64
git-svn-id: trunk@44196 -
2020-02-16 20:14:26 +00:00
Jonas Maebe
3188dc18d4 * fixed tdel1/2 tests again for AArch64/LLVM
git-svn-id: trunk@44195 -
2020-02-16 16:58:25 +00:00
florian
88836b467e * (V)MOVA*(V)MOVS*2(V)MOVS* 1 optimization
git-svn-id: trunk@44194 -
2020-02-16 16:43:26 +00:00
florian
42324235bd + CallRet2Call optimization
git-svn-id: trunk@44192 -
2020-02-16 13:15:12 +00:00
florian
ef3155c2ef * there is no exit stackframe needed if a subroutine never returns
git-svn-id: trunk@44191 -
2020-02-16 13:06:19 +00:00
svenbarth
2ad3c6dd97 * fix global generic functions with constraints in mode Delphi by handling implementations with defines outside of parse_generic_parameters
+ added tests

git-svn-id: trunk@44189 -
2020-02-16 09:53:37 +00:00
svenbarth
41a6957f7d * keep track of the fileposinfo for generic constraints
git-svn-id: trunk@44188 -
2020-02-16 09:53:32 +00:00
florian
892454ff17 * patch by J. Gareth Moreton: optimize MOVSXD as well, resolves #36700
git-svn-id: trunk@44185 -
2020-02-15 20:53:40 +00:00
florian
e350264db1 + propagate constants across call nodes
git-svn-id: trunk@44184 -
2020-02-15 18:27:22 +00:00
florian
3947922fea * set nf_* correctly when an inc/dec node is converted into an add/sub node
* do not firstpass during dead store removal as it disturbes the for each calls

git-svn-id: trunk@44180 -
2020-02-15 13:53:16 +00:00
florian
fc50edfe31 * AVR: couple of fixes for CPUs with only 16 registers
git-svn-id: trunk@44177 -
2020-02-14 21:27:43 +00:00
florian
013491c69f * make maxpushedparasize a SizeInt: it must store an address size and not an alu value
git-svn-id: trunk@44176 -
2020-02-14 21:27:16 +00:00
florian
0424c2a658 * remove accidently committed debug code
git-svn-id: trunk@44175 -
2020-02-14 20:59:32 +00:00
florian
b7afb2431c * do not allow constraints in headers of procedure implementations in delphi mode, resolves #36584
* better error message if a constraint is found at a wrong location

git-svn-id: trunk@44174 -
2020-02-14 20:56:55 +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
20698bb36f * regenerate msg*.inc after last commit
git-svn-id: trunk@44171 -
2020-02-14 16:49:04 +00:00
svenbarth
147559349b * fix for Mantis #36652: gracefully handle the error if one tries to implement a method of a type from another unit
+ added test

git-svn-id: trunk@44170 -
2020-02-14 16:48:58 +00:00
florian
3279e63351 * patch by J. Gareth Moreton: cleanup TX86AsmOptimizer.OptPass2MOV after DeepMov changes, second part of #36670
git-svn-id: trunk@44166 -
2020-02-13 20:53:39 +00:00
florian
251b18b966 * do not fold constants if the resulttypes do not match, improved fix for #tw26587
git-svn-id: trunk@44165 -
2020-02-13 20:34:27 +00:00
florian
3a5eb0ec59 * patch by J. Gareth Moreton: cleanup TX86AsmOptimizer.OptPass1MOV after DeepMov changes, first part of #36670
git-svn-id: trunk@44164 -
2020-02-13 20:20:10 +00:00
florian
fd4fb5fa19 * patch by Christo Crause: combine code paths for avr1 and avrtiny when converting lds/sts to in/out, resolves #36697
git-svn-id: trunk@44163 -
2020-02-12 20:43:13 +00:00
florian
f632e2e7be * simplified TX86AsmOptimizer.OptPass1Movx
git-svn-id: trunk@44162 -
2020-02-12 20:23:06 +00:00
florian
21565c2284 * fixed Mov2Movz optimization
git-svn-id: trunk@44161 -
2020-02-12 19:26:52 +00:00
florian
c6350e2903 * patch by J. Gareth Moreton: processor-aware MOVZX optimisation cleanup, part one of #36687
git-svn-id: trunk@44153 -
2020-02-11 20:56:20 +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
e7d2c93ca7 * patch by J. Gareth Moreton: deadstore removal improvement, resolves #36669
git-svn-id: trunk@44147 -
2020-02-10 20:48:45 +00:00
pierre
40a6059143 Modify code to avoid error when compiling with -CriotR option
git-svn-id: trunk@44145 -
2020-02-10 09:37:53 +00:00
florian
991ce83a2b * patch by J. Gareth Moreton: conditional Jump Inversion stoploop variable, resolves #36680
git-svn-id: trunk@44144 -
2020-02-09 20:57:59 +00:00
florian
12d015a935 * patch by J. Gareth Moreton: CMOV extensions: frame/stack pointer relative references are always valid, resolves #36675
git-svn-id: trunk@44141 -
2020-02-09 17:39:50 +00:00
florian
2135b9b724 * for avr1, do not save registers during an interrupt procedure, as it has no memory to store them
git-svn-id: trunk@44139 -
2020-02-09 14:35:56 +00:00
florian
84cfa8d9b0 * AVR: for avr1 lds/sts must be converted to in/out as well if possible
git-svn-id: trunk@44138 -
2020-02-09 13:55:25 +00:00
florian
297d6e2c60 * patch by Christo Crause: more avr1 controllers and remove attiny28 from avr25 makefile list, resolves #36686
git-svn-id: trunk@44136 -
2020-02-09 10:51:14 +00:00
florian
a905a074b0 * AVR: decide after compiler if a certain subroutine is suitable for avr1, if not, replace it by sleep and warn
git-svn-id: trunk@44133 -
2020-02-08 22:05:21 +00:00
florian
dea63e3d61 * AVR: attiny28 is an avr1 CPU
git-svn-id: trunk@44132 -
2020-02-08 22:05:21 +00:00
florian
04ad607bb4 * patch by Christo Crause: more AVR controllers, resolves #36683
git-svn-id: trunk@44130 -
2020-02-08 20:43:22 +00:00
florian
5040e31f11 * patch by Christo Crause: add missing atmega-PB controllers, resolves #36667
git-svn-id: trunk@44128 -
2020-02-07 19:48:46 +00:00
florian
e033269deb * patch by Christo Craus to reorder the avr controllers for better overview, resolves #36662
git-svn-id: trunk@44124 -
2020-02-06 21:10:09 +00:00
florian
3de193467d * reverted r44119
git-svn-id: trunk@44123 -
2020-02-06 20:24:59 +00:00
Tomas Hajny
8de6066b95 + added possibility to list supported modeswitches using -im and documented it in help pages
git-svn-id: trunk@44120 -
2020-02-05 22:37:43 +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
Tomas Hajny
f4702ee139 * added information about -M allowing to specify modeswitches
git-svn-id: trunk@44115 -
2020-02-04 22:28:23 +00:00
florian
4fe21a8e1a * patch by Christo Crause: board aliases to onboard controllers, resolves #36659
git-svn-id: trunk@44111 -
2020-02-04 21:14:14 +00:00
pierre
9c067709f8 Fix invalid typecast revealed by -CriotR option
git-svn-id: trunk@44108 -
2020-02-03 22:35:25 +00:00
florian
640fe9c290 * actually, with lds/sts avrtiny can load addresses up to 191
git-svn-id: trunk@44104 -
2020-02-02 20:41:28 +00:00
florian
36058ca4d4 * based on a patch by Christo Crause: more compiler fixes for avrtiny, resolves #36646
git-svn-id: trunk@44103 -
2020-02-02 20:35:29 +00:00
florian
bbcbd4eae1 * patch by J. Gareth Moreton, avoid illegal MovAdd2Lea and MovSub2Lea optimziations, resolves #36630
git-svn-id: trunk@44101 -
2020-02-02 19:49:47 +00:00