
iv Intel®Itanium®Architecture Software Developer’s Manual, Rev. 2.3
3.2.3 Byte Ordering . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1:36
3.3 Instruction Encoding Overview . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1:38
3.4 Instruction Sequencing Considerations . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1:39
3.4.1 RAW Dependency Special Cases. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1:42
3.4.2 WAW Dependency Special Cases . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1:43
3.4.3 WAR Dependency Special Cases. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1:44
3.4.4 Processor Behavior on Dependency Violations . . . . . . . . . . . . . . . . . . . . 1:44
3.5 Undefined Behavior . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1:44
4 Application Programming Model . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1:47
4.1 Register Stack . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1:47
4.1.1 Register Stack Operation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1:47
4.1.2 Register Stack Instructions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1:49
4.2 Integer Computation Instructions. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1:50
4.2.1 Arithmetic Instructions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1:51
4.2.2 Logical Instructions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1:51
4.2.3 32-bit Addresses and Integers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1:52
4.2.4 Bit Field and Shift Instructions. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1:52
4.2.5 Large Constants . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1:53
4.3 Compare Instructions and Predication . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1:54
4.3.1 Predication . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1:54
4.3.2 Compare Instructions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1:54
4.3.3 Compare Types . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1:55
4.3.4 Predicate Register Transfers. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1:57
4.4 Memory Access Instructions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1:57
4.4.1 Load Instructions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1:58
4.4.2 Store Instructions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1:59
4.4.3 Semaphore Instructions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1:59
4.4.4 Control Speculation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1:60
4.4.5 Data Speculation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1:63
4.4.6 Memory Hierarchy Control and Consistency. . . . . . . . . . . . . . . . . . . . . . . 1:69
4.4.7 Memory Access Ordering . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1:73
4.5 Branch Instructions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1:74
4.5.1 Modulo-scheduled Loop Support . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1:75
4.5.2 Branch Prediction Hints . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1:78
4.5.3 Branch Predict Instructions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1:79
4.6 Multimedia Instructions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1:79
4.6.1 Parallel Arithmetic . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1:79
4.6.2 Parallel Shifts . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1:81
4.6.3 Data Arrangement . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1:81
4.7 Register File Transfers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1:82
4.8 Character and Bit Strings . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1:83
4.8.1 Character Strings . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1:83
4.8.2 Bit Strings . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1:84
4.9 Privilege Level Transfer . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1:84
5 Floating-point Programming Model . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1:85
5.1 Data Types and Formats . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1:85
5.1.1 Real Types . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1:85
5.1.2 Floating-point Register Format . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1:85
5.1.3 Representation of Values in Floating-point Registers . . . . . . . . . . . . . . . . 1:86
5.2 Floating-point Status Register . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1:88
5.3 Floating-point Instructions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1:91
5.3.1 Memory Access Instructions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1:91
5.3.2 Floating-point Register to/from General Register Transfer Instructions . . 1:97
5.3.3 Arithmetic Instructions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1:98
5.3.4 Non-arithmetic Instructions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1:99
5.3.5 Floating-point Status Register (FPSR) Status Field Instructions. . . . . . . 1:100
5.3.6 Integer Multiply and Add Instructions . . . . . . . . . . . . . . . . . . . . . . . . . . . 1:101
5.4 Additional IEEE Considerations. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1:101
5.4.1 Floating-point Interruptions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1:101