Architecture/platform information for compiler writers

Note: This document is a work-in-progress. Additions and clarifications are welcome.

1. Hardware
   1. Alpha
   2. ARM
   3. Itanium
   4. MIPS
   5. PowerPC
   6. SPARC
   7. X86
   8. Other lists
2. Application Binary Interface (ABI)
   1. Linux
   2. OS X
3. Miscellaneous resources

Compiled by Misha Brukman

Hardware
Alpha

- Alpha manuals

ARM

- ARM documentation (Processor Cores)

Itanium (ia64)

- Itanium documentation

MIPS

- MIPS Processor Architecture

PowerPC
IBM - Official manuals and docs

- PowerPC Architecture Book
  - Book I: PowerPC User Instruction Set Architecture
  - Book II: PowerPC Virtual Environment Architecture
  - Book III: PowerPC Operating Environment Architecture
- PowerPC Compiler Writer's Guide
- PowerPC Processor Manuals
- Intro to PowerPC architecture
- IBM AIX/5L for POWER Assembly reference

Other documents, collections, notes

- PowerPC ABI documents
- PowerPC64 alignment of long doubles (from GCC)
- Long branch stubs for powerpc64-linux (from binutils)

SPARC

- SPARC resources
- SPARC standards

X86
AMD - Official manuals and docs

- AMD processor manuals
- X86-64 ABI

Intel - Official manuals and docs

- IA-32 manuals
- Intel Itanium documentation

Other x86-specific information

- Calling conventions for different C++ compilers and operating systems

Other relevant lists

- GCC reading list

ABI
Linux

1. PowerPC 64-bit ELF ABI Supplement

OS X

1. Mach-O Runtime Architecture
2. Notes on Mach-O ABI

Miscellaneous resources

- Executable File Format library
- GCC prefetch project page has a good survey of the prefetching capabilities of a variety of modern processors.