2011-10-29 11 views

Respuesta

0

Creo que no hay tal equivalente con un GCC reciente en Linux. El compilador emite prólogos y epílogos cuando corresponda, y usted debe dejar esa decisión. Puede ser bastante bueno para hacer prólogos o epílogos bastante pequeños, o incluso a veces inexistentes.

Puede codificar su función en el ensamblaje. O puede poner declaraciones de ASM dentro de su función.

Y no dijiste por qué quieres hacer eso. ¿Cuál es tu objetivo y por qué preguntas exactamente?

+0

Usted está equivocado, yo mismo una vez usé tal cosa, pero no puedo recordar ahora. – MetallicPriest

+3

¿Lo hiciste con GCC? La página a la que hace referencia SigTerm está de acuerdo con lo que dije: si no quiere un prólogo o un epílogo con GCC y Linux (en máquinas de destino x86 o AMD64), use asm. –

+0

Bueno, en realidad lo hay, pero solo para algunas arquitecturas (integradas), como se implica en un comentario. – ninjalj

7

En algunas arquitecturas, gcc admite un atributo llamado "desnudo"; el más reciente gcc docs He dado esta lista de arquitecturas: ARM, AVR, MCORE, RX y SPU.

Si está utilizando una de esas arquitecturas (gcc le dará una advertencia si intenta usarlo y no es compatible), el atributo puede ser utilizado de esta manera:

__attribute__ ((naked)) int fun() 
{ 
} 

[Recientemente se ha debatido un poco sobre la lista de desarrolladores gcc acerca de agregar el atributo "desnudo" como una característica más general, y tratando de admitirlo en más arquitecturas, pero obviamente eso no te ayuda :).]