ICC装配输出中的所有数字是什么意思?

时间:2015-03-06 19:06:33

标签: assembly icc

使用ICC进行编译时,每条指令后都有2个以点分隔数字作为前缀的哈希符号。这是什么意思?

For example:

L__routine_start__Z12testFunctionPii_0:
testFunction(int*, int):
        push      rbp                                           #1.42
        mov       rbp, rsp                                      #1.42
        sub       rsp, 32                                       #1.42
        mov       QWORD PTR [-24+rbp], rdi                      #1.42
        mov       DWORD PTR [-16+rbp], esi                      #1.42
        mov       DWORD PTR [-32+rbp], 0                        #2.11
        mov       DWORD PTR [-28+rbp], 0                        #3.14
..B1.2:                         # Preds ..B1.3 ..B1.1
        mov       eax, DWORD PTR [-28+rbp]                      #3.19
        mov       edx, DWORD PTR [-16+rbp]                      #3.23
        cmp       eax, edx                                      #3.23
        jge       ..B1.4        # Prob 50%                      #3.23
...

1 个答案:

答案 0 :(得分:0)

它是一个注释,包含原始源的行和列信息,因此您可以按照指令的来源进行操作。根据优化级别和out-of-order execution等功能,行不得按自然顺序排列。