This topic provides examples of IA-32 and Itanium(TM) architecture assembly file listings and explains how to read them.
The following list describes the annotations:$B1$6: ; Preds $B1$9 mov eax, edx ;6.26 shld eax, esi, 11 ;6.26 or eax, -2147483648 ;6.26 neg ecx ;6.26 add ecx, 1054 ;6.26 shr eax, cl ;6.26 test edx, edx ;6.26 jge $B1$5 ; Prob 50% ;6.26 ; LOE eax ebx ebp edi
The ; Preds annotation lists all the basic-blocks that are predecessors of this basic-block.
The ;6.26 annotation occurs next to every instruction and indicates the source line#.column number that this instruction is associated with. When a 0 appears it means that there is no source information associated with that particular instruction.
The ; Prob annotation indicates the probability that the conditional jump is taken. This is based either upon a "guess" by the compiler or from profile information from a -prof_use compilation.
The ; LOE line is the live-on-exit registers. Generally only the integer registers, xmm, and mm registers are printed.
The following is an example of a portion of an assembly file listing for compilations targeted for Itanium(TM)-based systems:
The following list describes the annotations:
{ identifies the beginning of an bundle.
.mmi and .mib identify the instruction template types; .mmi indicates two memory and one integer instructions; .mib indicates one memory, one integer, and one branch instruction.
} identifies the end of an instruction bundle.
br.call.dpnt b0=bark# identifies a call to the function bark.
;; identifies the end of an instruction group.
The number following the colon (:) in the comment at the end of each instruction indicates the source line number corresponding to that assembly language instruction.