[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: |
Erik Christiansen |
Subject: |
Re: [avr-gcc-list] May avr-gcc emit EIJMP/EICALL? |
Date: |
Sat, 15 Oct 2011 23:30:19 +1100 |
User-agent: |
Mutt/1.5.20 (2009-06-14) |
On 14.10.11 13:14, Georg-Johann Lay wrote:
> If I understand correctly, my changes in
> http://gcc.gnu.org/viewcvs/trunk/gcc/config/avr/libgcc.S?r1=179760&r2=179759&pathrev=179760
> are no good and I should rework the patch to use EI*, and instead of PUSH
> zero_reg there should either a push of EIND or, if no RET is used to indirect
> jump, EIJMP instead if IJMP?
With the linker inserting trampolines, and relaxation using them,
compatibility is provided by I*, with EI* working only because
EIND == 0, IIUC? Then emitting EI* only has a purpose if there are plans
to use EIND != 0, AIUI. (And then we've bypassed the trampolines, IIUC. [1]
In my mind, that raises the question: Since it's working now, why?)
In the OP, concern was raised that the use of EIND is not IRQ-safe, so
the trampolines should be used instead. Given that any interrupt handler
has to save any registers it clobbers, then I don't immediately see how
EIND should be IRQ-unsafe? (So the above could be done, but the goal is
still a bit unclear, at least at this end of the pipe.)
Erik
[1] Or, is there still a stub in this case, to set EIND, depending on
the address of the destination? (Because we still only have 16 bit
pointers in avr-gcc.)
--
If you understand what you're doing, you're not learning anything.
- A. L.
- Re: [avr-gcc-list] May avr-gcc emit EIJMP/EICALL?, (continued)
- 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, 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, 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 <=
- 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
- Re: [avr-gcc-list] May avr-gcc emit EIJMP/EICALL?, Jan Waclawek, 2011/10/15
- 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?, Georg-Johann Lay, 2011/10/23
Re: [avr-gcc-list] May avr-gcc emit EIJMP/EICALL?, Georg-Johann Lay, 2011/10/24
Re: [avr-gcc-list] May avr-gcc emit EIJMP/EICALL?, Georg-Johann Lay, 2011/10/14