2010-04-11 15 views
5

¿Hay un peligro en el uso del registro $gp para almacenar un valor? Creo que mi pregunta es ¿cuál es la verdadera funcionalidad de $gp y es invocado por detrás de las escenas de alguna manera para que, si tuviera que utilizarlo, las cosas podrían ir muy, muy mal?

Respuesta

5

Bueno, el registro de $ gp apunta al área global. Convention indica que debe almacenarlo cuando escribe una función (consulte .cprestore).

Si hay que usarla (sinceramente, no puede ver por qué), remeber estas cosas:

1) Siempre guarde en el Registro guardadas área de su pila.

2) Cargue siempre que el valor en el GP $ al destruir la pila.

3) No lo use. (es decir, no tiene acceso al alcance global )

Además, no estoy seguro, pero puede olvidarse del código PIC.

+1

¡Gracias por el consejo! – Hristo