Bug 50820 - [avr] Use EIND consistently
Summary: [avr] Use EIND consistently
Status: RESOLVED FIXED
Alias: None
Product: gcc
Classification: Unclassified
Component: target (show other bugs)
Version: 4.7.0
: P5 normal
Target Milestone: 4.6.2
Assignee: Not yet assigned to anyone
URL:
Keywords: documentation, wrong-code
Depends on:
Blocks:
 
Reported: 2011-10-21 12:28 UTC by Georg-Johann Lay
Modified: 2012-05-02 17:40 UTC (History)
1 user (show)

See Also:
Host:
Target: avr
Build:
Known to work: 4.5.4
Known to fail: 4.5.3, 4.6.1
Last reconfirmed: 2011-10-21 00:00:00


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Georg-Johann Lay 2011-10-21 12:28:12 UTC
EIND is not used consistently by the compiler: Some places use EICALL/EIJMP, others to PUSH __zero_reg__ prior to indirect jump by means of RET.

Moreover, the usage of EIND and its assertions need documentation.
Comment 1 Georg-Johann Lay 2011-10-21 12:48:08 UTC
Author: gjl
Date: Fri Oct 21 12:48:04 2011
New Revision: 180299

URL: http://gcc.gnu.org/viewcvs?root=gcc&view=rev&rev=180299
Log:
	PR target/50820
	* config/avr/libgcc.S (__EIND__): New define to 0x3C.
	(__tablejump__): Consistently use EIND for indirect jump/call.
	(__tablejump_elpm__): Ditto.


Modified:
    trunk/gcc/ChangeLog
    trunk/gcc/config/avr/libgcc.S
Comment 2 Georg-Johann Lay 2011-10-21 14:24:28 UTC
Author: gjl
Date: Fri Oct 21 14:24:21 2011
New Revision: 180303

URL: http://gcc.gnu.org/viewcvs?root=gcc&view=rev&rev=180303
Log:
	PR target/50820
	Backport from Mainline r180299.
	* config/avr/libgcc.S (__EIND__): New define to 0x3C.
	(__tablejump__): Consistently use EIND for indirect jump/call.
	(__tablejump_elpm__): Ditto.


Modified:
    branches/gcc-4_6-branch/gcc/ChangeLog
    branches/gcc-4_6-branch/gcc/config/avr/libgcc.S   (contents, props changed)

Propchange: branches/gcc-4_6-branch/gcc/config/avr/libgcc.S
            ('svn:mergeinfo' added)
Comment 3 Georg-Johann Lay 2011-10-24 12:22:25 UTC
Author: gjl
Date: Mon Oct 24 12:22:21 2011
New Revision: 180379

URL: http://gcc.gnu.org/viewcvs?root=gcc&view=rev&rev=180379
Log:
	PR target/50820
	* doc/invoke.texi (AVR Options): New subsubsection to explain EIND
	handling and indirect jump/calls on devices > 128k.


Modified:
    branches/gcc-4_6-branch/gcc/ChangeLog
    branches/gcc-4_6-branch/gcc/doc/invoke.texi
Comment 4 Georg-Johann Lay 2011-10-24 14:49:55 UTC
Author: gjl
Date: Mon Oct 24 14:49:47 2011
New Revision: 180388

URL: http://gcc.gnu.org/viewcvs?root=gcc&view=rev&rev=180388
Log:
	PR target/50820
	Port from 4.6 branch r180379
	* doc/invoke.texi (AVR Options): New subsubsection to explain EIND
	handling and indirect jump/calls on devices > 128k.


Modified:
    trunk/gcc/ChangeLog
    trunk/gcc/doc/invoke.texi
Comment 5 Georg-Johann Lay 2011-10-24 14:58:24 UTC
Closed in 4.6.2
Comment 6 Georg-Johann Lay 2012-05-02 17:37:36 UTC
Author: gjl
Date: Wed May  2 17:37:31 2012
New Revision: 187059

URL: http://gcc.gnu.org/viewcvs?root=gcc&view=rev&rev=187059
Log:
	Backport from 2011-10-21 4.6-branch 180303.
	PR target/50820
	* config/avr/libgcc.S (__EIND__): New define to 0x3C.
	(__tablejump__): Consistently use EIND for indirect jump/call.
	(__tablejump_elpm__): Ditto.


Modified:
    branches/gcc-4_5-branch/gcc/ChangeLog
    branches/gcc-4_5-branch/gcc/config/avr/libgcc.S
Comment 7 Georg-Johann Lay 2012-05-02 17:40:08 UTC
Backport to 4.5.4