
vi
Contents
AMD 64-Bit Technology
24593—Rev. 3.09—September 2003
4.4
Operands . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 145
Data Types . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 145
Operand Sizes and Overrides. . . . . . . . . . . . . . . . . . . . . . . . . 147
Operand Addressing . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 147
Data Alignment . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 148
Integer Data Types . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 148
Floating-Point Data Types . . . . . . . . . . . . . . . . . . . . . . . . . . . 150
Floating-Point Number Representation . . . . . . . . . . . . . . . . 153
Floating-Point Number Encodings. . . . . . . . . . . . . . . . . . . . . 156
Floating-Point Rounding. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 158
Instruction Summary—Integer Instructions. . . . . . . . . . . . . 160
Syntax. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 160
Data Transfer. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 162
Data Conversion. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 166
Data Reordering . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 168
Arithmetic . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 174
Shift . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 181
Compare . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 183
Logical . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 185
Save and Restore State. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 186
Instruction Summary—Floating-Point Instructions. . . . . . . 187
Syntax. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 187
Data Transfer. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 187
Data Conversion. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 192
Data Reordering . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 195
Arithmetic . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 197
Compare . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 202
Logical . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 206
Instruction Effects on Flags . . . . . . . . . . . . . . . . . . . . . . . . . . 207
Instruction Prefixes. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 208
Supported Prefixes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 208
Special-Use and Reserved Prefixes. . . . . . . . . . . . . . . . . . . . 208
Prefixes That Cause Exceptions . . . . . . . . . . . . . . . . . . . . . . 208
Feature Detection . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 209
Exceptions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 209
General-Purpose Exceptions . . . . . . . . . . . . . . . . . . . . . . . . . 210
SIMD Floating-Point Exception Causes . . . . . . . . . . . . . . . . 211
SIMD Floating-Point Exception Priority. . . . . . . . . . . . . . . . 216
SIMD Floating-Point Exception Masking . . . . . . . . . . . . . . . 218
Saving, Clearing, and Passing State . . . . . . . . . . . . . . . . . . . 222
Saving and Restoring State . . . . . . . . . . . . . . . . . . . . . . . . . . 222
Parameter Passing. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 222
Accessing Operands in MMX Registers. . . . . . . . . . . . . . . 223
Performance Considerations . . . . . . . . . . . . . . . . . . . . . . . . . 224
Use Small Operand Sizes . . . . . . . . . . . . . . . . . . . . . . . . . . . . 224
Reorganize Data for Parallel Operations . . . . . . . . . . . . . . . 224
Remove Branches . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 224
4.5
4.6
4.7
4.8
4.9
4.10
4.11
4.12