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
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
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
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
62df4a4083
* patch by Christo Crause: more descriptive error message when BRxx destination out of reach
...
git-svn-id: trunk@38340 -
2018-02-25 15:31:17 +00:00
florian
6b5a514148
* based on a patch by Christo Crause: in finalizeavrcode, ignore assembler breq statements taking an absolute value, resolves #32109
...
git-svn-id: trunk@38089 -
2018-01-31 18:38:33 +00:00
florian
0662b611ca
* patch by Christo Crause: prevent that the compiler converts breq into jmp in inline assembler blocks, resolves #32949
...
git-svn-id: trunk@38088 -
2018-01-31 18:34:42 +00:00
Jeppe Johansen
a7d3d2d298
Fixed internal error in case inline assembler constants are used.
...
git-svn-id: trunk@37859 -
2017-12-29 11:50:36 +00:00
florian
3eef641833
* convert jmp into rjmp only of the target is not a function
...
git-svn-id: trunk@34936 -
2016-11-20 18:00:01 +00:00
Jonas Maebe
110a5642c0
- removed ait_weak/tai_weak, and replaced it with the previously existing
...
asd_weak_reference/asd_weak_definition directives
git-svn-id: trunk@32879 -
2016-01-07 22:05:38 +00:00
florian
aadcf9f6bc
* do not convert JMP into RJMP in assembler blocks, resolves issue #280208
...
git-svn-id: trunk@30936 -
2015-05-30 16:17:24 +00:00
florian
634a25d9f6
* cosmetics
...
git-svn-id: trunk@30731 -
2015-04-26 19:35:32 +00:00
florian
652f623983
* mulsu opcode spelling fixed
...
* handling mulsu in taicpu.spilling_get_operation_type
git-svn-id: trunk@30729 -
2015-04-26 16:08:52 +00:00
florian
58c66b4759
* the mul instructions do not modify the operands
...
git-svn-id: trunk@30633 -
2015-04-17 20:15:10 +00:00
florian
66e97549b9
* replace jmp by rjmp if possible, resolves issue #27885
...
git-svn-id: trunk@30632 -
2015-04-17 20:14:18 +00:00
florian
9af36c2257
* several fixes for spilling_get_operation_type
...
git-svn-id: trunk@30517 -
2015-04-09 20:33:40 +00:00
Jonas Maebe
8445381929
* merged ait_set and ait_thumb_set into a single tai class
...
(tai_symbolpair)
git-svn-id: trunk@30197 -
2015-03-14 18:35:28 +00:00
florian
c72d5a557a
* improve spilling_get_operation_type for avr
...
git-svn-id: trunk@28745 -
2014-10-04 18:14:40 +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
e33550b67d
Added support for X,Y,and Z register aliases plus low/high forms, and post-incrementation in AVR assembler reader.
...
Cleaned up parameter and funcretloc information generation in AVR paramanger, and made it closer to GCC's calling convention.
Fixed a number of codegenerator bugs generating invalid or broken instructions: CP operands were swapped, a number of instructions had immediate operands, and stack frame epilogue wasn't complete.
Added a bunch of peephole optimizations that clears the generated code up a lot.
git-svn-id: trunk@26925 -
2014-03-02 15:37:24 +00:00
florian
0e7e45d423
* avoid warnings in the avr code generator
...
git-svn-id: trunk@20015 -
2012-01-08 20:10:59 +00:00
florian
cf0d808708
+ avr assemblers do not convert automatically cond. branches with too large jump distances into an unconditional branch and a reverse condition branch, so fpc does this now
...
git-svn-id: trunk@18837 -
2011-08-24 22:29:50 +00:00
florian
a6464c36e3
* push reads the register
...
* concatcopy for len>=16 implemented
git-svn-id: branches/avr@17102 -
2011-03-09 19:40:07 +00:00
florian
53ee505d84
* fixed spilling
...
* fixed register assignment for instructions requiring a register>R15
git-svn-id: branches/avr@17046 -
2011-02-27 21:10:31 +00:00
florian
ef699b1864
+ avr flag and condition handling
...
git-svn-id: trunk@17016 -
2011-02-26 20:15:03 +00:00
florian
db2600d40b
+ first primitive concatcopy implementation
...
+ implemented op_const_reg and load_const_reg
+ implemented op_reg_reg
* set register info values correctly
git-svn-id: trunk@17014 -
2011-02-26 20:13:19 +00:00
florian
bc73f9021c
Merged revisions 5891-10167,10169-10180 via svnmerge from
...
http://svn.freepascal.org/svn/fpc/branches/avr
........
r5891 | florian | 2007-01-11 17:30:12 +0100 (Do, 11 Jan 2007) | 2 lines
+ some initial work
........
r10170 | florian | 2008-02-03 11:02:04 +0100 (So, 03 Feb 2008) | 2 lines
* continued to work on avr port
........
r10180 | florian | 2008-02-03 15:29:30 +0100 (So, 03 Feb 2008) | 2 lines
+ a lot of skeleton code for avr added
........
git-svn-id: trunk@10186 -
2008-02-03 17:21:52 +00:00