Actualmente estoy aprendiendo ASM desensamblando algunos de los códigos C. Una cosa que me interesó es que el compilador gcc genera código como este¿Cuál es el propósito de mov% rax,% rax?
movq %rax,%rax
que obviamente no tiene sentido. Entonces, ¿cuál es el propósito de hacer eso?
Me pregunto si se usa para perder algunos ciclos de CPU para mejorar la tubería.
¡Gracias por su pista!
No se utiliza para mejorar la tubería. Todos los procesadores x86 (¿por razones históricas?) Tienen hardware que resuelve dichos riesgos bloqueándolos cuando es necesario. Solo los RISC, que son más simples, necesitan soporte de compilador para eso. – ruslik
@ruslik: un puesto es en sí mismo un peligro. –