2004-11-08 10:47:08 +08:00
< !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 = "llvm.css" type = "text/css" >
< / head >
2008-11-25 01:18:39 +08:00
< body >
2011-04-19 07:59:50 +08:00
< h1 >
2004-11-08 10:47:08 +08:00
Architecture/platform information for compiler writers
2011-04-19 07:59:50 +08:00
< / h1 >
2004-11-08 10:47:08 +08:00
< 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 >
2005-03-30 13:33:54 +08:00
< li > < a href = "#ia64" > Itanium< / a > < / li >
2004-11-08 10:47:08 +08:00
< 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 >
2005-03-12 05:18:18 +08:00
< li > < a href = "#misc" > Miscellaneous resources< / a > < / li >
2004-11-08 10:47:08 +08:00
< / ol >
< div class = "doc_author" >
< p > Compiled by < a href = "http://misha.brukman.net" > Misha Brukman< / a > < / p >
< / div >
<!-- *********************************************************************** -->
2011-04-19 07:59:50 +08:00
< h2 > < a name = "hw" > Hardware< / a > < / h2 >
2004-11-08 10:47:08 +08:00
<!-- *********************************************************************** -->
2011-04-23 08:30:22 +08:00
< div >
2005-03-30 09:14:38 +08:00
<!-- ======================================================================= -->
2011-04-19 07:59:50 +08:00
< h3 > < a name = "arm" > ARM< / a > < / h3 >
2004-11-08 10:47:08 +08:00
2011-04-23 08:30:22 +08:00
< div >
2004-11-08 10:47:08 +08:00
< 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 >
2006-08-23 05:56:43 +08:00
< li > < a href = "http://www.arm.com/products/DevTools/ABI.html" > ABI< / a > < / li >
2004-11-08 10:47:08 +08:00
< / ul >
< / div >
2005-03-30 13:33:54 +08:00
<!-- ======================================================================= -->
2011-04-19 07:59:50 +08:00
< h3 > < a name = "ia64" > Itanium (ia64)< / a > < / h3 >
2005-03-30 13:33:54 +08:00
2011-04-23 08:30:22 +08:00
< div >
2005-03-30 13:33:54 +08:00
< ul >
< li > < a
href="http://developer.intel.com/design/itanium2/documentation.htm">Itanium documentation< / a >
< / li >
< / ul >
< / div >
2004-11-08 10:47:08 +08:00
<!-- ======================================================================= -->
2011-04-19 07:59:50 +08:00
< h3 > < a name = "mips" > MIPS< / a > < / h3 >
2004-11-08 10:47:08 +08:00
2011-04-23 08:30:22 +08:00
< div >
2004-11-08 10:47:08 +08:00
< ul >
< li > < a
href="http://mips.com/content/Documentation/MIPSDocumentation/ProcessorArchitecture/doclibrary">MIPS
Processor Architecture< / a > < / li >
< / ul >
< / div >
<!-- ======================================================================= -->
2011-04-19 07:59:50 +08:00
< h3 > < a name = "ppc" > PowerPC< / a > < / h3 >
2004-11-08 10:47:08 +08:00
2011-04-23 08:30:22 +08:00
< div >
2004-11-08 10:47:08 +08:00
<!-- _______________________________________________________________________ -->
2011-04-19 07:59:50 +08:00
< h4 > IBM - Official manuals and docs< / h4 >
2004-11-08 10:47:08 +08:00
2011-04-23 08:30:22 +08:00
< div >
2004-11-08 10:47:08 +08:00
< 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 >
<!-- _______________________________________________________________________ -->
2011-04-19 07:59:50 +08:00
< h4 > Other documents, collections, notes< / h4 >
2004-11-08 10:47:08 +08:00
2011-04-23 08:30:22 +08:00
< div >
2004-11-08 10:47:08 +08:00
< 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 >
2011-04-23 08:30:22 +08:00
< / div >
2004-11-08 10:47:08 +08:00
<!-- ======================================================================= -->
2011-04-19 07:59:50 +08:00
< h3 > < a name = "sparc" > SPARC< / a > < / h3 >
2004-11-08 10:47:08 +08:00
2011-04-23 08:30:22 +08:00
< div >
2004-11-08 10:47:08 +08:00
< 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 >
<!-- ======================================================================= -->
2011-04-19 07:59:50 +08:00
< h3 > < a name = "x86" > X86< / a > < / h3 >
2004-11-08 10:47:08 +08:00
2011-04-23 08:30:22 +08:00
< div >
2004-11-08 10:47:08 +08:00
<!-- _______________________________________________________________________ -->
2011-04-19 07:59:50 +08:00
< h4 > AMD - Official manuals and docs< / h4 >
2004-11-08 10:47:08 +08:00
2011-04-23 08:30:22 +08:00
< div >
2004-11-08 10:47:08 +08:00
< ul >
< li > < a
href="http://www.amd.com/us-en/Processors/TechnicalResources/0,,30_182_739,00.html">AMD processor manuals< / a > < / li >
2005-05-15 06:06:42 +08:00
< li > < a href = "http://www.x86-64.org/documentation" > X86-64 ABI< / a > < / li >
2004-11-08 10:47:08 +08:00
< / ul >
< / div >
<!-- _______________________________________________________________________ -->
2011-04-19 07:59:50 +08:00
< h4 > Intel - Official manuals and docs< / h4 >
2004-11-08 10:47:08 +08:00
2011-04-23 08:30:22 +08:00
< div >
2004-11-08 10:47:08 +08:00
< 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 >
<!-- _______________________________________________________________________ -->
2011-04-19 07:59:50 +08:00
< h4 > Other x86-specific information< / h4 >
2004-11-08 10:47:08 +08:00
2011-04-23 08:30:22 +08:00
< div >
2004-11-08 10:47:08 +08:00
< 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 >
2011-04-23 08:30:22 +08:00
< / div >
2004-11-08 10:47:08 +08:00
<!-- ======================================================================= -->
2011-04-19 07:59:50 +08:00
< h3 > < a name = "other" > Other relevant lists< / a > < / h3 >
2004-11-08 10:47:08 +08:00
2011-04-23 08:30:22 +08:00
< div >
2004-11-08 10:47:08 +08:00
< ul >
< li > < a href = "http://gcc.gnu.org/readings.html" > GCC reading list< / a > < / li >
< / ul >
< / div >
2011-04-23 08:30:22 +08:00
< / div >
2004-11-08 10:47:08 +08:00
<!-- *********************************************************************** -->
2011-04-19 07:59:50 +08:00
< h2 > < a name = "abi" > ABI< / a > < / h2 >
2004-11-08 10:47:08 +08:00
<!-- *********************************************************************** -->
2011-04-23 08:30:22 +08:00
< div >
2004-11-08 10:47:08 +08:00
<!-- ======================================================================= -->
2011-04-19 07:59:50 +08:00
< h3 > < a name = "linux" > Linux< / a > < / h3 >
2004-11-08 10:47:08 +08:00
2011-04-23 08:30:22 +08:00
< div >
2004-11-08 10:47:08 +08:00
< ol >
< li > < a href = "http://www.linuxbase.org/spec/ELF/ppc64/" > PowerPC 64-bit ELF ABI
Supplement< / a > < / li >
< / ol >
< / div >
<!-- ======================================================================= -->
2011-04-19 07:59:50 +08:00
< h3 > < a name = "osx" > OS X< / a > < / h3 >
2004-11-08 10:47:08 +08:00
2011-04-23 08:30:22 +08:00
< div >
2004-11-08 10:47:08 +08:00
< 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 >
2011-04-23 08:30:22 +08:00
< / div >
2004-11-08 10:47:08 +08:00
<!-- *********************************************************************** -->
2011-04-19 07:59:50 +08:00
< h2 > < a name = "misc" > Miscellaneous resources< / a > < / h2 >
2004-11-08 10:47:08 +08:00
<!-- *********************************************************************** -->
< ul >
< li > < a
href="http://www.nondot.org/sabre/os/articles/ExecutableFileFormats/">Executable
File Format library< / a > < / li >
2005-03-12 05:18:18 +08:00
< 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 >
2004-11-08 10:47:08 +08:00
< / ul >
<!-- *********************************************************************** -->
< hr >
< address >
< a href = "http://jigsaw.w3.org/css-validator/check/referer" > < img
2008-12-12 01:34:48 +08:00
src="http://jigsaw.w3.org/css-validator/images/vcss-blue" alt="Valid CSS">< / a >
2004-11-08 10:47:08 +08:00
< a href = "http://validator.w3.org/check/referer" > < img
2008-12-12 01:34:48 +08:00
src="http://www.w3.org/Icons/valid-html401-blue" alt="Valid HTML 4.01">< / a >
2004-11-08 10:47:08 +08:00
< a href = "http://misha.brukman.net" > Misha Brukman< / a > < br >
2011-04-09 10:13:37 +08:00
< a href = "http://llvm.org/" > LLVM Compiler Infrastructure< / a > < br >
2004-11-08 10:47:08 +08:00
Last modified: $Date$
< / address >
< / body >
< / html >