gcc/
commit986b9a67c847f59e5c383e1f8d6faa7431a11911
authorgjl <gjl@138bc75d-0d04-0410-961f-82ee72b054a4>
Thu, 11 Sep 2014 08:08:17 +0000 (11 08:08 +0000)
committergjl <gjl@138bc75d-0d04-0410-961f-82ee72b054a4>
Thu, 11 Sep 2014 08:08:17 +0000 (11 08:08 +0000)
tree462a929a1a108e79a3e7461e386a0bfb888077a2
parent6500d32987137853de9afc6ca9f88d90c0aba8ba
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.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@215152 138bc75d-0d04-0410-961f-82ee72b054a4
gcc/ChangeLog
gcc/config/avr/avr.md
libgcc/ChangeLog
libgcc/config/avr/lib1funcs.S
libgcc/config/avr/t-avr