---
commit c18141d3bac790885c68d2b7fa6e99559557460d
Author: Georg-Johann Lay
Date: Thu May 23 10:40:00 2024 +0200
AVR: Mention devices added in v13.3
diff --git a/htdocs/gcc-13/changes.html b/htdocs/gcc-13/changes.html
index 88b76c49..d431c768 100644
--- a/htdocs/gcc-13/changes.html
+++ b/htdocs/gcc-13/changes.html
Applied as obvious,
Johann
--
Author: Wolfgang Hospital
Date: Sat May 18 15:02:51 2024 +0200
AVR: target/115065 - Tweak __clzhi2.
The libgcc implementation of __clzhi2 can be tweaked by
one cycle in some situations by re-arranging the instructions.
It also reduces the WCET
https://gcc.gnu.org/g:3b88dade7ff8a07fd0843ac1281e095cfd94453e
commit r14-10217-g3b88dade7ff8a07fd0843ac1281e095cfd94453e
Author: Wolfgang Hospital
Date: Sat May 18 15:02:51 2024 +0200
AVR: target/115065 - Tweak __clzhi2.
The libgcc implementation of __clzhi2 can be tweaked by
https://gcc.gnu.org/g:988838da722dea09bd81ee9d49800a6f24980372
commit r15-645-g988838da722dea09bd81ee9d49800a6f24980372
Author: Wolfgang Hospital
Date: Sat May 18 15:02:51 2024 +0200
AVR: target/115065 - Tweak __clzhi2.
The libgcc implementation of __clzhi2 can be tweaked by
https://gcc.gnu.org/g:fcdd723779f9ad9af9638e11ffe56786de2d02ce
commit r14-10194-gfcdd723779f9ad9af9638e11ffe56786de2d02ce
Author: Georg-Johann Lay
Date: Wed May 8 17:52:56 2024 +0200
AVR: target/114981 - Tweak __builtin_powif / __powisf2
Implement __powisf2 in assembly
https://gcc.gnu.org/g:af64af69c3cc85dbe00c520651a54850bf5cadc1
commit r15-360-gaf64af69c3cc85dbe00c520651a54850bf5cadc1
Author: Georg-Johann Lay
Date: Wed May 8 17:52:56 2024 +0200
AVR: target/114981 - Tweak __builtin_powif / __powisf2
Implement __powisf2 in assembly
https://gcc.gnu.org/g:4ef09dd8ce8866e4f64dd918890c97a67af8fd15
commit r14-10187-g4ef09dd8ce8866e4f64dd918890c97a67af8fd15
Author: Georg-Johann Lay
Date: Tue May 7 19:39:55 2024 +0200
AVR: target/114975 - Add combine-pattern for __popcountqi2.
PR target/114975
gcc
https://gcc.gnu.org/g:bbb76ac0a06ae3a469f2acc2d5d63e63160bd9e5
commit r14-10188-gbbb76ac0a06ae3a469f2acc2d5d63e63160bd9e5
Author: Georg-Johann Lay
Date: Tue May 7 19:42:30 2024 +0200
AVR: target/114975 - Add combine-pattern for __parityqi2.
PR target/114975
gcc
https://gcc.gnu.org/g:a9e313ed38775b3ffee650d5396419ce3e6ea389
commit r14-10186-ga9e313ed38775b3ffee650d5396419ce3e6ea389
Author: Georg-Johann Lay
Date: Wed May 8 17:56:05 2024 +0200
AVR: target/114981 - Support __builtin_powi[l] / __powidf2.
This supports __powidf2 by means
https://gcc.gnu.org/g:adba85bb63a45d7d668501c11bdf9772cc00b7b8
commit r13-8736-gadba85bb63a45d7d668501c11bdf9772cc00b7b8
Author: Georg-Johann Lay
Date: Wed May 8 17:56:05 2024 +0200
AVR: target/114981 - Support __builtin_powi[l] / __powidf2.
This supports __powidf2 by means
https://gcc.gnu.org/g:de4eea7d7ea86e54843507c68d6672eca9d8c7bb
commit r15-331-gde4eea7d7ea86e54843507c68d6672eca9d8c7bb
Author: Georg-Johann Lay
Date: Wed May 8 17:56:05 2024 +0200
AVR: target/114981 - Support __builtin_powi[l] / __powidf2.
This supports __powidf2 by means
This adds __powidf2 as a wrapper in LibF7.
Johann
--
avr: target/114981 - Support __builtin_powi[l] / __powidf2.
This supports __powidf2 by means of a double wrapper for already
existing f7_powi (renamed to __f7_powi by f7-renames.h).
It tweaks the implementation so that it does not perform
__builtin_powif is currently implemented in C,
and this patch implements it (__powisf2) in assembly.
Ok for master?
Johann
--
AVR: target/114981 - Tweak __powisf2
Implement __powisf2 in assembly.
PR target/114981
libgcc/
* config/avr/t-avr (LIB2FUNCS_EXCLUDE): Add _powisf2.
https://gcc.gnu.org/g:41bc359c322d45ec1adfb51f7a45c7ef02ce6ca9
commit r15-318-g41bc359c322d45ec1adfb51f7a45c7ef02ce6ca9
Author: Georg-Johann Lay
Date: Tue May 7 19:42:30 2024 +0200
AVR: target/114975 - Add combine-pattern for __parityqi2.
PR target/114975
gcc
https://gcc.gnu.org/g:c8f4bbb824fafecf021a802324cd79e64b03b947
commit r15-317-gc8f4bbb824fafecf021a802324cd79e64b03b947
Author: Georg-Johann Lay
Date: Tue May 7 19:39:55 2024 +0200
AVR: target/114975 - Add combine-pattern for __popcountqi2.
PR target/114975
gcc
Add a pattern for better popcount detection.
Ok for master?
Johann
--
AVR: target/114975 - Add combine-pattern for __popcountqi2.
PR target/114975
gcc/
* config/avr/avr.md: Add combine pattern for
8-bit popcount detection.
gcc/testsuite/
*
Add a combine pattern for parity detection.
Ok for master?
Johann
AVR: target/114975 - Add combine-pattern for __parityqi2.
PR target/114975
gcc/
* config/avr/avr.md: Add combine pattern for
8-bit parity detection.
gcc/testsuite/
*
https://gcc.gnu.org/g:8d2c93fcfe1afc5291bbbe162c3b7ad5764f6d8d
commit r15-286-g8d2c93fcfe1afc5291bbbe162c3b7ad5764f6d8d
Author: Wolfgang Hospital
Date: Tue May 7 16:24:39 2024 +0200
AVR: target/114835 - Tweak popcountqi2
libgcc/
PR target/114835
*
Applied this tweak as proposed in the PR.
Johann
--
commit 6b73a9879a4503ebee2cb1a3ad243f60c922ca31
Author: Wolfgang Hospital
Date: Tue May 7 16:24:39 2024 +0200
AVR: target/114835 - Tweak popcountqi2
libgcc/
PR target/114835
* config/avr/lib1funcs.S
https://gcc.gnu.org/g:ef10d72003f87ab2d88c852da75d407c0c990e99
commit r12-10419-gef10d72003f87ab2d88c852da75d407c0c990e99
Author: Georg-Johann Lay
Date: Tue May 7 14:00:43 2024 +0200
AVR: Backport device support from v13.3.
gcc/
* config/avr/avr-mcus.def: Add new MCUs
https://gcc.gnu.org/g:231728b6dd7684e031f2a05e7e43bab54b7f2c5e
commit r12-10418-g231728b6dd7684e031f2a05e7e43bab54b7f2c5e
Author: Georg-Johann Lay
Date: Fri May 3 18:47:50 2024 +0200
AVR: ipa/92606 - Don't optimize PROGMEM data against non-PROGMEM.
ipa/92606: Inter-procedural
https://gcc.gnu.org/g:c6141ad24f73cf1771e33c7d7edf1d80d8df70b8
commit r14-10175-gc6141ad24f73cf1771e33c7d7edf1d80d8df70b8
Author: Georg-Johann Lay
Date: Fri May 3 18:47:50 2024 +0200
AVR: ipa/92606 - Don't optimize PROGMEM data against non-PROGMEM.
ipa/92606: Inter-procedural
https://gcc.gnu.org/g:287293786d541217e7bf47cab6b8fb522ae9156a
commit r13-8699-g287293786d541217e7bf47cab6b8fb522ae9156a
Author: Georg-Johann Lay
Date: Fri May 3 18:47:50 2024 +0200
AVR: ipa/92606 - Don't optimize PROGMEM data against non-PROGMEM.
ipa/92606: Inter-procedural
https://gcc.gnu.org/g:08e752e72363ae7fd5a5fcb70913a0f7b240387b
commit r15-207-g08e752e72363ae7fd5a5fcb70913a0f7b240387b
Author: Georg-Johann Lay
Date: Fri May 3 18:47:50 2024 +0200
AVR: ipa/92606 - Don't optimize PROGMEM data against non-PROGMEM.
ipa/92606: Inter-procedural
Applied to fix this long standing wrong-code bug.
Johann
--
AVR: ipa/92606 - Don't optimize PROGMEM data against non-PROGMEM.
ipa/92606: Inter-procedural analysis optimizes data across
address-spaces and PROGMEM. As of v14, the PROGMEM part is
still not fixed (and there is still no target
Am 22.04.24 um 12:04 schrieb Jonathan Wakely:
OK for wwwdocs?
For me it's ok (I am not a native speaker though,
which is the reason the typos are there to begin with).
Johann
htdocs/gcc-14/changes.html | 16
1 file changed, 8 insertions(+), 8 deletions(-)
diff --git
https://gcc.gnu.org/g:7bd8428da72a0a1d3bef4e50be4b60b981ed540d
commit r13-8638-g7bd8428da72a0a1d3bef4e50be4b60b981ed540d
Author: Georg-Johann Lay
Date: Sun Apr 21 14:33:50 2024 +0200
AVR: target/114794 - Tweak __udivmodqi4
libgcc/
PR target/114794
* config
https://gcc.gnu.org/g:a44d16efa7a508f8b8f303417d0714c39f159725
commit r14-10058-ga44d16efa7a508f8b8f303417d0714c39f159725
Author: Georg-Johann Lay
Date: Sun Apr 21 14:33:50 2024 +0200
AVR: target/114794 - Tweak __udivmodqi4
libgcc/
PR target/114794
Instead of jumping to a place that ROLs r_arg1 (with C=0),
LSL r_arg1 can be performed prior to the loop. This
reduces the number of loopings from 9 to 8.
Applied as obvious.
Johann
AVR: target/114794 - Tweak __udivmodqi4
libgcc/
PR target/114794
* config/avr/lib1funcs.S
https://gcc.gnu.org/g:ca7d454804045a39d10a9b1f691a940aeacdf25b
commit r13-8616-gca7d454804045a39d10a9b1f691a940aeacdf25b
Author: Georg-Johann Lay
Date: Wed Apr 17 10:26:05 2024 +0200
AVR: target/114752 - Fix ICE on inline asm const 64-bit float operand
gcc/
PR target
https://gcc.gnu.org/g:909c6faf2c726178d115726e56304eac91cff6e9
commit r14-10003-g909c6faf2c726178d115726e56304eac91cff6e9
Author: Georg-Johann Lay
Date: Wed Apr 17 10:26:05 2024 +0200
AVR: target/114752 - Fix ICE on inline asm const 64-bit float operand
gcc/
PR target
Applied as obvious
Johann
--
AVR: target/114752 - Fix ICE on inline asm const 64-bit float operand
gcc/
PR target/114752
* config/avr/avr.cc (avr_print_operand) [CONST_DOUBLE_P]:
Handle DFmode.
diff --git a/gcc/config/avr/avr.cc b/gcc/config/avr/avr.cc
index
https://gcc.gnu.org/g:f585f8f9081ddecad63fa654297811e434613e6c
commit r13-8611-gf585f8f9081ddecad63fa654297811e434613e6c
Author: Georg-Johann Lay
Date: Mon Apr 15 19:23:32 2024 +0200
AVR: Add 8 more avrxmega3 MCUs.
gcc/
* config/avr/avr-mcus.def: Add: avr16du14
Applied the following patch..
Johann
--
AVR: Add 8 more avrxmega3 MCUs.
gcc/
* config/avr/avr-mcus.def: Add: avr16du14, avr16du20,
avr16du28,
avr16du32, avr32du14, avr32du20, avr32du28, avr32du32.
* doc/avr-mmcu.texi: Rebuild.
diff --git
https://gcc.gnu.org/g:6e11bb451babfe47bb6b7ad42335019f2771a32e
commit r14-9977-g6e11bb451babfe47bb6b7ad42335019f2771a32e
Author: Georg-Johann Lay
Date: Mon Apr 15 19:23:32 2024 +0200
AVR: Add 8 more avrxmega3 MCUs.
gcc/
* config/avr/avr-mcus.def: Add: avr16du14
---
commit 2bdfd673b266343e7988fe2cd2b44a02c94dce09
Author: Georg-Johann Lay
Date: Tue Apr 9 11:55:29 2024 +0200
gcc-14: AVR: Note on silicon bug.
diff --git a/htdocs/gcc-14/changes.html b/htdocs/gcc-14/changes.html
index 1b345b32..ff69e859 100644
--- a/htdocs/gcc-14/changes.html
+++ b/htdocs/gcc-14/changes.html
@@ -584
https://gcc.gnu.org/g:65b7d1862e11784a0ce67ab758e06dd8aa65b181
commit r14-9630-g65b7d1862e11784a0ce67ab758e06dd8aa65b181
Author: Georg-Johann Lay
Date: Fri Mar 22 17:29:21 2024 +0100
AVR: Adjust message for SIGNAL and INTERRUPT usage
gcc/
* config/avr/avr.cc
Applied this patchlet for a more precise diagnostic.
Johann
--
AVR: Adjust message for SIGNAL and INTERRUPT usage
gcc/
* config/avr/avr.cc (avr_set_current_function): Adjust diagnostic
for deprecated SIGNAL and INTERRUPT usage without respective header.
diff --git
https://gcc.gnu.org/g:9361f19e081294b04e16ac2f6056b3b910f27ff4
commit r14-9514-g9361f19e081294b04e16ac2f6056b3b910f27ff4
Author: Georg-Johann Lay
Date: Mon Mar 18 08:50:02 2024 +0100
avr.md - Tweak xor insn constraints.
xor insn can handle some more values without the requirement
xor insn allows some more values without the requirement
of a scratch register. This patch adds new constraint
alternative for such values. The output function avr_out_bitop
already handles these cases, so no change is needed there.
Johann
--
avr.md - Tweak xor insn constraints.
xor insn
https://gcc.gnu.org/g:f5a805d82902fe2d6e0a7af8c0e6519f9d25a8f3
commit r14-9413-gf5a805d82902fe2d6e0a7af8c0e6519f9d25a8f3
Author: Georg-Johann Lay
Date: Sat Mar 9 13:07:17 2024 +0100
AVR: Fix typos in comment, indentation glitches in avr.md.
gcc/
* config/avr/avr.md
https://gcc.gnu.org/g:e8cc1f956b75a6bf74c5f5262ddced9451dcccac
commit r14-9410-ge8cc1f956b75a6bf74c5f5262ddced9451dcccac
Author: Georg-Johann Lay
Date: Sat Mar 9 10:00:44 2024 +0100
AVR: Add cost computation for some insn combine patterns.
gcc/
* config/avr/avr.cc
This adds cost computation for some insn combiner patterns
and improves a few other nits.
Johann
--
AVR: Add cost computation for some insn combine patterns.
gcc/
* config/avr/avr.cc (avr_rtx_costs_1) [PLUS]: Determine cost for
usum_widenqihi and add_zero_extend1.
https://gcc.gnu.org/g:40209cb15a3f2af8233ee887dc960992f358ad86
commit r14-9389-g40209cb15a3f2af8233ee887dc960992f358ad86
Author: Georg-Johann Lay
Date: Fri Mar 8 13:29:13 2024 +0100
AVR: Add an insn combine pattern for offset computation.
Computing uint16_t += 2 * uint8_t can
Computing uint16_t += 2 * uint8_t can occur when an offset
into a 16-bit array is computed. Without this pattern is costs
six instructions: A move (1), a zero-extend (1), a shift (2) and
an addition (2). With this pattern it costs 4.
Johann
--
AVR: Add an insn combine pattern for offset
Adjusted rtx costs of (plus (zero_extend (...)) reg).
Johann
--
AVR: Adjust rtx cost of plus + zero_extend.
gcc/
* config/avr/avr.cc (avr_rtx_costs_1) [PLUS+ZERO_EXTEND]: Adjust
rtx cost.
diff --git a/gcc/config/avr/avr.cc b/gcc/config/avr/avr.cc
index
Register alloc may expand a 3-operand arithmetic X = Y o CST as
X = CST
X o= Y
where it may be better to instead:
X = Y
X o= CST
Johann
--
AVR: Add two RTL peepholes.
Register alloc may expand a 3-operand arithmetic X = Y o CST as
X = CST
X o= Y
where it may be better to
Applied Roger's proposed improvements with some changes:
Lengthy code is more convenient in avr.cc than in an insn
output function, and it makes it easy to work out the exact
instruction length. Moreover, the code can handle shifts
with offset zero (cases of *and3 insns).
Passed with no new
This is a no-op patch that uses some more C++ / C99
features if possible.
Johann
--
AVR: Use more C++ ish coding style.
gcc/
* config/avr/avr.cc: Resolve ATTRIBUTE_UNUSED.
Use bool in place of int for boolean logic (if possible).
Move declarations to definitions (if
This addendum ports a corner case optimization from -mno-fuse-add
to -mfuse-add: When a base register needs temporal adjustment,
and the base is the frame pointer, then there are cases where the
post-adjustment is not needed.
Passes without new regressions on ATtiny40.
Johann
--
AVR: ad
Removed the last cc0 remains.
Johann
--
AVR: ad target/92792 - Remove insn attribute "cc" and its (dead) uses.
The backend has remains of cc0 condition code. Unfortunately,
all that information is useless with CCmode, and their use was
removed with the removal of NOTICE_UPDATE_CC in PR92729
There are some places where avr.cc uses magic numbers like 17 that
are actually register numbers. This patch defines constants like
REG_17 and uses them instead of the magic numbers when a register
number is meant.
Johann
--
AVR: Use REG_ constants instead of magic numbers .
There are some
Applied this addendum to avr PR114100:
When the frame pointer is adjusted and -mtiny-stack is set,
then it is enough to adjust the low part of the frame pointer.
Johann
--
AVR: target/114100 - Factor in -mtiny-stack in frame pointer adjustments
gcc/
PR target/114100
*
This patch unifies help screen messages.
Johann
--
AVR: Overhaul help screen
gcc/
* config/avr/avr.opt: Overhaul help screen.diff --git a/gcc/config/avr/avr.opt b/gcc/config/avr/avr.opt
index ea35b7d5b4e..c3ca8379ee3 100644
--- a/gcc/config/avr/avr.opt
+++ b/gcc/config/avr/avr.opt
@@
The condition when a frame pointer is required because
arguments are passe on the stack was not exact, and
there were situations when a frame was set up without
a need for it.
Johann
--
AVR: target/114132 - Code sets up a frame pointer without need.
The condition CUMULATIVE_ARGS.nregs == 0 in
Am 27.02.24 um 12:15 schrieb Tamar Christina:
Am 19.02.24 um 08:36 schrieb Richard Biener:
On Sat, Feb 17, 2024 at 11:30 AM wrote:
From: Pan Li
This patch would like to add the middle-end presentation for the
unsigned saturation add. Aka set the result of add to the max
when overflow.
Am 19.02.24 um 08:36 schrieb Richard Biener:
On Sat, Feb 17, 2024 at 11:30 AM wrote:
From: Pan Li
This patch would like to add the middle-end presentation for the
unsigned saturation add. Aka set the result of add to the max
when overflow. It will take the pattern similar as below.
Some avr options were missing the "Optimization" flag, which
is added by this patch.
Johann
--
AVR: Tag optimization options as "Optimization".
Some options that are pure optimizations where not tagged as such.
gcc/
* config/avr/avr.opt (mcall-prologues, mrelax, maccumulate-args)
This code was dead in the block where it lived,
because avr_adiw_reg_p() is only true when ADIW and SBIW
are available -- which is not the case for AVR_TINY.
Johann
--
AVR: Dead code removal.
gcc/
* config/avr/avr.cc (avr_out_compare) [AVR_TINY]: Remove code in
an "if
A description of what the patch does follows in the commit message below.
On ATmega128, there are no changes in test results.
On ATtiny40 (reduced core) there are no new execution fails,
but apart from that there is quite some noise in the delta:
unsupported (memory full) -> pass
unsupported
AVR: Use types of exact size and signedness in built-ins.
The AVR built-ins used types like "int" or "char" that don't
have exact signedness or type size which depend on -mint8
and -f[no-][un-]signed-char etc. As the built-ins are modelling
machine instructions of given type sizes and
This patch uses @defbuiltin to document built-in
functions so that the functions are listed in the index.
Previously, @table @code was used.
Johann
--
AVR: extend.texi - Use @defbuiltin to document built-ins.
gcc/
* doc/extend.texi (AVR Built-in Functions): Use @defbuiltin
Applied this patch.
Johann
--
AVR: Improve documentation for -mmcu=.
gcc/
* doc/invoke.texi (AVR Options) <-mmcu>: Remove "Atmel".
Note on complete device support.
AVR: Add examples for ISR macro to interrupt attribute doc.
gcc/
* doc/extend.texi (AVR Function
Applied this patch
Johann
--
AVR: target 113927 - Simple code triggers stack frame for Reduced Tiny.
The -mmcu=avrtiny cores have no ADIW and SBIW instructions. This was
implemented by clearing all regs out of regclass ADDW_REGS so that
constraint "w" never matched. This corrupted the
Am 14.02.24 um 01:40 schrieb Gerald Pfeifer:
Note that is not part of current HTML standards; can we simply
remove it?
Hi Gerald,
thanks for looking into this.
The is not strictly needed, I just has the case that
"-Wl,--defsym,__RODATA_FLASH_START__=32k" had a line-break in it.
In
This code will link against parts of the startup code
from AVR-LibC when it is needed to init bit-field FLMAP.
Johann
--
AVR: target/112944 - Addendum: Link code to initialize NVMCTRL_CTRLB.FLMAP
For devices that see a part for the flash memory in the RAM address space,
bit-field
We have this (rare?) wrong code bug
https://gcc.gnu.org/PR101188
which Jeff fixed for v14:
https://gcc.gnu.org/r14-1738
The fix doesn't fit 100% for v13 but the PR has a backport for v13
in comment #16. Would be great if this could be part of v13.3,
but I don't have the resources to reg-test
This patchlet tidies up gen-avr-mmcu-specs.cc.
Some information was computed more than once, in different
functions. The patch uses a new struct to pass around information.
Johann
AVR: Tidy up gen-avr-mmcu-specs.cc
gcc/
* config/avr/gen-avr-mmcu-specs.cc (struct McuInfo): New.
This device was in the wrong multilib set.
Johann
--
AVR: target/113824 - Fix multilib set for ATA5795.
gcc/
PR target/113824
* config/avr/avr-mcus.def (ata5797): Move from avr5 to avr4.
* doc/avr-mmcu.texi: Rebuild.diff --git a/gcc/config/avr/avr-mcus.def
This defines the spec always when the core has it, not only
override it when it differs from the core's value.
Johann
--
AVR: Always define __AVR_PM_BASE_ADDRESS__ in specs provided the core
has it.
gcc/
* config/avr/gen-avr-mmcu-specs.cc (print_mcu) <*cpp_mcu>: Spec always
This renames pecs like cc1_misc to cc1_rodata_in_ram to
point out their purpose.
Johann
--
AVR: Rename device-specs %_misc to %_rodata_in_ram.
gcc/
* config/avr/gen-avr-mmcu-specs.cc: Rename spec cc1_misc to
cc1_rodata_in_ram. Rename spec link_misc to link_rodata_in_ram.
avr.cc still had a mix of spaces and TABs for indentation.
This patch uses TABs according to the coding rules.
Applied prior to the creation of the v14 branch so that
master -> v14 back-porting will be easier.
Johann
--
AVR: Tabify avr.cc
gcc/
* config/avr/avr.cc: Tabify.
<>
Applied, this adds 6 more devices, 2 new and 4 fairly old
for completeness.
Johann
--
AVR: Add AVR64DU and some older devices.
gcc/
* config/avr/avr-mcus.def: Add AVR64DU28, AVR64DU32, ATA5787,
ATA5835, ATtiny64AUTO, ATA5700M322.
* doc/avr-mmcu.texi: Rebuild.diff --git
Am 22.01.24 um 08:45 schrieb Richard Biener:
On Fri, Jan 19, 2024 at 5:06 PM Georg-Johann Lay wrote:
Am 18.01.24 um 20:54 schrieb Roger Sayle:
This patch tweaks RTL expansion of multi-word shifts and rotates to use
PLUS rather than IOR for disjunctive operations. During expansion
Am 18.01.24 um 20:54 schrieb Roger Sayle:
This patch tweaks RTL expansion of multi-word shifts and rotates to use
PLUS rather than IOR for disjunctive operations. During expansion of
these operations, the middle-end creates RTL like (X<>C2)
where the constants C1 and C2 guarantee that bits
The C++ files in the avr backend are a mix of TABS and
8 spaces for indentation. This patch rectifies that
according to the coding rules.
I applied this prior to the advent of the v14 branch so
that back-porting will be easier, at least from the new master
to v14.
Johann
--
gcc/
This fixes a typo in the diagnose of a spec.
Also re-uses a spec for a simpler specs file.
Johann
--
AVR: Fix typo in device-specs generation. Reuse -m[no-]rodata-in-ram
checker.
gcc/
* config/avr/gen-avr-mmcu-specs.cc (diagnose_rodata_in_ram): Fix typo
in the diagnostic,
This adds some more entries to avr-mcus.def
Johann
--
AVR: Add AVR16EB, AVR16EA and AVR32EA devices.
gcc/
* config/avr/avr-mcus.def (avr16eb14, avr16eb20, avr16eb28, avr16eb32)
(avr16ea28, avr16ea32, avr16ea48, avr32ea28, avr32ea32, avr32ea48): Add.
*
Option -mskip-bug is no more missing from the documentation.
Johann
--
AVR: Document option -mskip-bug.
gcc/
* doc/invoke.texi (AVR Options) [-mskip-bug]: Add documentation.
diff --git a/gcc/doc/invoke.texi b/gcc/doc/invoke.texi
index 1773f0d3f0c..01170c0ce5c 100644
---
Am 15.01.24 um 13:20 schrieb Richard Biener:
On Mon, Jan 15, 2024 at 11:22 AM Georg-Johann Lay wrote:
Just noticed that -ffold-mem-offsets is a target option, i.e. it is
shown with --help=target
> grep -A3 mem-off common.opt
ffold-mem-offsets
Target Bool Var(flag_fold_mem_offsets) I
Just noticed that -ffold-mem-offsets is a target option, i.e. it is
shown with --help=target
> grep -A3 mem-off common.opt
ffold-mem-offsets
Target Bool Var(flag_fold_mem_offsets) Init(1)
Fold instructions calculating memory offsets to the memory access
instruction if possible.
Is that
I went ahead and installed Andrew's patch
https://gcc.gnu.org/r14-7240
Johann
Am 15.01.24 um 00:19 schrieb Levente via Gcc-help:
I'm trying to set up a toolchain for avr-dd MCUs, and I get this error
message when I try to compile gcc:
Lev
--
Author: Andrew Pinski
Date: Mon Jan 15
https://gcc.gnu.org/gcc-14/changes.html#avr
Johann
--
diff --git a/htdocs/gcc-14/changes.html b/htdocs/gcc-14/changes.html
index 9c9dfa44..8c738683 100644
--- a/htdocs/gcc-14/changes.html
+++ b/htdocs/gcc-14/changes.html
@@ -342,7 +342,55 @@ a work-in-progress.
-
+AVR
+
+ On AVR64* and
Ping #3
RFA: https://gcc.gnu.org/pipermail/gcc-patches/2023-December/640140.html
Ping #1 https://gcc.gnu.org/pipermail/gcc-patches/2023-December/640981.html
Ping #2 https://gcc.gnu.org/pipermail/gcc-patches/2024-January/641912.html
This is a patch that locates .rodata in flash for some AVR
This links an example from the avr-gcc wiki that shows how to set up
a linker script for the __flashN avr address spaces in
section AVR Named Address Spaces of the GCC user manual.
Johann
--
AVR: Documentation: Web-Link an example ld-Script for Address-Space
__flashN.
gcc/
*
avr attribute "address" only supports exactly one argument,
fixed thusly.
Johann
--
AVR: Documentation: Attribute address has exactly one argument.
gcc/
* doc/extend.texi (AVR Variable Attributes) [address]: Remove
documentation for a version without argument, which is not
Since the advent of devices AVR*, the spec pattern mmcu=avr* does no
more work to discriminate between devices and cores like avr51.
This means -nodevicelib no more works for AVR* devices because that
option is removed for mmcu=avr* (which were only cores in the old days).
Instead of that
Am 12.01.24 um 04:37 schrieb Jan-Benedict Glaw:
On Thu, 2024-01-04 17:28:02 +0100, Georg-Johann Lay wrote:
This fixes the avr-specific attributes io, io_low and address,
that are all basically the same except that io and io_low imply
assertions on allowed addressing modes.
--- a/gcc
This adds a new @subsubsection "AVR Internal Options" in
"AVR Options".
"Internal" options are options that are not supposed to be
set by the user, but are solely required to ship information
from device-specs to the compiler proper.
(Without device-specs, non of these options would be needed
Installes this minor improvement to the AVR documentations.
Johann
--
gcc/
* config/avr/avr-devices.cc (avr_texinfo): Adjust documentation for
Reduced Tiny.
* config/avr/gen-avr-mmcu-texi.cc (main): Add @anchor for each core.
* doc/extend.texi (AVR Variable
The patch below fixes some obvious problems in gcc.target/avr:
* Remove duplicate -mmcu=
* Skip tests with address spaces on Reduced Tiny which does not support
address spaces at all.
* Address spaces are GNU-C, but some tests were missing -std=gnu*
* Don't test address-space __flash1 on
Am 07.01.24 um 17:45 schrieb Jeff Law:
On 1/7/24 08:53, Georg-Johann Lay wrote:
Made some tests more generic so they can pass on more targets.
Johann
--
testsuite/52641: Fix fallout from sloppy tests.
gcc/testsuite/
PR testsuite/52641
* gcc.dg/torture/pr110838.c: Use proper
Made some tests more generic so they can pass on more targets.
Johann
--
testsuite/52641: Fix fallout from sloppy tests.
gcc/testsuite/
PR testsuite/52641
* gcc.dg/torture/pr110838.c: Use proper shift offset to get MSB or int.
* gcc.dg/torture/pr112282.c: Use at least
This patch rectifies more tests that make assumptions on
sizeof(int), sizeof(void*), etc.
Johann
--
testsuite/52641: Fix fallout from sloppy tests.
gcc/testsuite/
PR testsuite/52641
* gcc.dg/memchr-3.c [avr]: Anticipate -Wbuiltin-declaration-mismatch.
*
This fixes more of the sloppy tests that assume sizeof(int) = 4 etc.
Johann
--
testsuite/52641: Fix sloppy tests that did not care for sizeof(int)=2 etc.
gcc/testsuite/
PR testsuite/52641
* gcc.c-torture/compile/attr-complex-method-2.c [target=avr]: Check
for "divsc3"
Ping #2
https://gcc.gnu.org/pipermail/gcc-patches/2023-December/640140.html
FYI, Binutils https://sourceware.org/PR31124 is upstream.
Johann
This is a patch that locates .rodata in flash for some AVR
devices that can support it. All new functionality depends
on Binutils PR31124 and is
This fixes the avr-specific attributes io, io_low and address,
that are all basically the same except that io and io_low imply
assertions on allowed addressing modes.
It also improves some diagnostics.
Johann
--
gcc/
PR target/112952
* config/avr/avr.cc
Ping #1
https://gcc.gnu.org/pipermail/gcc-patches/2023-December/640140.html
FYI, Binutils https://sourceware.org/PR31124 us upstream.
Johann
This is a patch that locates .rodata in flash for some AVR
devices that can support it. All new functionality depends
on Binutils PR31124 and is
The avr backend supports variable attributes like the following that
allow to define symbols:
__attribute__((address(1234))
char a_symbol;
would produce assembly
.global a_symbol
a_symbol = 1234
This works except for -fdata-sections -fno-common (PR112952), and I am
struggling to find a fix.
This is a patch that locates .rodata in flash for some AVR
devices that can support it. All new functionality depends
on Binutils PR31124 and is switched on by configure checks
for the new emulations.
https://sourceware.org/PR31124
For explanation of the gcc part see commit message below.
1 - 100 of 1333 matches
Mail list logo