======================================================== 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) * `ELF ABI `_ * `Addenda to the ARM ABI `_ * `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) `_ SPARC ----- * `SPARC resources `_ * `SPARC standards `_ 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 === Linux ----- * `PowerPC 64-bit ELF ABI Supplement `_ * `Procedure Call Standard for the AArch64 Architecture `_ * `ELF for the ARM 64-bit Architecture (AArch64) `_ OS X ---- * `Mach-O Runtime Architecture `_ * `Notes on Mach-O ABI `_ 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.