[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [avr-gcc-list] May avr-gcc emit EIJMP/EICALL?
From: |
Jan Waclawek |
Subject: |
Re: [avr-gcc-list] May avr-gcc emit EIJMP/EICALL? |
Date: |
Fri, 14 Oct 2011 10:24:19 +0200 |
>>> I was just trying to hint a possible reason why the EI stuff was used at
>>> all, a possible idea which might have been abandoned later.
>
>Ah, ok. My original question was about how to improve the current situation so
>that it is easy to document, to understand and to use
That's a noble intention, but please mind, that while the implementation of EI
stuff (function pointers and table-driven switch/case, i.e. where gs() is
inolved) in avr-gcc works (in a possibly suboptimal way), its counterpart in
linker is buggy.
>rather than elaborating
>the supposed history of avr-gcc ;-)
Well, I was trying to help.
>Not familiar with bolide devices and their applications, I wonder if users
>might completely rely on EIND = 1 and EIxxx throughout an application like boot
>loader that must not have jump pads in the lower segment.
The current implementation relies on EIND = 0 throughout the application; and
apparently there are applications in the wild which happily live with that.
I did not suggest the "permanent" EIND as a future solution, only mentioned it
as a possible reason for why extended indirections had been used at all.
>But code in libgcc already does PUSH zero_reg prior to RET to do indirect jump
>so that EIND does not work that way, anyway, in switch/case for example.
That sounds for me like a superior solution to trampolines etc., but I am not
suggesting this as a final solution before thorough investigation. I guess in
practice it might turn out to be a bit more costly than the trampolines, not to
mention the work which would be needed to implement it (and which I am not able
to do).
Jan
- [avr-gcc-list] May avr-gcc emit EIJMP/EICALL?, Georg-Johann Lay, 2011/10/12
- Re: [avr-gcc-list] May avr-gcc emit EIJMP/EICALL?, Boyapati, Anitha, 2011/10/13
- Re: [avr-gcc-list] May avr-gcc emit EIJMP/EICALL?, Georg-Johann Lay, 2011/10/13
- Re: [avr-gcc-list] May avr-gcc emit EIJMP/EICALL?, Jan Waclawek, 2011/10/13
- Re: [avr-gcc-list] May avr-gcc emit EIJMP/EICALL?, Denis Chertykov, 2011/10/13
- Re: [avr-gcc-list] May avr-gcc emit EIJMP/EICALL?, Georg-Johann Lay, 2011/10/13
- Re: [avr-gcc-list] May avr-gcc emit EIJMP/EICALL?, Jan Waclawek, 2011/10/13
- Re: [avr-gcc-list] May avr-gcc emit EIJMP/EICALL?, Denis Chertykov, 2011/10/14
- Re: [avr-gcc-list] May avr-gcc emit EIJMP/EICALL?, Georg-Johann Lay, 2011/10/14
- Re: [avr-gcc-list] May avr-gcc emit EIJMP/EICALL?,
Jan Waclawek <=
- Re: [avr-gcc-list] May avr-gcc emit EIJMP/EICALL?, Georg-Johann Lay, 2011/10/14
- Re: [avr-gcc-list] May avr-gcc emit EIJMP/EICALL?, Jan Waclawek, 2011/10/14
- Re: [avr-gcc-list] May avr-gcc emit EIJMP/EICALL?, Georg-Johann Lay, 2011/10/31
- Re: [avr-gcc-list] May avr-gcc emit EIJMP/EICALL?, Denis Chertykov, 2011/10/14
- Re: [avr-gcc-list] May avr-gcc emit EIJMP/EICALL?, Marek Michalkiewicz, 2011/10/14
- Re: [avr-gcc-list] May avr-gcc emit EIJMP/EICALL?, Georg-Johann Lay, 2011/10/14
- Re: [avr-gcc-list] May avr-gcc emit EIJMP/EICALL?, Erik Christiansen, 2011/10/15
- Re: [avr-gcc-list] May avr-gcc emit EIJMP/EICALL?, Boyapati, Anitha, 2011/10/14
- Re: [avr-gcc-list] May avr-gcc emit EIJMP/EICALL?, Praveen, Vidya, 2011/10/14
- Re: [avr-gcc-list] May avr-gcc emit EIJMP/EICALL?, Erik Christiansen, 2011/10/15