florian
e28b76a64e
* avr tiny has no adiw/sbiw instructions, resolves #39783
2022-06-16 23:01:47 +02:00
florian
bce88f2e2b
* AVR: trgcpu.do_spill_read must load ofs
2022-05-05 19:35:38 +02:00
florian
5d97ff43fa
+ CPUAVR_HAS_ADIW
2022-04-29 23:06:17 +02:00
florian
314d3579fc
* avr3 and avr31 should also have a movw instruction
2022-04-29 23:06:17 +02:00
florian
27fb9086aa
* cleanup: cs_opt_loopunroll is a generic optimization for a long time already
2022-03-08 23:03:18 +01:00
florian
ff3acfb8cd
* cleanup of 2.7.0 defines
2021-10-31 13:20:28 +01:00
florian
7a8893396d
* revert last commit, avr4 has no call/jmp
...
git-svn-id: trunk@49620 -
2021-07-18 21:47:22 +00:00
florian
eb96734b20
* avr4 has mul instructions
...
git-svn-id: trunk@49619 -
2021-07-18 21:41:57 +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
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
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
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
00214406bc
+ patch by Christo Crause: Support for attiny10x controllers, resolves #36645
...
git-svn-id: trunk@44081 -
2020-02-01 15:54:57 +00:00
Jonas Maebe
592df7fa59
* disable cs_opt_regvar on all platforms when compiled for LLVM (LLVM does
...
that itself, our LLVM code generator can't handle it, and if it did then
afterwards we would have to spill 90% of those register variables again
to make them SSA)
git-svn-id: trunk@44062 -
2020-01-29 22:21:07 +00:00
florian
670c61e760
* patch by Christo Crause: support for megaAVR 0 and tinyAVR 0/1, #36616 , part 1/3
...
git-svn-id: trunk@44036 -
2020-01-26 14:35:26 +00:00
florian
d2a059bd02
* patch by Christo Crause: avrtiny26 controller is not subarch avr25 but avr2, resolves #36620
...
git-svn-id: trunk@44021 -
2020-01-22 20:41:24 +00:00
florian
3ab8830b83
* patch by Christo Crause: Correct subarch for avrtiny series in compiler, resolves #36619
...
git-svn-id: trunk@44020 -
2020-01-22 20:34:43 +00:00
florian
aaa6ae5770
+ AVR: cputype cpu_avrtiny
...
git-svn-id: trunk@43984 -
2020-01-19 15:55:22 +00:00
pierre
828a248287
Systematically include fpcdefs.inc at sart of all units used by compiler
...
git-svn-id: trunk@42322 -
2019-07-03 13:35:05 +00:00
Jeppe Johansen
0d97dc7965
avr: Fixed some inconsistencies.
...
git-svn-id: trunk@42204 -
2019-06-10 13:35:38 +00:00
florian
055a49b202
* patch by Christo Crause: the subarch type for atmega 8, 8A, 16 & 32 was incorrect. Atmega8A was also listed under the wrong subarch type in the makefile, also fixed.
...
* atmega8a needs to use rjmp now
git-svn-id: trunk@38282 -
2018-02-18 10:54:59 +00:00
Jeppe Johansen
4a169e6b1a
Changed subarch of at90pwm161
...
git-svn-id: trunk@37858 -
2017-12-29 11:30:35 +00:00
florian
73c46a5988
- removed unused constants
...
git-svn-id: trunk@35664 -
2017-03-26 13:06:34 +00:00
florian
56b6cedcf4
* increase ram size of the avrsim controller target
...
git-svn-id: trunk@33066 -
2016-02-07 11:17:55 +00:00
florian
bd20c5a66b
* set a proper sram base for the avrsim controller type
...
git-svn-id: trunk@32647 -
2015-12-12 22:37:41 +00:00
Jeppe Johansen
3cb9be73bc
Moved tcontrollerdatatype out into cpuinfo.
...
Added cputype and fputype info to tcontrollerdatatype arrays.
git-svn-id: trunk@31574 -
2015-09-07 20:36:54 +00:00
Jeppe Johansen
55669f62b1
Added most AVR controllers.
...
Made absolutevarsym use PUint instead of AWord for its offset to fix range errors.
git-svn-id: trunk@31242 -
2015-07-29 21:01:21 +00:00
florian
c0dd2047f9
* cosmetics, entries are now properly aligned
...
git-svn-id: trunk@31039 -
2015-06-13 16:55:36 +00:00
Jeppe Johansen
ab9c8bb569
Fixed startup assembler code for the case where there's no data in .bss and/or in .data.
...
Fixed _stack_top symbol calculation so it works for all controllers.
Added ATTINY2313 controller.
git-svn-id: trunk@31031 -
2015-06-13 12:30:50 +00:00
florian
a3553a7320
+ adds missing ct_atmega168 and ct_atmega368 symbols, thanks to mischi
...
git-svn-id: trunk@30960 -
2015-05-31 17:59:39 +00:00
florian
cf552b2a0b
+ ATmeag168/ATmeag368 support
...
git-svn-id: trunk@30938 -
2015-05-30 18:01:14 +00:00
florian
0cd521fc8b
+ ATmega48/ATmega88 support
...
git-svn-id: trunk@30937 -
2015-05-30 17:55:49 +00:00
florian
d58d7b7838
* fixes breakage of r30930 (+ ATtiny24/ATtiny44/ATtiny84 support)
...
git-svn-id: trunk@30932 -
2015-05-28 21:15:00 +00:00
florian
0f73675354
+ ATtiny24/ATtiny44/ATtiny84 support
...
git-svn-id: trunk@30930 -
2015-05-28 21:10:39 +00:00
florian
f5edf77a05
+ Atmega8 support
...
git-svn-id: trunk@30768 -
2015-05-02 18:18:00 +00:00
florian
dfd4d3656b
+ avrsim controller target requiring a special avr simulator with a certain memory location handling, see avrsim.pp controller helper unit for what it is needed
...
git-svn-id: trunk@30385 -
2015-03-29 21:13:36 +00:00
florian
5c67fcc43f
+ change always floating point divisions into multiplications if they are a power of two,
...
this is an exact operation so it is always allowed
* change only divisions by normal numbers into multiplications
git-svn-id: trunk@29085 -
2014-11-16 20:47:38 +00:00
Tomas Hajny
3ee3542744
* boolean constant instead of IFDEFs for detection of microcontroller support
...
git-svn-id: trunk@29052 -
2014-11-10 12:34:59 +00:00
florian
b2b26f84cf
* partially merged the mips-embedded branch of Michael Ring:
...
- startup code/controller units are not merged yet
- assembler call does not pass the needed CPU type yet
git-svn-id: trunk@27188 -
2014-03-19 21:25:38 +00:00
Jeppe Johansen
2227045e23
Replace forbidden chars in more places in the GAS assembler writer.
...
Add support for .set and .weak on AVR.
Fix 64 bit negation on AVR.
Add cpu_capabilities to cpuinfo.pas and fixed some peephole optimizations.
Pass >4 byte parameters by reference.
git-svn-id: trunk@26943 -
2014-03-04 08:01:23 +00:00
Jeppe Johansen
8b17a358e4
Remove all traces of the interrupt vector table generation mechanism
...
Clean up cpuinfo tables
Fixed ARMv7M bug(BLX <label> doesn't exist on that version)
git-svn-id: branches/laksen/arm-embedded@22579 -
2012-10-08 00:10:52 +00:00
florian
895aa0d752
* reworked cpuflags for avr
...
+ define cpuflags in options unit so user programs can access them
git-svn-id: trunk@22089 -
2012-08-15 15:48:59 +00:00
florian
aadf6da14f
* better naming of CPU flag strings
...
git-svn-id: trunk@22055 -
2012-08-09 20:32:18 +00:00
florian
4d86d25c6c
* -O4 switch for optimizations which are correct but which might have unexpected effects
...
like field reordering (possible problems cracker classes) or using ebp as normal register (broken
stack traces from dump_stack)
+ niln is also valid in a cse domain
* parameters passed by reference shall have a complexity >1
* load nodes from outer scopes shall have a complexity >1
* better cse debugging
+ more node types added to cse
* consider parameters passed by reference in cse
* take care of cse in parameters in simple cases
git-svn-id: trunk@22050 -
2012-08-09 18:58:54 +00:00
florian
b330bba0bc
+ introduce -Oofastmath
...
* limit the application of the tree transformation introduced in r21986 to safe cases and -Oofastmath
git-svn-id: trunk@22040 -
2012-08-08 19:35:45 +00:00
Jonas Maebe
3798b79fd7
+ optimization that (re)orders instance fields of Delphi-style classes in
...
order to minimise memory losses due to alignment padding. Not yet enabled
by default at any optimization level, but can be (de)activated separately
via -Oo(no)orderfields
o added separate tdef.structalignment method that returns the alignment
of a type when it appears in a record/object/class (factors out
AIX-specific double alignment in structs)
o changed the handling of the offset of a delegate interface
implemented via a field, by taking the field offset on demand
rather than at declaration time (because the ordering optimization
causes the offsets of fields to be unknown until the entire
declaration has been parsed)
git-svn-id: trunk@21947 -
2012-07-22 16:47:19 +00:00
florian
a08dfdf803
o slightly modified patch by John Clymer:
...
* converts the embedded information into controller specific records (arm and avr)
* new cpu-specific units for several Stellaris (Fury and Tempest class) targets,
+ STM32F103RB
- old Stellaris unit has been removed
git-svn-id: trunk@18848 -
2011-08-25 21:46:26 +00:00