|
|
|
|
|
by physguy1123
2819 days ago
|
|
On x86, push/pop have dedicated hardware optimizations known as the stack engine which perform most of the rsp increments/decrements and passes those offsets into the decoder, instead of using executions slots on them. push/pop are also much smaller than the corresponding mov/add instructions. It's much more optimal to use a series of push/pops for smaller operations like saving registers before a call than to manually adjust and store onto the stack. While technically this is still incrementing/decrementing a register and storing, the amount of isa/hardware support for such things clearly demonstrates that the x86 isa and modern x86 hardware gives special treatment to the stack. |
|