[Bug target/63223] [avr] Make jumptables work with -Wl,--section-start,.text=
amylaar at gcc dot gnu.org
gcc-bugzilla@gcc.gnu.org
Fri Oct 17 14:40:00 GMT 2014
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=63223
Jorn Wolfgang Rennecke <amylaar at gcc dot gnu.org> changed:
What |Removed |Added
----------------------------------------------------------------------------
CC| |amylaar at gcc dot gnu.org
--- Comment #4 from Jorn Wolfgang Rennecke <amylaar at gcc dot gnu.org> ---
(In reply to Georg-Johann Lay from comment #1)
> Author: gjl
> Date: Thu Sep 11 08:08:17 2014
> New Revision: 215152
>
> URL: https://gcc.gnu.org/viewcvs?rev=215152&root=gcc&view=rev
> Log:
> gcc/
> PR target/63223
> * config/avr/avr.md (*tablejump.3byte-pc): New insn.
> (*tablejump): Restrict to !AVR_HAVE_EIJMP_EICALL. Add void clobber.
> (casesi): Expand to *tablejump.3byte-pc if AVR_HAVE_EIJMP_EICALL.
> libgcc/
> PR target/63223
> * config/avr/libgcc.S (__tablejump2__): Rewrite to use RAMPZ, ELPM
> and R24 as needed. Make work for all devices and .text locations.
> (__do_global_ctors, __do_global_dtors): Use word addresses.
do_global_dtors is supposed to start at the start and increment from there.
I see it used to be half-way wrong and half-way correct.
(Starting at the start, decrementing for __AVR_HAVE_ELPM__, incrementing
otherwise.)
However, you now made it all the way use an incorrect order - starting at the
end and incrementing from there.
Is there a rationale for this?
More information about the Gcc-bugs
mailing list