Itanium(TM) architecture instructions are grouped together in 128-bit aligned containers called bundles. Each bundle contains three 41-bit instruction
slots, and a 5-bit template field. The template field specifies which type of execution unit processes each instruction in the bundle. Bit 0 is set to 1 if
there is a stop at the end of a bundle. There is no fixed relation between the boundaries of an instruction group and the boundaries of a bundle.
Figure below illustrates the format of a bundle.
Bundle Format |
|
Multiway branch bundles contain more than one branch instruction. When the first branch instruction of a multiway bundle is taken, the subsequent branch instruction does not execute.
Bundles are always aligned at 16-byte boundaries. The assembler automatically aligns sections containing bundles to at least 16-bytes.
Bundling can be:
implicit (automatically performed by the assembler)
explicit (specified by the programmer)
— with automatic selection of the template
— with explicit selection of the template
Refer to the Intel® Itanium™ Architecture Software Developer’s Manual for more details about bundles.