========================================================
Architecture & Platform Information for Compiler Writers
========================================================
.. contents::
:local:
.. note::
This document is a work-in-progress. Additions and clarifications are
welcome.
Hardware
========
ARM
---
* `ARM documentation `_ (`Processor Cores `_ Cores)
* `ABI `_
* `ABI Addenda and Errata `_
* `ARM C Language Extensions `_
AArch64
-------
* `ARMv8 Architecture Reference Manual `_
* `ARMv8 Instruction Set Overview `_
* `ARM C Language Extensions `_
Itanium (ia64)
--------------
* `Itanium documentation `_
MIPS
----
* `MIPS Processor Architecture `_
* `MIPS 64-bit ELF Object File Specification `_
PowerPC
-------
IBM - Official manuals and docs
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
* `Power Instruction Set Architecture, Versions 2.03 through 2.06 (authentication required, free sign-up) `_
* `PowerPC Compiler Writer's Guide `_
* `Intro to PowerPC Architecture `_
* `PowerPC Processor Manuals (embedded) `_
* `Various IBM specifications and white papers `_
* `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) `_
AMDGPU
------
* `AMD R6xx shader ISA `_
* `AMD R7xx shader ISA `_
* `AMD Evergreen shader ISA `_
* `AMD Cayman/Trinity shader ISA `_
* `AMD Southern Islands Series ISA `_
* `AMD Sea Islands Series ISA `_
* `AMD GPU Programming Guide `_
* `AMD Compute Resources `_
SPARC
-----
* `SPARC standards `_
* `SPARC V9 ABI `_
* `SPARC V8 ABI `_
SystemZ
-------
* `z/Architecture Principles of Operation (registration required, free sign-up) `_
X86
---
AMD - Official manuals and docs
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
* `AMD processor manuals `_
* `X86-64 ABI `_
Intel - Official manuals and docs
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
* `Intel 64 and IA-32 manuals `_
* `Intel Itanium documentation `_
Other x86-specific information
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
* `Calling conventions for different C++ compilers and operating systems `_
XCore
-----
* `The XMOS XS1 Architecture (ISA) `_
* `Tools Development Guide (includes ABI) `_
Other relevant lists
--------------------
* `GCC reading list `_
ABI
===
* `System V Application Binary Interface `_
* `Itanium C++ ABI `_
Linux
-----
* `PowerPC 64-bit ELF ABI Supplement `_
* `Procedure Call Standard for the AArch64 Architecture `_
* `ELF for the ARM Architecture `_
* `ELF for the ARM 64-bit Architecture (AArch64) `_
* `System z ELF ABI Supplement `_
OS X
----
* `Mach-O Runtime Architecture `_
* `Notes on Mach-O ABI `_
Windows
-------
* `Microsoft PE/COFF Specification `_
NVPTX
=====
* `CUDA Documentation `_ includes the PTX
ISA and Driver API documentation
Miscellaneous Resources
=======================
* `Executable File Format library `_
* `GCC prefetch project `_ page has a
good survey of the prefetching capabilities of a variety of modern
processors.