2011/10/13 Jan Waclawek <[email protected]>:
>>The jump targets in jump tables from switch_case/.ctors/.dtors are located in
>>lower flash and their entries are gs() and use relaxation magic to have 
>>jumping
>>pads generated.
>
> AFAIK, the linker creates the trampoline/jumptable regardless of relaxation.
> It's just that in certain (in practice most) cases this process is broken 
> UNLESS relax is used.
> http://www.avrfreaks.net/index.php?name=PNphpBB2&file=viewtopic&p=707285#707285
>
>
>
>>Bottom line is that there is no need to ever touch or use EI gadgets, and EI
>>should be removed from the compiler like so:
>
> As it is now, yes. But there might have been a reason for the EI back then.
>
> Imagine for example that all targets of indirect jumps are within one 64kW 
> "segment". Then, the "segment" register EIND could be set once at the 
> beginning and left so forever; and there's no need for the trampolines.
>

I'm agree.
Right now the AVR port have a support only for 16bits addressing for
program memory.
It is a 128k bytes and 64k words.
Lets say "The current AVR ABI require EIND == 0". If user change it
implicitly then EIND must be restored to 0.

Denis.

_______________________________________________
AVR-GCC-list mailing list
[email protected]
https://lists.nongnu.org/mailman/listinfo/avr-gcc-list

Reply via email to