Commit Graph

367 Commits

Author SHA1 Message Date
florian
d2d1c30b53 * patch by Christo Crause, resolves #38961, fixes the following formatting and spelling problems in the AVR compiler files:
- Change spelling of AM_PREDRECEMENT to AM_PREDECREMENT
    - Fix multiline comment style to use {}
    - Fix indenting of code in method tcgavr.g_concatcopy

git-svn-id: trunk@49474 -
(cherry picked from commit aec49340a3)
2021-10-24 12:40:38 +02:00
florian
6a653c298c * patch by Christo Crause: do not generate LDD for avrtiny, resolves #38958
git-svn-id: trunk@49473 -
(cherry picked from commit 9d6ceda532)
2021-10-24 12:40:38 +02:00
florian
235c82feaa + AVR: MovOp2Op 2 optimization
git-svn-id: trunk@49350 -
(cherry picked from commit 9bfc731bb6)
2021-10-24 12:40:38 +02:00
florian
e168707f5b * patch by Christo Crause: handle references to absolute address 0 correctly, resolves #38861
git-svn-id: trunk@49344 -
(cherry picked from commit 5e1e6c24a4)
2021-10-24 12:40:38 +02:00
florian
99588969b9 * patch by Christo Crause: Fix missed optimization opportunities, resolves #38285
git-svn-id: trunk@47925 -
(cherry picked from commit 3482121831)
2021-10-24 12:40:38 +02:00
florian
af4eb12b43 * patch by Christo Crause to fix illegal ldd generation for avrtiny, resolves #37929
git-svn-id: trunk@47118 -
(cherry picked from commit fa54335938)
2021-10-24 12:40:38 +02:00
florian
64ff162e3f * patch by Christo Crause: r0, r1 are no volatile registers for avr tiny
git-svn-id: trunk@47102 -
(cherry picked from commit b8c707ed7e)
2021-10-24 12:40:37 +02:00
florian
35b2d80271 * avr: patch by Christo Crause: replace findreg_by_gasname with gas_regname_table, resolves #37131
git-svn-id: trunk@45509 -
(cherry picked from commit 37a3b542e6)
2021-10-24 12:40:37 +02:00
nickysn
34eb9ade91 * fix for OP_ROR in tcgavr.a_op_reg_reg_internal
git-svn-id: trunk@44749 -
(cherry picked from commit 599b7e80c0)
2021-10-24 12:40:37 +02:00
florian
9872a8a57a * AVR: couple of fixes for CPUs with only 16 registers
git-svn-id: trunk@44177 -
(cherry picked from commit fc50edfe31)
2021-10-24 12:40:37 +02:00
florian
265783c4b5 * remove accidently committed debug code
git-svn-id: trunk@44175 -
(cherry picked from commit 0424c2a658)
2021-10-24 12:40:37 +02:00
florian
b65e3288aa * 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 -
(cherry picked from commit fd4fb5fa19)
2021-10-24 12:40:37 +02:00
florian
32e17c5114 * for avr1, do not save registers during an interrupt procedure, as it has no memory to store them
git-svn-id: trunk@44139 -
(cherry picked from commit 2135b9b724)

# Conflicts:
#	compiler/msg/errore.msg
#	compiler/msgidx.inc
#	compiler/msgtxt.inc
2021-10-24 12:40:37 +02:00
florian
438c971460 * AVR: for avr1 lds/sts must be converted to in/out as well if possible
git-svn-id: trunk@44138 -
(cherry picked from commit 84cfa8d9b0)
2021-10-24 12:40:37 +02:00
florian
a589637b1d * patch by Christo Crause: more avr1 controllers and remove attiny28 from avr25 makefile list, resolves #36686
git-svn-id: trunk@44136 -
(cherry picked from commit 297d6e2c60)

# Conflicts:
#	.gitattributes
2021-10-24 12:40:37 +02:00
florian
54a6784e85 * 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 -
(cherry picked from commit a905a074b0)

