1

在探索Godbolt时,我注意到 gcc 几乎从不减去rsp. 例如:

square(int):
        push    rbp
        mov     rbp, rsp
        mov     DWORD PTR [rbp-4], edi ; [rbp-4] is not in square(int)'s stack frame
        mov     eax, DWORD PTR [rbp-4]
        imul    eax, eax
        pop     rbp
        ret

为什么?不应该sub rsp, 4在堆栈上分配一个整数吗?

4

0 回答 0