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
