Assembly File Listing Example
This topic provides examples of IA-32 and Itanium(TM) architecture assembly
file listings and explains how to read them.
IA-32 Assembly Listing Example
$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 following list describes the annotations:
- 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.
Itanium(TM) Architecture Assembly Listing Example
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.