Commit Graph

179 Commits

Author SHA1 Message Date
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