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
e733efbbc2
* proper tavrprocinfo.calc_stackframe_size
...
git-svn-id: trunk@30597 -
2015-04-14 20:48:13 +00:00
florian
cf58a7ad60
* cosmetics
...
git-svn-id: trunk@30595 -
2015-04-14 20:47:26 +00:00
florian
b84657980d
* make OS_INT/OS_SINT 8 Bit on avr, should work better on avr, resolves #27840
...
git-svn-id: trunk@30593 -
2015-04-14 18:51:21 +00:00
florian
e559b9e3d6
+ tavrshlshrnode.second_integer, does not convert the right operand to a bigger type, resolves #27841
...
git-svn-id: trunk@30579 -
2015-04-13 20:57:37 +00:00
florian
8b7a449cf1
* clear r1 after 8 Bit multiplication, resolves #27838
...
git-svn-id: trunk@30578 -
2015-04-13 20:15:30 +00:00
florian
4d01271944
* due to avr's harvard architecture, loads of code labels need to use the gs(...) macro
...
git-svn-id: trunk@30559 -
2015-04-12 20:29:13 +00:00
florian
1f20a52c85
* fix typo in comparison with constant code
...
git-svn-id: trunk@30556 -
2015-04-12 15:42:40 +00:00
florian
bd803769b8
* fix compilation
...
git-svn-id: trunk@30554 -
2015-04-12 14:58:41 +00:00
florian
9559dabe51
* function result is in r24:r25
...
git-svn-id: trunk@30549 -
2015-04-11 21:25:05 +00:00
florian
e34bd746ed
* patch by Jeppe Johanse to take care of the fact that push is post-decrement on avr
...
git-svn-id: trunk@30548 -
2015-04-11 20:59:27 +00:00
florian
1ef7e36f3c
* some fixes for handling parameters passed on the stack
...
git-svn-id: trunk@30545 -
2015-04-11 13:56:21 +00:00
florian
276d97f653
* generate better code for comparisons with constants
...
git-svn-id: trunk@30543 -
2015-04-11 13:52:29 +00:00
florian
4b7ae00620
* fixes several issues with parameter handling on avr
...
git-svn-id: trunk@30541 -
2015-04-11 11:13:20 +00:00
florian
03fa8336de
o several avr fixes
...
* handle function result of FPC_MUL_WORD correctly
* use mov ...,r1 to load a register with zero instead of clr ..., this might enable the register allocator to
coalesce these moves in the feature
* use tst/dec instead of cpi/sub in the shifting loops, this reduces register pressure on r16 and higher
git-svn-id: trunk@30540 -
2015-04-11 11:08:01 +00:00
florian
315d7d9725
+ do_spill_replace for avr
...
git-svn-id: trunk@30535 -
2015-04-10 22:14:36 +00:00
florian
a4c7103033
* remove useless mov instructions
...
git-svn-id: trunk@30522 -
2015-04-09 21:57:02 +00:00
florian
ef2e2c5033
* assign registers for parameters correctly, resolves #27804
...
git-svn-id: trunk@30520 -
2015-04-09 20:39:18 +00:00
florian
6a032bee1b
* improved code generation for a_load_const_reg and a_op_const_reg
...
git-svn-id: trunk@30519 -
2015-04-09 20:38:19 +00:00
florian
061a1aacf3
* named class properly
...
git-svn-id: trunk@30518 -
2015-04-09 20:36:47 +00:00
florian
9af36c2257
* several fixes for spilling_get_operation_type
...
git-svn-id: trunk@30517 -
2015-04-09 20:33:40 +00:00
florian
63bf17440c
* use volatile registers first
...
* fix some range check errors
git-svn-id: trunk@30444 -
2015-04-05 19:17:24 +00:00
florian
db63693b7e
* tai returned by GetNextInstructionUsingReg must be checked if it is really an instruction
...
git-svn-id: trunk@30443 -
2015-04-05 19:12:43 +00:00
florian
2b9c0ef3b4
- jmp_instructions shouldn't include call/ret instructions
...
git-svn-id: trunk@30442 -
2015-04-05 19:11:40 +00:00
Jonas Maebe
61e4a1b811
+ added tasmlist parameter to getintparaloc() (needed for llvm)
...
git-svn-id: trunk@30429 -
2015-04-04 14:29:16 +00:00
Jeppe Johansen
8c105d4c97
Fix off by 8 error.
...
git-svn-id: trunk@30393 -
2015-03-30 12:03:18 +00:00
Jeppe Johansen
7fe4b13248
Fix broken peephole optimization that was testing the wrong register for modifications.
...
Fix tests on unsigned values. The flags were swapped.
git-svn-id: trunk@30392 -
2015-03-30 11:17:38 +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
873d88ba57
* fix 8 Bit*8 Bit multiplication according to #27737 using modified code supplied by Georg Hieber
...
git-svn-id: trunk@30381 -
2015-03-29 19:58:30 +00:00
florian
ad995eb121
* use correctly CALL/RCALL and JMP/RJMP on avr, resolves #27738
...
git-svn-id: trunk@30372 -
2015-03-29 18:26:32 +00:00
Jonas Maebe
bd203a5b57
* synchronised with trunk till r30240
...
git-svn-id: branches/hlcgllvm@30241 -
2015-03-15 19:44:58 +00:00
florian
38a72f2ddb
* renamed arm->avr to match the cpu
...
git-svn-id: trunk@30237 -
2015-03-15 15:10:37 +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
Jonas Maebe
67b8aceaee
* synchronized with privatetrunk till r30095
...
git-svn-id: branches/hlcgllvm@30101 -
2015-03-05 20:32:15 +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
c72d5a557a
* improve spilling_get_operation_type for avr
...
git-svn-id: trunk@28745 -
2014-10-04 18:14:40 +00:00
florian
6b7557924e
* fix assignintreg on avr
...
git-svn-id: trunk@28744 -
2014-10-04 18:14:11 +00:00
Károly Balogh
d22dc68fda
* fixed DFA warnings for MIPS and AVR
...
git-svn-id: trunk@28502 -
2014-08-20 15:05:43 +00:00
Károly Balogh
0cf7357ee2
* fix GetResFlags DFA optimizer warning on Sparc and AVR too
...
git-svn-id: trunk@28500 -
2014-08-20 13:52:28 +00:00
Jonas Maebe
b18ba8e85b
* syncrhonised with trunk up till r28471
...
git-svn-id: branches/hlcgllvm@28495 -
2014-08-19 20:23:11 +00:00
Jonas Maebe
b745dcc64c
* moved g_external_wrapper() to the hlcg, and also g_intf_wrapper() because
...
for some platforms it depends on that routine
git-svn-id: branches/hlcgllvm@28492 -
2014-08-19 20:22:54 +00:00
Jonas Maebe
7e3abd4b38
* fixed warning about signed integer to pointer conversion
...
git-svn-id: trunk@28460 -
2014-08-18 23:00:53 +00:00
Jonas Maebe
e7ac66a6c4
* removed nested comments
...
git-svn-id: trunk@28457 -
2014-08-18 22:34:35 +00:00
Jonas Maebe
5c75b6dd6b
* synchronised with trunk up till r28402
...
git-svn-id: branches/hlcgllvm@28403 -
2014-08-13 16:04:30 +00:00
sergei
e4fea2ebc8
* Dummy implementations of a_bit_scan_reg_reg and g_stackpointer_alloc in tcg, removes the need to override these methods in every descendant code generator solely to avoid "constructing a class with abstract method" warning.
...
git-svn-id: trunk@28175 -
2014-07-06 11:34:04 +00:00
Jonas Maebe
1516661249
+ new chlcgobj class reference variable that can be used to call thlcg*
...
virtual methods even when hlcg doesn't contain a valid instance
git-svn-id: branches/hlcgllvm@28143 -
2014-07-03 22:28:31 +00:00
Jonas Maebe
bacd303208
* synchronized with trunk up to r27758
...
git-svn-id: branches/hlcgllvm@27779 -
2014-05-12 16:12:34 +00:00
svenbarth
02495c17bd
Fix a typo. The CPU specific version of "ttypesym" should be called "tcputypesym" and not "tcpuypesym".
...
git-svn-id: trunk@27531 -
2014-04-11 14:30:59 +00:00