Estoy intentando alinear en bytes una función con un límite de 16 bytes usando el atributo 'alineado (16)'. Hice lo siguiente: void __attribute__((aligned(16))) function() { }
C Alineación de funciones en GCC
(Fuente: http://gcc.gnu.org/onlinedocs/gcc/Function-Attributes.html)
Pero cuando compilo (foo.c gcc; no hay archivos make o scripts de enlazador utilizadas), me sale el siguiente error:
Foo.c : 99: error: la alineación no se puede especificar para 'función'
Intenté alinearme a 4,8,32, etc., pero el error sigue siendo el mismo. Necesito esto para alinear una rutina de servicio de interrupción para un procesador basado en powerpc. ¿Cuál es la forma correcta de hacerlo?
¿Por qué quieres hacer esto? –
El OP ha explicado exactamente por qué necesitan hacer esto, en la penúltima oración. – caf
Otro uso deliciosamente malo para las funciones de alineación es el almacenamiento de datos adicionales en los bits bajos de las variables de puntero a la función ... –