In http://gcc.gnu.org/ml/gcc/2006-06/msg00533.html, you wrote:
Inserting the nops in the asm code does not work, because will cause some offets to go out of range.
It should when you adjust the ranges used by gcc to anticipate the insertion of nops by the assembler.