Jonas Maebe
ac43eb9b70
+ generic implementation of ReplaceForbiddenAsmSymbolChars() instead
...
of the AVR-specific ifdef'ed variant
o since the only special character we use in mangled names on all platforms
is $, added a new field to tasminfo called "dollarsign" that holds the
character $'s should be replaced with (if it doesn't have to be replaced,
leave it at $)
git-svn-id: trunk@20801 -
2012-04-11 18:01:57 +00:00
florian
2f5ce095ce
* RefsHaveIndexReg -> cpurefshaveindexreg
...
* cpurefshaveindexreg defined properly in fpcdefs.inc
git-svn-id: trunk@20504 -
2012-03-10 19:43:52 +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
f1f0cb033a
* move ReplaceForbiddenChars to cpubase of avr so it can be used in dbgstabs as well
...
* tried to fix dbgstabs so that it doesn't emit illegal chars using ReplaceForbiddenChars, however, dbgstabs accesses symbol names quite often, so this failed
git-svn-id: trunk@18972 -
2011-09-04 19:36:43 +00:00
florian
0066a12974
* makes a_jmp_cond working
...
git-svn-id: trunk@18969 -
2011-09-04 18:47:08 +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
florian
6005ec2c91
+ a_jmp_cond implemented
...
git-svn-id: trunk@18840 -
2011-08-25 18:27:33 +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
ff5f311b34
- removed no more used constants
...
git-svn-id: trunk@18199 -
2011-08-13 20:54:01 +00:00
florian
98d3007580
+ support to parse hi8/lo8(...) in inline assembler
...
git-svn-id: trunk@18009 -
2011-07-17 16:26:57 +00:00
florian
04e2321724
* avr cpuflags renames
...
+ cpuflagsstr
git-svn-id: trunk@18007 -
2011-07-17 08:55:16 +00:00
florian
b0cef1693a
* compilation of system unit was broken
...
git-svn-id: trunk@17972 -
2011-07-10 21:03:55 +00:00
pierre
37b98917e0
* Handle invalid register correctly
...
git-svn-id: trunk@17894 -
2011-07-01 11:52:37 +00:00
florian
26850e3425
* fix full cycle after adding new boolean types
...
git-svn-id: branches/pasboolxx@17847 -
2011-06-27 20:11:08 +00:00
florian
5231d109ba
* fullcycle fixed
...
git-svn-id: trunk@17475 -
2011-05-15 19:13:49 +00:00
florian
eb2a2a5ea0
+ implements tavraddnode.second_cmpsmallset
...
git-svn-id: branches/avr@17295 -
2011-04-10 18:52:56 +00:00
florian
8cfbb70326
+ generic a_cmp_const_reg_label
...
git-svn-id: branches/avr@17294 -
2011-04-10 18:52:37 +00:00
florian
ebe8078263
* compilation fixed
...
git-svn-id: branches/avr@17293 -
2011-04-10 18:43:44 +00:00
florian
7b8f3a61d3
+ implemented tcgavr.g_flags2reg
...
git-svn-id: branches/avr@17290 -
2011-04-10 18:39:51 +00:00
florian
ed8d652398
+ implemened a_cmp_reg_reg_label
...
git-svn-id: branches/avr@17289 -
2011-04-10 18:39:07 +00:00
florian
5fd4bb70de
* started to implement ref.base parameter for normalize_ref
...
git-svn-id: branches/avr@17288 -
2011-04-10 18:38:06 +00:00
florian
a0b0b43d0c
+ implemented tcgavr.a_jmp_name
...
* updated todos
git-svn-id: branches/avr@17287 -
2011-04-10 18:37:26 +00:00
florian
8d960cb608
+ implementation of shifting operations for avr
...
* handle shl/shr operand size correctly
git-svn-id: branches/avr@17109 -
2011-03-09 19:48:01 +00:00
florian
d4ff3b2eb6
* forgotten file in previous commit
...
git-svn-id: branches/avr@17107 -
2011-03-09 19:46:42 +00:00
florian
c7e6d07ff0
* fix tavraddnode.second_cmp
...
* optimized register usage
+ implemented concatcopy for len<16
git-svn-id: branches/avr@17106 -
2011-03-09 19:46:05 +00:00
florian
8f343078fa
* optimize moves into movw if possible
...
* use ldd instruction if possible
git-svn-id: branches/avr@17105 -
2011-03-09 19:42:15 +00:00
florian
de2d504f15
+ dedicated getaddressregister so address registers are allocated with size OS_ADDR
...
* allocate volatile register first
* start with R8 so allocation might be pair wise
git-svn-id: branches/avr@17103 -
2011-03-09 19:40:57 +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
1cc956afc8
+ implements tcgavr.a_loadaddr_ref_reg
...
git-svn-id: branches/avr@17101 -
2011-03-09 19:38:59 +00:00
florian
0302c7181e
* AVR: use LDS/LD and STS/ST depending on the reference
...
git-svn-id: branches/avr@17052 -
2011-02-27 21:13:25 +00:00
florian
a178f34ab3
+ avr processor type information
...
git-svn-id: branches/avr@17051 -
2011-02-27 21:13:07 +00:00
florian
86f587b02f
+ added more avr instructions
...
git-svn-id: branches/avr@17050 -
2011-02-27 21:12:19 +00:00
florian
e95bf26148
* avr stackframe generation improved
...
git-svn-id: branches/avr@17048 -
2011-02-27 21:11:40 +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
93e72b7e8a
* fixed normalize_ref
...
git-svn-id: branches/avr@17045 -
2011-02-27 21:09:41 +00:00
florian
d060e199f4
* 64 bit comparisations fixed
...
git-svn-id: branches/avr@17043 -
2011-02-27 21:08:44 +00:00
florian
b6530f253a
* fixed reference writing for avr
...
git-svn-id: branches/avr@17042 -
2011-02-27 21:07:25 +00:00
florian
b870a6eff5
* started to fix parameter passing
...
* fixed entry/exit code generation
git-svn-id: branches/avr@17041 -
2011-02-27 21:05:53 +00:00
florian
26415e9903
* as avr doesn't like $ in symbols, use ReplaceForbiddenChars to replace them
...
git-svn-id: branches/avr@17040 -
2011-02-27 21:04:18 +00:00
florian
dc0638c4d2
* corrected volatile registers for avr
...
git-svn-id: branches/avr@17039 -
2011-02-27 21:03:28 +00:00
florian
7b9276ae8a
+ implementation of avr rtl helpers
...
+ avr: fixed writing of constants in assembler
* avr: fixed reading of constants in assembler
* avr: determine used registers at procedure exit properly
* changed project name to ppavr
git-svn-id: branches/avr@17032 -
2011-02-26 21:04:56 +00:00
florian
acac3ce37c
* dummy fix for concatcopy
...
git-svn-id: branches/avr@17028 -
2011-02-26 21:00:58 +00:00
florian
f419966f06
+ generic second_int_to_bool, depends on OP_OR setting flags
...
git-svn-id: branches/avr@17024 -
2011-02-26 20:58:48 +00:00
florian
27f1abb58b
* clean up and nicer todos
...
git-svn-id: branches/avr@17023 -
2011-02-26 20:58:13 +00:00
florian
d5455cf6ac
+ software multiplication support for OS_16,OS_S16,OS_32,OS_S32
...
git-svn-id: branches/avr@17020 -
2011-02-26 20:33:01 +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
fd97ce0109
* removed some arm overlefts
...
git-svn-id: trunk@17010 -
2011-02-26 20:09:21 +00:00
florian
26ce3cef00
* compilation fixes
...
* completed a_load_ref_reg
+ implemented procedure entry/exit code generation
+ implemented a_load_reg_ref
git-svn-id: trunk@17009 -
2011-02-26 20:08:23 +00:00
florian
8b245369e1
+ implemented normalize_ref
...
git-svn-id: trunk@17008 -
2011-02-26 20:03:39 +00:00