2014-02-21 29 views
1

我有與海灣合作委員會的選項-march=native -mtune=native -mfpmath=sse -O3 -ffast-math -masm=intel -S -fverbose-asm產生了一些代碼,對酷睿i7 930下面的代碼的摘錄:什麼是gcc生成的彙編註釋中的batmp和%fsp?

mov esi, DWORD PTR [ebp-52] # batmp.271, %sfp 
mov eax, DWORD PTR [ebp-28] #, %sfp 
add esi, edi # batmp.271, 
add eax, edi #, 
mov ecx, DWORD PTR [ebp-108] #, %sfp 
... 
cmp DWORD PTR [ebp-100], eax # %sfp, D.48541 

什麼是batmp.XXX%sfpD.XXXXX這裏?這些名稱如何縮小以及這些術語意味着什麼?

回答

0

如果您提供C源以供參考,會更容易判斷。 顯然batmp是用於數組訪問的「基址臨時」。 %sfp用作溢出到堆棧的寄存器的基地址。不幸的是,根據我的測試,編譯器並沒有告訴我們它溢出了什麼,即使它是一個命名的局部變量。 D.x只是一個通用符號,意思是「聲明與uid x」。如果它沒有名稱,那麼它可能是編譯器生成的輔助變量。

相關問題