# Conflicts:
#	compiler/msg/errore.msg
#	compiler/msgidx.inc
#	compiler/msgtxt.inc
2021-10-24 12:40:37 +02:00
florian
b77b0df3bd * AVR: attiny28 is an avr1 CPU
git-svn-id: trunk@44132 -
(cherry picked from commit dea63e3d61)
2021-10-24 12:40:37 +02:00
florian
3cb2cff444 * patch by Christo Crause: more AVR controllers, resolves #36683
git-svn-id: trunk@44130 -
(cherry picked from commit 04ad607bb4)

# Conflicts:
#	.gitattributes
2021-10-24 12:40:37 +02:00
florian
a124adb9a7 * patch by Christo Crause: add missing atmega-PB controllers, resolves #36667
git-svn-id: trunk@44128 -
(cherry picked from commit 5040e31f11)

# Conflicts:
#	.gitattributes
2021-10-24 12:40:37 +02:00
florian
5e4de7277a * patch by Christo Craus to reorder the avr controllers for better overview, resolves #36662
git-svn-id: trunk@44124 -
(cherry picked from commit e033269deb)
2021-10-24 12:40:37 +02:00
florian
104cb227d4 * patch by Christo Crause: board aliases to onboard controllers, resolves #36659
git-svn-id: trunk@44111 -
(cherry picked from commit 4fe21a8e1a)
2021-10-24 12:40:37 +02:00
florian
8d1eeea942 * actually, with lds/sts avrtiny can load addresses up to 191
git-svn-id: trunk@44104 -
(cherry picked from commit 640fe9c290)
2021-10-24 12:40:37 +02:00
florian
dd2212e1f7 * based on a patch by Christo Crause: more compiler fixes for avrtiny, resolves #36646
git-svn-id: trunk@44103 -
(cherry picked from commit 36058ca4d4)
2021-10-24 12:40:37 +02:00
florian
61c6c04f71 + patch by Christo Crause: Support for attiny10x controllers, resolves #36645
git-svn-id: trunk@44081 -
(cherry picked from commit 00214406bc)

# Conflicts:
#	.gitattributes
2021-10-24 12:40:37 +02:00
florian
0dc7bfde42 * patch by Christo Crause: support for megaAVR 0 and tinyAVR 0/1, #36616, part 1/3
git-svn-id: trunk@44036 -
(cherry picked from commit 670c61e760)
2021-10-24 12:40:37 +02:00
florian
4f5b872098 * patch by Christo Crause: avrtiny26 controller is not subarch avr25 but avr2, resolves #36620
git-svn-id: trunk@44021 -
(cherry picked from commit d2a059bd02)
2021-10-24 12:40:37 +02:00
florian
0a66f8f1dd * patch by Christo Crause: Correct subarch for avrtiny series in compiler, resolves #36619
git-svn-id: trunk@44020 -
(cherry picked from commit 3ab8830b83)
2021-10-24 12:40:37 +02:00
florian
8917c66151 * AVR: use CP ...,r1 instead of CPI ...,0 to enable all registers being used as first operand
git-svn-id: trunk@44006 -
(cherry picked from commit 08c2afb0a4)
2021-10-24 12:40:37 +02:00
florian
23d26d495f * AVR: attiny can do post increment operations, so remove code working around this
git-svn-id: trunk@43996 -
(cherry picked from commit 429130fa34)
2021-10-24 12:40:37 +02:00
florian
6d2880e809 * AVR: do not insert jmp if not supported
git-svn-id: trunk@43995 -
(cherry picked from commit bd96765632)
2021-10-24 12:40:37 +02:00
florian
bee41253bd + AVR: initial support for the avrtiny architecture
git-svn-id: trunk@43987 -
(cherry picked from commit 2d9cdab264)
2021-10-24 12:40:37 +02:00
florian
4a73c31c82 * AVR: tcgavr.normalize_ref must always load the reference into tmpreg
git-svn-id: trunk@43986 -
(cherry picked from commit f629fa1bb9)
2021-10-24 12:40:37 +02:00
florian
a9bbcccb5d + AVR: GetDefaultZeroReg and GetDefaultTmpReg
git-svn-id: trunk@43985 -
(cherry picked from commit 26eae3672b)

