
viii
Contents
AMD 64-Bit Technology
24593—Rev. 3.09—September 2003
Special-Use and Reserved Prefixes. . . . . . . . . . . . . . . . . . . . 273
Prefixes That Cause Exceptions . . . . . . . . . . . . . . . . . . . . . . 273
Feature Detection . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 273
Exceptions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 274
General-Purpose Exceptions . . . . . . . . . . . . . . . . . . . . . . . . . 274
x87 Floating-Point Exceptions (#MF) . . . . . . . . . . . . . . . . . . 276
Actions Taken on Executing 64-Bit Media Instructions . . . 276
Mixing Media Code with x87 Code . . . . . . . . . . . . . . . . . . . . 278
Mixing Code. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 278
Clearing MMX State . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 279
State-Saving . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 279
Saving and Restoring State . . . . . . . . . . . . . . . . . . . . . . . . . . 279
State-Saving Instructions . . . . . . . . . . . . . . . . . . . . . . . . . . . . 280
Performance Considerations . . . . . . . . . . . . . . . . . . . . . . . . . 281
Use Small Operand Sizes . . . . . . . . . . . . . . . . . . . . . . . . . . . . 281
Reorganize Data for Parallel Operations . . . . . . . . . . . . . . . 281
Remove Branches . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 281
Align Data . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 282
Organize Data for Cacheability . . . . . . . . . . . . . . . . . . . . . . . 282
Prefetch Data. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 282
Retain Intermediate Results in MMX Registers . . . . . . . 283
x87 Floating-Point Programming . . . . . . . . . . . . . . . . . . . . . . 285
5.10
5.11
5.12
5.13
5.14
5.15
6
6.1
Overview . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 285
Origins . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 285
Compatibility. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 285
Capabilities . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 286
Registers. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 287
x87 Data Registers. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 288
x87 Status Word Register . . . . . . . . . . . . . . . . . . . . . . . . . . . . 289
x87 Control Word Register . . . . . . . . . . . . . . . . . . . . . . . . . . . 293
x87 Tag Word Register . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 295
Pointers and Opcode State . . . . . . . . . . . . . . . . . . . . . . . . . . . 297
x87 Environment . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 298
Floating-Point Emulation (CR0.EM) . . . . . . . . . . . . . . . . . . . 299
Operands . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 300
Operand Addressing . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 300
Data Types . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 300
Number Representation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 305
Number Encodings . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 308
Precision. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 313
Rounding . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 314
Instruction Summary . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 315
Syntax. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 315
Data Transfer and Conversion . . . . . . . . . . . . . . . . . . . . . . . . 317
Load Constants . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 320
Arithmetic . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 320
Transcendental Functions . . . . . . . . . . . . . . . . . . . . . . . . . . . 325
6.2
6.3
6.4
6.5