The following is an example of a portion of an assembly file code for IA-32:
main: |
The elements in the above code are as follows:
.B1.1: identifies the beginning of the first basic block in the first function of the file. A basic block is a set of instructions with the property that if the first instruction is executed then all of the subsequent instructions in the set are also executed.
/1 following the basic block label is the block execution count. This count is only printed when the -prof_use option is used. It indicates the average number of times a block was executed when the instrumented program was run. See Profile-Guided Optimization for more information on -prof_use.
/Preds is a list of predecessors of the current basic block. Predecessors are blocks that can transfer control to the current basic block.
The numbers (1.0) following the slash (/) at the end of each instruction indicate the source line number and column corresponding to that assembly language instruction.
/LOE indicates a list of registers which are live on exit from the current basic block. These are registers that contain values to be used by succeeding basic blocks.
Itanium(TM)-based applications:
An assembly file code portion:
.section .text |
The elements in the above code are as follows:
; Prob 1.00 indicates the probability assigned to a jump.
Each curly brace pair { } indicates an instruction bundle. A bundle is a group of up to three instructions that may execute simultaneously if there are no stalls or dependencies.
main is a label that starts the program
// indicate comments
[ ] indicate indirect addressing
For more information, see Intel