criando uma função C com um determinado tamanho no segmento de texto

Estou programando um incorporadopowerpc Sistema 32 com um cache de instruções L2 associativo definido de 32 kbytes e 8 vias. Para evitar trocas de cache, alinhamos as funções de maneira que o texto de um conjunto de funções chamado em alta frequência (pense no código de interrupção) termine em conjuntos de cache separados. Fazemos isso inserindo funções fictícias conforme necessário, por exemplo

void high_freq1(void)
{
   ...
}

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

void high_freq2(void)
{
   ...
}

Isso me parece feio e subótimo. O que eu gostaria de fazer é

evitar__asm__ inteiramente e use C89 puro (talvez C99)encontre uma maneira de criar o necessáriodummy() espaçador que o otimizador do GCC não tocao tamanho dodummy() O espaçador deve ser configurável como um múltiplo de 4 bytes. Os espaçadores típicos são de 260 a 1000 bytes.deve ser viável para um conjunto de cerca de 50 funções, de um total de 500 funções

Também estou disposto a explorar técnicas totalmente novas de colocar um conjunto de funções selecionadas de uma maneira que elas não sejam mapeadas para as mesmas linhas de cache. Um script vinculador pode fazer isso?

questionAnswers(4)

yourAnswerToTheQuestion