AMD Athlon™ Processor x86 Code Optimization
Instruction
Cache . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 131 Control Unit . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 134 Decoding . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33 Dispatch and Execution Resources. . . . . . . . . . . . . . . . . 187 Short Forms . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 127 Short Lengths . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 36
Integer . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 77 Arithmetic,
L
L2 Cache Controller . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 139 LEA Instruction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 38 Load/Store Pipeline Operations . . . . . . . . . . . . . . . . . . . . . 151
Loops
Deriving Loop Control For Partially Unrolled . . . . . . . . . 70 Generic Loop Hoisting . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22 Minimize Pointer Arithmetic. . . . . . . . . . . . . . . . . . . . . . . 73 Partial Loop Unrolling . . . . . . . . . . . . . . . . . . . . . . . . . . . . 68 REP String with Low Variable Counts . . . . . . . . . . . . . . . 85 Unroll Small Loops . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18 Unrolling Loops . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 67
M
Memory
Pushing Memory Data . . . . . . . . . . . . . . . . . . . . . . . . . . . . 75 Size and Alignment Issues . . . . . . . . . . . . . . . . . . . . . . . 8, 45 Types . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 174 Memory Type Range Register (MTRR) . . . . . . . . . . . . . . . 171 Capability Register Format . . . . . . . . . . . . . . . . . . . . . . . 174 Default Type Register Format . . . . . . . . . . . . . . . . . . . . . 175 Extensions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 177
22007E/0 — November 1999
MOVZX and MOVSX Instructions . . . . . . . . . . . . . . . . . . . . 73 MSR Access . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 177 Multiplication
Alternative Code When Multiplying by a Constant . . . . 81 Matrix . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 119 Multiplies over Divides, Floating Point . . . . . . . . . . . . . . 97 Muxing Constructs. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 60
N
O
Operands. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 148
Largest Possible Operand Size, Repeated String . . . . . . 84
Optimization Star. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8
P
Page Attribute Table (PAT). . . . . . . . . . . . . . . . . 171,
Parallelism . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25
PerfCtr MSR . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 167
PerfEvtSel MSR . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 162
Pipeline and Execution Unit Resources Overview. . . . . . 141
Pointers
Use
Population Count Function. . . . . . . . . . . . . . . . . . . . . . . . . . 91
Predecode . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 132
Prefetch
Determing Distance. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 49
Multiple . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 47
Prototypes. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21
R
Recursive Functions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 66
Register Operands . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 128
Register Reads and Writes, Partial . . . . . . . . . . . . . . . . . . . 37
REP Prefix . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 40,
S
Scheduling . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 67 SHLD Instruction. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 38 SHR Instruction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 38 Signed Words to
Alignment Considerations . . . . . . . . . . . . . . . . . . . . . . . . 54 Allocation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 128
238 | Index |