crear una función C con un tamaño dado en el segmento de texto

Estoy programando un incrustadopowerpc Sistema 32 con una memoria caché asociativa de instrucciones L2 de 32 vías de 32 kbytes. Para evitar el intercambio de caché, alineamos las funciones de tal manera que el texto de un conjunto de funciones llamado a alta frecuencia (piense en el código de interrupción) termine en conjuntos de caché separados. Hacemos esto insertando funciones ficticias según sea necesario, p.

void high_freq1(void)
{
   ...
}

void dummy(void)
{
   __asm__(/* Silly opcodes to fill ~100 to ~100,0 bytes of text segment */);
}

void high_freq2(void)
{
   ...
}

Esto me parece feo y subóptimo. Lo que me gustaría hacer es

evitar__asm__ completamente y usa C89 puro (tal vez C99)encontrar una manera de crear lo necesariodummy() espaciador que el optimizador GCC no tocael tamaño de ladummy() El espaciador debe ser configurable como un múltiplo de 4 bytes. Los separadores típicos son de 260 a 1000 bytes.debería ser factible para un conjunto de aproximadamente 50 funciones de un total de 500 funciones

También estoy dispuesto a explorar técnicas completamente nuevas para colocar un conjunto de funciones seleccionadas de manera que no se asignen a las mismas líneas de caché. ¿Puede un script vinculador hacer esto?

Respuestas a la pregunta(4)

Su respuesta a la pregunta