re PR target/63223 ([avr] Make jumptables work with -Wl,--section-start,.text=)
authorGeorg-Johann Lay <avr@gjlay.de>
Thu, 11 Sep 2014 08:08:17 +0000 (08:08 +0000)
committerGeorg-Johann Lay <gjl@gcc.gnu.org>
Thu, 11 Sep 2014 08:08:17 +0000 (08:08 +0000)
commitea3f2b240febca348d795e19ba908a34f78b206d
tree462a929a1a108e79a3e7461e386a0bfb888077a2
parentc883e5fb6a12718325cebeb653a4ccf4668a723c
re PR target/63223 ([avr] Make jumptables work with -Wl,--section-start,.text=)

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.
(__tablejump__, __tablejump_elpm__): Remove functions.
* t-avr (LIB1ASMFUNCS): Remove _tablejump, _tablejump_elpm.
Add _tablejump2.
(XICALL, XIJMP): New macros.

From-SVN: r215152
gcc/ChangeLog
gcc/config/avr/avr.md
libgcc/ChangeLog
libgcc/config/avr/lib1funcs.S
libgcc/config/avr/t-avr