AMD64 Software Optimization
This guide provides optimization information and recommendation for the AMD Athlon™ 64 and AMD Opteron™ processors. These optimizations are designed to yield software code that is fast, compact, and efficient.
View this PDF Document
AMD64 BIOS and Kernel Developer's Guide
The BIOS and Kernel Developer's Guide for the AMD Athlon™ 64 and AMD Opteron™ Processors is intended for programmers involved in the development of low-level BIOS (basic input/output system) functions, drivers, and operating system kernel modules. This guide covers the implementation-specific features of AMD Athlon 64 and AMD Opteron processors, as opposed to architectural features.
View this PDF Document
Value of AMD64 Instruction Set Architecture (ISA) Whitepaper
by Dave Kaplowitz
This paper presents a brief overview of the AMD64 ISA. This is followed by a description of the benefits of the instruction set. The most significant benefits of the AMD64 ISA are:
- An extended flat address space which allows programs to address memory beyond 4 GB.
- Native 32-bit x86 compatibility which allows 64-bit and 32-bit applications to run on a 64-bit operating system.
- Support for the 16 GPRs and 16 XMM registers - double the number of registers present in the 32-bit x86 instruction set.
- The ease of porting software from 32-bit to 64-bit systems.
View this PDF Document
AMD64 Architecture Programmer's Manual Volume 1:
Application Programming
Content covered in Volume 1 includes:
- Register details
- 64-bit and legacy mode instruction summary
- Operands
- 64-bit and 128-bit Media instructions
- x87 Floating-point instructions
View this PDF Document
AMD64 Architecture Programmer's Manual Volume 2:
System Programming
Volume 2 provides in-depth coverage of system details of interest to BIOS and kernel developers, as well as to those interested in general system architecture.
- Differences between x86-64 and x86 architectures
- Memory and memory management
- Operating modes
- System resources
- Exceptions and interrupts
- Machine check mechanism
- Debug and performance monitoring
- Processor initialization
View this PDF Document
AMD64 Architecture Programmer's Manual Volume 3:
General-Purpose and System Instructions
Volume 3 includes comprehensive coverage of:
- Legacy and 64-bit integer instructions
- x86-64 system programming instructions
- Microprocessor exceptions
- Condition flags affected
- Instruction opcode mappings
View this PDF Document
AMD64 Architecture Programmer's Manual Volume 4:
128-Bit Media Instructions
Volume 4 provides detailed coverage of the operation and usage of the 128-bit instructions used most widely for the development of scientific and media applications. Content covered in Volume 4 includes:
- XMM instructions, originally introduced as SSE and SSE2 instructions used extensively in scientific applications and media.
- XMM condition flags affected
- Microprocessor exceptions generated
View this PDF Document
AMD64 Architecture Programmer's Manual Volume 5:
64-Bit Media and x87 Floating-Point Instructions
Volume 5 of the AMD64 Architecture Programmer's Manual includes comprehensive details of the 64-bit media and legacy x87 floating-point Instructions.
Volume 5 covers:
- 64-bit MMX Instructions
- 3DNow! Instructions
- x87 Floating-Point Instructions
- x87 and 64-bit media exceptions
View this PDF Document
Porting x86 Linux device drivers to AMD64 Technology
The AMD64 instruction set architecture is a 64-bit extension of the x86 instruction set. AMD64 processors can run in longmode, with AMD64 instructions and 64 bit registers and addressing, or in compatibility mode, with x86 instructions and 32 bit registers and addressing. Although the processor can schedule processes to run in compatibility mode while the operating system runs in long mode, a single process cannot have both x86 and AMD64 code segments linked together, nor can a single process run in both long and compatibility modes. This means that the AMD64 Linux kernel cannot use x86 drivers unless the drivers are recompiled to the AMD64 architecture. This paper provides code samples and instruction on porting x86 device drivers to AMD64 on Linux.
View this HTML Document
X86 system simulator
x86 system simulator running under GNU/Linux. The simulated system contains an AMD64 technology-enabled chip, RAM, disks, and VGA.
Gentle Introduction to x86-64 Assembly
Find assembly code definitions for structures that map directly onto the hardware, such as the processor TSS structures. These assembly files are written for the MASM assembler. To download the files, you have to agree to the license agreement.
http://www.amd64.org/documentation/cvsaccess
The online CVS archives contain the AMD64 ABI specification, gdb, the Linux kernel and some other packages that we needed or worked on. The archives contain also the ports of GCC, binutils and glibc. Since all patches have been moved into the official sources, those repositories are not maintained any more and have been renamed. All work is now done in the official CVS repositories which are documented at the home pages of the projects:
GCC
http://gcc.gnu.org
binutils
http://sources.redhat.com/binutils
glibc
http://sources.redhat.com/glibc
Mailing Lists
Mailing lists discussing AMD64 architecture on GNU/Linux
http://www.amd64.org/contributors/documentation/mailinglists
|