# Architecture/platform information for compiler writers

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

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

Compiled by Misha Brukman

## Hardware

### ARM

- ARM documentation (Processor Cores)
- ABI

### 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.