How to optimize for the pentium processor 1996 - Agner Fog This article describes many techniques that can be used in assembler to optimize the execution. Examples such as pairing of instructions, eliminating branches, etc are shown with examples and references. Intel Architecture Software Developer's Manual This manual hold the architecture, instruction sets, and programming guide for all of Intel's processors. Intel Architecture Optimization Reference Manual Code optimization techniques for Pentium, Pentium II, and Pentium III. A very good manual that tells you how to optimize common tasks as branches and loops, as well as how to use MMX and SSE. Intel Pentium 4 Processor Optimization Reference Manual Code optimization techniques for Pentium 4, including MMX, SSE, and SSE2. AMD Athlon Processor x86 Code Optimization Guide
AMD Processor Recognition Application Note Aug 2001
Optimizing for SSE: A Case Study Sep 2002 - Cort Stratton This article explains very well how the SSE instructions work and how to optimize your assembler routines for Pentium 3. As the practical example it uses the vector*matrix multiplication common in 3D applications. Introduction to MMX August, 2002 - Andreas Jönsson This article shows how to use MMX to optimize your integer calculations. NASM documentation This is the documentation for the NASM assembler. I highly recommend this documentation for any assembler writer as it contains an very good reference to the PC assembler instruction set, including indicators for which CPU models run which instructions. AMD
Intel's developer site
SSE2 for Dummies (who know C/C++) September, 2003 - Zach Dwiel This articles gives an introduction to SSE2 and shows how to use it with both MSVC and GCC. SoftWire source code SoftWire library source code, before it was bought by TransGaming. Optimizing subroutines in assembly language: An optimization guide for x86 platforms Aug, 2006 - Agner Fog
The microarchitecture of Intel and AMD CPU’s: An optimization guide for assembly programmers and compiler makers Aug, 2006 - Agner Fog
Instruction tables: Lists of instruction latencies, throughputs and micro-operation breakdowns for Intel and AMD CPU's Aug, 2006 - Agner Fog The article gives detailed information about machine instructions for optimization at assembly level. Agner Fog's home page Agner Fog This site has valuable information on software optimizations, and also a few other cool stuff, such as random number generators, CPU detection routines, and links to other resources. Mac OS X Assembler Reference This is the official reference manual for assembler on Mac OS X and covers both PPC and x86 CPUs. Mac OS X ABI Function Call Guide Nov, 2006 - Apple This is the official guide to the Mac OS X ABI. It covers both 32bit and 64bit PowerPC, as well as 32bit IA-32 (x86). GCC-Inline-Assembly-HOWTO Mar, 2003 - Sandeep S This article gives a good explanation of how GCC inline assembly should be used. |