# Conflicts:
#	compiler/avr/cpubase.pas
2021-10-24 12:40:37 +02:00
florian
cda78c398f + AVR: cputype cpu_avrtiny
git-svn-id: trunk@43984 -
(cherry picked from commit aaa6ae5770)
2021-10-24 12:40:37 +02:00
florian
3328f991c7 * AVR: fixes pushing and handling of stack passed parameters
git-svn-id: trunk@43983 -
(cherry picked from commit 96a4cda03b)
2021-10-24 12:40:37 +02:00
florian
b04f398d27 * avr: help the compiler with constant loading to avoid ie 200309041
git-svn-id: trunk@43350 -
(cherry picked from commit 701848889e)
2021-10-24 12:40:37 +02:00
florian
3b5dfbf79c * avr: more precise execution weigth for shift loops
git-svn-id: trunk@43349 -
(cherry picked from commit e8a48be3bc)
2021-10-24 12:40:37 +02:00
florian
b241fec17b * avr directly encodes constant shifts of 64 bit values
git-svn-id: trunk@43348 -
(cherry picked from commit f61207f1cc)
2021-10-24 12:40:37 +02:00
florian
63375effda * patch by Christo Crause: fix for r43136
git-svn-id: trunk@43169 -
(cherry picked from commit 5fc12500f2)
2021-10-24 12:40:36 +02:00
florian
8e68ea69cb * (modified/re-formatted) patch by Christo Crause: AVR: Optimizing code generation for shift with compile time constant
git-svn-id: trunk@43136 -
(cherry picked from commit dd2d1bf68b)
2021-10-24 12:40:36 +02:00
florian
bf85e51962 * AVR: patch by Christo Crause: fixes tcgavr.g_concatcopy for data with size>255, resolves #36066
git-svn-id: trunk@42977 -
(cherry picked from commit 4e93a9a6c7)
2021-10-24 12:40:36 +02:00
florian
97b0bda68d * fix tcgavr.g_flags2reg for sizes > 1 byte
git-svn-id: trunk@42938 -
(cherry picked from commit 9e5cbce6be)
2021-10-24 12:40:36 +02:00
Jeppe Johansen
d14e3e96a7 - Fix bug in software overflow checking for longint's.
- AVR: Fix overflow checking for HW multiplications

git-svn-id: trunk@42531 -
(cherry picked from commit 1b698d319f)
2021-10-24 12:40:36 +02:00
Jeppe Johansen
0c4d299514 AVR: Add support for using nostackframe in interrupt routines.
git-svn-id: trunk@42519 -
(cherry picked from commit f72342ed0e)
2021-10-24 12:40:36 +02:00
Jeppe Johansen
49ac4e0ed3 AVR: Add optimizations for sign testing, and a better Abs() implementation.
git-svn-id: trunk@42510 -
(cherry picked from commit 91016c97a4)
2021-10-24 12:40:36 +02:00
Jeppe Johansen
464aeb266e - Fix overflow checking for multiplication operations on AVR.
git-svn-id: trunk@42492 -
(cherry picked from commit 030cf78ac5)
2021-10-24 12:40:36 +02:00
Jeppe Johansen
f1a9930550 avr: Fixed some inconsistencies.
git-svn-id: trunk@42204 -
(cherry picked from commit 0d97dc7965)
2021-10-24 12:40:36 +02:00
Jeppe Johansen
4996d129e5 - Add mov optimization for STS instruction.
git-svn-id: trunk@42163 -
(cherry picked from commit aa4961d06e)
2021-10-24 12:40:36 +02:00
Jeppe Johansen
3916bcba38 Check if the current register was the last in the cgpara, to avoid running over the last register allocated.
git-svn-id: trunk@42159 -
(cherry picked from commit 5bdc635f50)
2021-10-24 12:40:36 +02:00
Jeppe Johansen
18ba7fc23a Generalize skip instruction optimization for both sbix and sbrx.
git-svn-id: trunk@42154 -
(cherry picked from commit c867d2b7f6)
2021-10-24 12:40:36 +02:00