Когда я просматриваю код сборки, сгенерированный GCC, существует много строк, начинающихся с .LBB
и числа. Кажется, что они не являются инструкциями операций. Больше похоже на маркировку чего-либо файла или что-то.
Что такое .LFB
,. LVL
, LBB
, LBE
и т.д. находятся в коде сборки, сгенерированном компилятором?
".loc" означает "строка кода". Указывают ли эти строки только symbol table
?
Вот фрагмент кода,
main:
.LFB1:
.loc 1 8 0
.cfi_startproc
.LVL2:
.LBB4:
.LBB5:
.loc 1 2 0
movsd b(%rip), %xmm0
.LBE5:
.LBE4:
.loc 1 10 0
xorl %eax, %eax
.LBB7:
.LBB6:
.loc 1 2 0
mulsd a(%rip), %xmm0
.LBE6:
.LBE7:
.loc 1 9 0
movsd %xmm0, a(%rip)
.LVL3:
.loc 1 10 0
ret
.cfi_endproc