Estoy escribiendo rutinas de manejo de interrupciones para x86_64. El ABI especifica que antes de llamar a una función C, debo alinear la pila a 16 bytes. El ISA x86_64 especifica que al ingresar a un ISR, mi pila está alineada con 8 bytes. Necesito alinear mi puntero de pila a 16 bytes por lo tanto. El problema es que al regresar de mi función C, debo recuperar el puntero de la pila (potencialmente) desalineado para que pueda regresar de mi interrupción correctamente.x86_64 alinear pila y recuperar sin guardar registros
Me pregunto si hay una manera de hacerlo sin usar un registro de propósito general?
¿Está almacenando SP en el montón? –
@ H2CO3 Eso suena como una idea terrible. Tampoco tengo la noción de un montón en este contexto. – dschatz
OK, fue solo una idea rápida. –