Commit Graph

423 Commits

Author SHA1 Message Date
ccrause
7822a90e20 Increase reference count of jump label, fixes #39784 2022-06-18 12:28:36 +00:00
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
0ae45bd2cf + AVR: track flag usage
+ AVR: take care of allocated flags when spilling
  * AVR: trgcpu.do_spill_read might also use ADIW
2022-05-01 22:42:57 +02:00
florian
038230bbea * AVR: use adiw to create spilling constants if possible
* AVR: insert allocations for registers used by spilling so the assembler optimizer does not remove spilling code
2022-05-01 22:42:57 +02:00
florian
46b52d92d3 + AVR: helpers take care of ADIW 2022-05-01 22:42:57 +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
33eef1f9b1 * AVR: moved MovMov2Movw optimization into pass2 as it might prevent other optimizations 2022-04-25 22:18:37 +02:00
florian
9695dba4d9 * AVR: fix TCpuAsmOptimizer.InstructionLoadsFromReg for MOVW
* simplify code for MovMov2Movw optimization
2022-04-24 22:42:09 +02:00
florian
49edb0b606 * AVR: fix TAoptBaseCpu.RegModifiedByInstruction, resolves #39623 2022-04-24 22:41:10 +02:00
florian
e87c52d7dc * otherwise => else 2022-04-24 22:40:07 +02:00
ccrause
6df2eb5fd4 Extra code generation options for shift with compile time constant. 2022-03-30 20:48:52 +00: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
6f749cf43d * first part to fix #39603 2022-02-27 23:20:07 +01:00
florian
ff3acfb8cd * cleanup of 2.7.0 defines 2021-10-31 13:20:28 +01:00
florian
c28995494c * reverted wrongly committed file 2021-09-01 09:31:14 +02:00
florian
9526fc64cd + Aarch64: FMovFMov2FMov 2 optimization 2021-09-01 09:31:14 +02: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
aec49340a3 * patch by Christo Crause, resolves #38961, fixes the following formatting and spelling problems in the AVR compiler files:
- Change spelling of AM_PREDRECEMENT to AM_PREDECREMENT
    - Fix multiline comment style to use {}
    - Fix indenting of code in method tcgavr.g_concatcopy

git-svn-id: trunk@49474 -
2021-06-04 20:16:25 +00:00
florian
9d6ceda532 * patch by Christo Crause: do not generate LDD for avrtiny, resolves #38958
git-svn-id: trunk@49473 -
2021-06-03 18:48:40 +00:00
florian
c43d8e4adf * indention fixed
git-svn-id: trunk@49379 -
2021-05-18 19:13:49 +00:00
florian
430b2fd791 * AVR: second part of assembler optimizer rework
git-svn-id: trunk@49378 -
2021-05-18 19:13:13 +00:00
florian
6f1d965dac * first part of AVR assembler optimizer reword
git-svn-id: trunk@49377 -
2021-05-17 20:02:12 +00:00
florian
bc21634b46 * AVR: made avr_des intrinsic more usefull
git-svn-id: trunk@49362 -
2021-05-13 18:59:28 +00:00
florian
022a9b210f + AVR: avr_des intrinsic
git-svn-id: trunk@49353 -
2021-05-13 09:26:53 +00:00
florian
9bfc731bb6 + AVR: MovOp2Op 2 optimization
git-svn-id: trunk@49350 -
2021-05-12 19:20:10 +00:00
florian
5e1e6c24a4 * patch by Christo Crause: handle references to absolute address 0 correctly, resolves #38861
git-svn-id: trunk@49344 -
2021-05-07 16:19:05 +00:00
florian
05cf47f995 * AVR: fixed TCpuAsmOptimizer.RegLoadedWithNewValue
git-svn-id: trunk@49126 -
2021-04-06 11:49:48 +00:00
yury
4fa99cff62 * Removed more assigned but unused vars.
git-svn-id: trunk@48392 -
2021-01-24 14:05:21 +00:00
yury
0a021be803 * Corrected visibility of overridden methods.
git-svn-id: trunk@48385 -
2021-01-24 12:41:12 +00:00
yury
64c586b86d * Removed/ifdefed lots of unused variables.
git-svn-id: trunk@48384 -
2021-01-24 12:24:01 +00:00
florian
3482121831 * patch by Christo Crause: Fix missed optimization opportunities, resolves #38285
git-svn-id: trunk@47925 -
2020-12-31 15:33:39 +00:00
florian
fa54335938 * patch by Christo Crause to fix illegal ldd generation for avrtiny, resolves #37929
git-svn-id: trunk@47118 -
2020-10-16 20:01:40 +00:00
florian
637976e83f * patch by Marģers to unify internal error numbers, resolves #37888
git-svn-id: trunk@47103 -
2020-10-13 19:59:01 +00:00
florian
b8c707ed7e * patch by Christo Crause: r0, r1 are no volatile registers for avr tiny
git-svn-id: trunk@47102 -
2020-10-12 19:43:24 +00:00
florian
e47f44234c * AVR: MovMov2Mov 2 optimization
git-svn-id: trunk@47035 -
2020-10-02 20:13:17 +00:00
florian
28f25b2df0 * reworked usage of tcgnotnode.handle_locjump
git-svn-id: trunk@46275 -
2020-08-05 21:15:32 +00:00
Jonas Maebe
eb7ba1690e * mark all external assemblers using an LLVM tool using af_llvm
+ added support for constructing target triplets
  * pass "-target triplet" when using an LLVM assembler
   o removed no longer needed $DARWINVERSION and $ARCH parameters
  * consistently use as_clang_gas when clang is used to assembler GAS-style
    assembly, and rename as_llcm_clang to as_clang_llvm (for consistency)
  * support pipe assembling when using clang on *nix in all cases

git-svn-id: trunk@45807 -
2020-07-19 14:30:35 +00:00
florian
37a3b542e6 * avr: patch by Christo Crause: replace findreg_by_gasname with gas_regname_table, resolves #37131
git-svn-id: trunk@45509 -
2020-05-26 19:52:19 +00:00
nickysn
29d681168a * merged the z80 branch
git-svn-id: trunk@45143 -
2020-04-27 20:07:54 +00:00
florian
a084c8829f * patch by J. Gareth Moreton: refactor RemoveCurrentP
git-svn-id: trunk@45142 -
2020-04-27 19:27:16 +00:00
nickysn
3d81dd0b00 * ReplaceForbiddenAsmSymbolChars renamed ApplyAsmSymbolRestrictions, because now it also applies the
label length limit

git-svn-id: branches/z80@45085 -
2020-04-26 10:42:07 +00:00
nickysn
a8fe46c0f5 + introduced labelmaxlen in tasminfo and added code in ReplaceForbiddenAsmSymbolChars that limits the
output label to that length

git-svn-id: branches/z80@45066 -
2020-04-25 12:59:25 +00:00
nickysn
599b7e80c0 * fix for OP_ROR in tcgavr.a_op_reg_reg_internal
git-svn-id: trunk@44749 -
2020-04-17 17:19:22 +00:00
florian
fc50edfe31 * AVR: couple of fixes for CPUs with only 16 registers
git-svn-id: trunk@44177 -
2020-02-14 21:27:43 +00:00
florian
0424c2a658 * remove accidently committed debug code
git-svn-id: trunk@44175 -
2020-02-14 20:59:32 +00:00
florian
fd4fb5fa19 * 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 -
2020-02-12 20:43:13 +00:00
florian
2135b9b724 * for avr1, do not save registers during an interrupt procedure, as it has no memory to store them
git-svn-id: trunk@44139 -
2020-02-09 14:35:56 +00:00