======================================================== 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 Instruction Set Overview `_ * `ARM C Language Extensions `_ Itanium (ia64) -------------- * `Itanium documentation `_ MIPS ---- * `MIPS Processor Architecture `_ 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) `_ R600 ---- * `AMD R6xx shader ISA `_ * `AMD R7xx shader ISA `_ * `AMD Evergreen shader ISA `_ * `AMD Cayman/Trinity shader ISA `_ * `AMD Southern 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 `_ 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.