diff options
-rw-r--r-- | docs/CompilerWriterInfo.html | 267 | ||||
-rw-r--r-- | docs/CompilerWriterInfo.rst | 118 | ||||
-rw-r--r-- | docs/programming.rst | 5 |
3 files changed, 123 insertions, 267 deletions
diff --git a/docs/CompilerWriterInfo.html b/docs/CompilerWriterInfo.html deleted file mode 100644 index 66190655fa..0000000000 --- a/docs/CompilerWriterInfo.html +++ /dev/null @@ -1,267 +0,0 @@ -<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" - "http://www.w3.org/TR/html4/strict.dtd"> -<html> -<head> - <meta http-equiv="Content-Type" content="text/html; charset=utf-8"> - <title>Architecture/platform information for compiler writers</title> - <link rel="stylesheet" href="_static/llvm.css" type="text/css"> -</head> - -<body> - -<h1> - Architecture/platform information for compiler writers -</h1> - -<div class="doc_warning"> - <p>Note: This document is a work-in-progress. Additions and clarifications - are welcome.</p> -</div> - -<ol> - <li><a href="#hw">Hardware</a> - <ol> - <li><a href="#arm">ARM</a></li> - <li><a href="#ia64">Itanium</a></li> - <li><a href="#mips">MIPS</a></li> - <li><a href="#ppc">PowerPC</a></li> - <li><a href="#sparc">SPARC</a></li> - <li><a href="#x86">X86</a></li> - <li><a href="#other">Other lists</a></li> - </ol></li> - <li><a href="#abi">Application Binary Interface (ABI)</a> - <ol> - <li><a href="#linux">Linux</a></li> - <li><a href="#osx">OS X</a></li> - </ol></li> - <li><a href="#misc">Miscellaneous resources</a></li> -</ol> - -<div class="doc_author"> - <p>Compiled by <a href="http://misha.brukman.net">Misha Brukman</a></p> -</div> - -<!-- *********************************************************************** --> -<h2><a name="hw">Hardware</a></h2> -<!-- *********************************************************************** --> - -<div> - -<!-- ======================================================================= --> -<h3><a name="arm">ARM</a></h3> - -<div> -<ul> -<li><a href="http://www.arm.com/documentation/">ARM documentation</a> -(<a href="http://www.arm.com/documentation/ARMProcessor_Cores/">Processor -Cores</a>)</li> -<li><a href="http://www.arm.com/products/DevTools/ABI.html">ABI</a></li> -</ul> -</div> - -<!-- ======================================================================= --> -<h3><a name="ia64">Itanium (ia64)</a></h3> - -<div> -<ul> -<li><a -href="http://developer.intel.com/design/itanium2/documentation.htm">Itanium documentation</a> -</li> -</ul> -</div> - -<!-- ======================================================================= --> -<h3><a name="mips">MIPS</a></h3> - -<div> -<ul> -<li><a -href="http://mips.com/content/Documentation/MIPSDocumentation/ProcessorArchitecture/doclibrary">MIPS -Processor Architecture</a></li> -</ul> -</div> - -<!-- ======================================================================= --> -<h3><a name="ppc">PowerPC</a></h3> - -<div> - -<!-- _______________________________________________________________________ --> -<h4>IBM - Official manuals and docs</h4> - -<div> - -<ul> -<li><a -href="http://www-106.ibm.com/developerworks/eserver/articles/archguide.html">PowerPC -Architecture Book</a> -<ul> - <li>Book I: <a - href="http://www-106.ibm.com/developerworks/eserver/pdfs/archpub1.pdf">PowerPC - User Instruction Set Architecture</a></li> - <li>Book II: <a - href="http://www-106.ibm.com/developerworks/eserver/pdfs/archpub2.pdf">PowerPC - Virtual Environment Architecture</a></li> - <li>Book III: <a - href="http://www-106.ibm.com/developerworks/eserver/pdfs/archpub3.pdf">PowerPC - Operating Environment Architecture</a></li> -</ul></li> -<li><a -href="http://www-3.ibm.com/chips/techlib/techlib.nsf/techdocs/852569B20050FF7785256996007558C6">PowerPC -Compiler Writer's Guide</a></li> -<li><A -href="http://www-3.ibm.com/chips/techlib/techlib.nsf/products/PowerPC">PowerPC -Processor Manuals</a></li> -<li><a -href="http://www-106.ibm.com/developerworks/linux/library/l-powarch/">Intro to -PowerPC architecture</a></li> -<li><a href="http://publibn.boulder.ibm.com/doc_link/en_US/a_doc_lib/aixassem/alangref/alangreftfrm.htm">IBM AIX/5L for POWER Assembly reference</a></li> -</ul> - -</div> - -<!-- _______________________________________________________________________ --> -<h4>Other documents, collections, notes</h4> - -<div> - -<ul> -<li><a href="http://penguinppc.org/dev/#library">PowerPC ABI documents</a></li> -<li><a href="http://gcc.gnu.org/ml/gcc-patches/2003-09/msg00997.html">PowerPC64 -alignment of long doubles (from GCC)</a></li> -<li><a href="http://sources.redhat.com/ml/binutils/2002-04/msg00573.html">Long -branch stubs for powerpc64-linux (from binutils)</a></li> -</ul> - -</div> - -</div> - -<!-- ======================================================================= --> -<h3><a name="sparc">SPARC</a></h3> - -<div> - -<ul> -<li><a href="http://www.sparc.org/resource.htm">SPARC resources</a></li> -<li><a href="http://www.sparc.org/standards.html">SPARC standards</a></li> -</ul> - -</div> - -<!-- ======================================================================= --> -<h3><a name="x86">X86</a></h3> - -<div> - -<!-- _______________________________________________________________________ --> -<h4>AMD - Official manuals and docs</h4> - -<div> -<ul> -<li><a -href="http://www.amd.com/us-en/Processors/TechnicalResources/0,,30_182_739,00.html">AMD processor manuals</a></li> -<li><a href="http://www.x86-64.org/documentation">X86-64 ABI</a></li> -</ul> -</div> - -<!-- _______________________________________________________________________ --> -<h4>Intel - Official manuals and docs</h4> - -<div> -<ul> -<li><a -href="http://developer.intel.com/design/pentium4/manuals/index_new.htm">IA-32 -manuals</a></li> -<li><a -href="http://www.intel.com/design/itanium/documentation.htm?iid=ipp_srvr_proc_itanium2+techdocs">Intel -Itanium documentation</a></li> -</ul> -</div> - -<!-- _______________________________________________________________________ --> -<h4>Other x86-specific information</h4> - -<div> -<ul> -<li><a href="http://www.agner.org/assem/calling_conventions.pdf">Calling -conventions for different C++ compilers and operating systems</a></li> -</ul> -</div> - -</div> - -<!-- ======================================================================= --> -<h3><a name="other">Other relevant lists</a></h3> - -<div> - -<ul> -<li><a href="http://gcc.gnu.org/readings.html">GCC reading list</a></li> -</ul> - -</div> - -</div> - -<!-- *********************************************************************** --> -<h2><a name="abi">ABI</a></h2> -<!-- *********************************************************************** --> - -<div> - -<!-- ======================================================================= --> -<h3><a name="linux">Linux</a></h3> - -<div> -<ol> -<li><a href="http://www.linuxbase.org/spec/ELF/ppc64/">PowerPC 64-bit ELF ABI -Supplement</a></li> -</ol> -</div> - -<!-- ======================================================================= --> -<h3><a name="osx">OS X</a></h3> - -<div> -<ol> -<li><a -href="http://developer.apple.com/documentation/Darwin/RuntimeArchitecture-date.html">Mach-O -Runtime Architecture</a></li> -<li><a href="http://www.unsanity.org/archives/000044.php">Notes on Mach-O -ABI</a></li> -</ol> - -</div> - -</div> - -<!-- *********************************************************************** --> -<h2><a name="misc">Miscellaneous resources</a></h2> -<!-- *********************************************************************** --> - -<ul> -<li><a -href="http://www.nondot.org/sabre/os/articles/ExecutableFileFormats/">Executable -File Format library</a></li> -<li><a href="http://gcc.gnu.org/projects/prefetch.html">GCC prefetch project</a> -page has a good survey of the prefetching capabilities of a variety of modern -processors.</li> -</ul> - -<!-- *********************************************************************** --> - -<hr> -<address> - <a href="http://jigsaw.w3.org/css-validator/check/referer"><img - src="http://jigsaw.w3.org/css-validator/images/vcss-blue" alt="Valid CSS"></a> - <a href="http://validator.w3.org/check/referer"><img - src="http://www.w3.org/Icons/valid-html401-blue" alt="Valid HTML 4.01"></a> - - <a href="http://misha.brukman.net">Misha Brukman</a><br> - <a href="http://llvm.org/">LLVM Compiler Infrastructure</a><br> - Last modified: $Date$ -</address> - -</body> -</html> diff --git a/docs/CompilerWriterInfo.rst b/docs/CompilerWriterInfo.rst new file mode 100644 index 0000000000..e41f5f9eec --- /dev/null +++ b/docs/CompilerWriterInfo.rst @@ -0,0 +1,118 @@ +.. _compiler_writer_info: + +======================================================== +Architecture & Platform Information for Compiler Writers +======================================================== + +.. contents:: + :local: + +.. note:: + + This document is a work-in-progress. Additions and clarifications are + welcome. + + Compiled by `Misha Brukman <http://misha.brukman.net>`_. + +Hardware +======== + +ARM +--- + +* `ARM documentation <http://www.arm.com/documentation/>`_ (`Processor Cores <http://www.arm.com/documentation/ARMProcessor_Cores/>`_ Cores) + +* `ABI <http://www.arm.com/products/DevTools/ABI.html>`_ + +Itanium (ia64) +-------------- + +* `Itanium documentation <http://developer.intel.com/design/itanium2/documentation.htm>`_ + +MIPS +---- + +* `MIPS Processor Architecture <http://mips.com/content/Documentation/MIPSDocumentation/ProcessorArchitecture/doclibrary>`_ + +PowerPC +------- + +IBM - Official manuals and docs +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +* `PowerPC Architecture Book <http://www-106.ibm.com/developerworks/eserver/articles/archguide.html>`_ + + * Book I: `PowerPC User Instruction Set Architecture <http://www-106.ibm.com/developerworks/eserver/pdfs/archpub1.pdf>`_ + + * Book II: `PowerPC Virtual Environment Architecture <http://www-106.ibm.com/developerworks/eserver/pdfs/archpub2.pdf>`_ + + * Book III: `PowerPC Operating Environment Architecture <http://www-106.ibm.com/developerworks/eserver/pdfs/archpub3.pdf>`_ + +* `PowerPC Compiler Writer's Guide <http://www-3.ibm.com/chips/techlib/techlib.nsf/techdocs/852569B20050FF7785256996007558C6>`_ + +* `PowerPC Processor Manuals <http://www-3.ibm.com/chips/techlib/techlib.nsf/products/PowerPC>`_ + +* `Intro to PowerPC Architecture <http://www-106.ibm.com/developerworks/linux/library/l-powarch/>`_ + +* `IBM AIX/5L for POWER Assembly Reference <http://publibn.boulder.ibm.com/doc_link/en_US/a_doc_lib/aixassem/alangref/alangreftfrm.htm>`_ + +Other documents, collections, notes +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +* `PowerPC ABI documents <http://penguinppc.org/dev/#library>`_ +* `PowerPC64 alignment of long doubles (from GCC) <http://gcc.gnu.org/ml/gcc-patches/2003-09/msg00997.html>`_ +* `Long branch stubs for powerpc64-linux (from binutils) <http://sources.redhat.com/ml/binutils/2002-04/msg00573.html>`_ + +SPARC +----- + +* `SPARC resources <http://www.sparc.org/resource.htm>`_ +* `SPARC standards <http://www.sparc.org/standards.html>`_ + +X86 +--- + +AMD - Official manuals and docs +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +* `AMD processor manuals <http://www.amd.com/us-en/Processors/TechnicalResources/0,,30_182_739,00.html>`_ +* `X86-64 ABI <http://www.x86-64.org/documentation>`_ + +Intel - Official manuals and docs +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +* `IA-32 manuals <http://developer.intel.com/design/pentium4/manuals/index_new.htm>`_ +* `Intel Itanium documentation <http://www.intel.com/design/itanium/documentation.htm?iid=ipp_srvr_proc_itanium2+techdocs>`_ + +Other x86-specific information +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +* `Calling conventions for different C++ compilers and operating systems <http://www.agner.org/assem/calling_conventions.pdf>`_ + +Other relevant lists +-------------------- + +* `GCC reading list <http://gcc.gnu.org/readings.html>`_ + +ABI +=== + +Linux +----- + +* `PowerPC 64-bit ELF ABI Supplement <http://www.linuxbase.org/spec/ELF/ppc64/>`_ + +OS X +---- + +* `Mach-O Runtime Architecture <http://developer.apple.com/documentation/Darwin/RuntimeArchitecture-date.html>`_ +* `Notes on Mach-O ABI <http://www.unsanity.org/archives/000044.php>`_ + +Miscellaneous Resources +======================= + +* `Executable File Format library <http://www.nondot.org/sabre/os/articles/ExecutableFileFormats/>`_ + +* `GCC prefetch project <http://gcc.gnu.org/projects/prefetch.html>`_ page has a + good survey of the prefetching capabilities of a variety of modern + processors. diff --git a/docs/programming.rst b/docs/programming.rst index fe2604fbb7..e8acc1d2e0 100644 --- a/docs/programming.rst +++ b/docs/programming.rst @@ -8,6 +8,7 @@ Programming Documentation CodingStandards CommandLine + CompilerWriterInfo Atomics HowToSetUpLLVMStyleRTTI @@ -49,3 +50,7 @@ Programming Documentation (`tarball <http://llvm.org/doxygen/doxygen.tar.gz>`_) * `ViewVC Repository Browser <http://llvm.org/viewvc/>`_ + +* :ref:`compiler_writer_info` + + A list of helpful links for compiler writers. |