1<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" 2 "http://www.w3.org/TR/html4/strict.dtd"> 3<html> 4<head> 5 <meta http-equiv="Content-Type" content="text/html; charset=utf-8"> 6 <title>Architecture/platform information for compiler writers</title> 7 <link rel="stylesheet" href="_static/llvm.css" type="text/css"> 8</head> 9 10<body> 11 12<h1> 13 Architecture/platform information for compiler writers 14</h1> 15 16<div class="doc_warning"> 17 <p>Note: This document is a work-in-progress. Additions and clarifications 18 are welcome.</p> 19</div> 20 21<ol> 22 <li><a href="#hw">Hardware</a> 23 <ol> 24 <li><a href="#arm">ARM</a></li> 25 <li><a href="#ia64">Itanium</a></li> 26 <li><a href="#mips">MIPS</a></li> 27 <li><a href="#ppc">PowerPC</a></li> 28 <li><a href="#sparc">SPARC</a></li> 29 <li><a href="#x86">X86</a></li> 30 <li><a href="#other">Other lists</a></li> 31 </ol></li> 32 <li><a href="#abi">Application Binary Interface (ABI)</a> 33 <ol> 34 <li><a href="#linux">Linux</a></li> 35 <li><a href="#osx">OS X</a></li> 36 </ol></li> 37 <li><a href="#misc">Miscellaneous resources</a></li> 38</ol> 39 40<div class="doc_author"> 41 <p>Compiled by <a href="http://misha.brukman.net">Misha Brukman</a></p> 42</div> 43 44<!-- *********************************************************************** --> 45<h2><a name="hw">Hardware</a></h2> 46<!-- *********************************************************************** --> 47 48<div> 49 50<!-- ======================================================================= --> 51<h3><a name="arm">ARM</a></h3> 52 53<div> 54<ul> 55<li><a href="http://www.arm.com/documentation/">ARM documentation</a> 56(<a href="http://www.arm.com/documentation/ARMProcessor_Cores/">Processor 57Cores</a>)</li> 58<li><a href="http://www.arm.com/products/DevTools/ABI.html">ABI</a></li> 59</ul> 60</div> 61 62<!-- ======================================================================= --> 63<h3><a name="ia64">Itanium (ia64)</a></h3> 64 65<div> 66<ul> 67<li><a 68href="http://developer.intel.com/design/itanium2/documentation.htm">Itanium documentation</a> 69</li> 70</ul> 71</div> 72 73<!-- ======================================================================= --> 74<h3><a name="mips">MIPS</a></h3> 75 76<div> 77<ul> 78<li><a 79href="http://mips.com/content/Documentation/MIPSDocumentation/ProcessorArchitecture/doclibrary">MIPS 80Processor Architecture</a></li> 81</ul> 82</div> 83 84<!-- ======================================================================= --> 85<h3><a name="ppc">PowerPC</a></h3> 86 87<div> 88 89<!-- _______________________________________________________________________ --> 90<h4>IBM - Official manuals and docs</h4> 91 92<div> 93 94<ul> 95<li><a 96href="http://www-106.ibm.com/developerworks/eserver/articles/archguide.html">PowerPC 97Architecture Book</a> 98<ul> 99 <li>Book I: <a 100 href="http://www-106.ibm.com/developerworks/eserver/pdfs/archpub1.pdf">PowerPC 101 User Instruction Set Architecture</a></li> 102 <li>Book II: <a 103 href="http://www-106.ibm.com/developerworks/eserver/pdfs/archpub2.pdf">PowerPC 104 Virtual Environment Architecture</a></li> 105 <li>Book III: <a 106 href="http://www-106.ibm.com/developerworks/eserver/pdfs/archpub3.pdf">PowerPC 107 Operating Environment Architecture</a></li> 108</ul></li> 109<li><a 110href="http://www-3.ibm.com/chips/techlib/techlib.nsf/techdocs/852569B20050FF7785256996007558C6">PowerPC 111Compiler Writer's Guide</a></li> 112<li><A 113href="http://www-3.ibm.com/chips/techlib/techlib.nsf/products/PowerPC">PowerPC 114Processor Manuals</a></li> 115<li><a 116href="http://www-106.ibm.com/developerworks/linux/library/l-powarch/">Intro to 117PowerPC architecture</a></li> 118<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> 119</ul> 120 121</div> 122 123<!-- _______________________________________________________________________ --> 124<h4>Other documents, collections, notes</h4> 125 126<div> 127 128<ul> 129<li><a href="http://penguinppc.org/dev/#library">PowerPC ABI documents</a></li> 130<li><a href="http://gcc.gnu.org/ml/gcc-patches/2003-09/msg00997.html">PowerPC64 131alignment of long doubles (from GCC)</a></li> 132<li><a href="http://sources.redhat.com/ml/binutils/2002-04/msg00573.html">Long 133branch stubs for powerpc64-linux (from binutils)</a></li> 134</ul> 135 136</div> 137 138</div> 139 140<!-- ======================================================================= --> 141<h3><a name="sparc">SPARC</a></h3> 142 143<div> 144 145<ul> 146<li><a href="http://www.sparc.org/resource.htm">SPARC resources</a></li> 147<li><a href="http://www.sparc.org/standards.html">SPARC standards</a></li> 148</ul> 149 150</div> 151 152<!-- ======================================================================= --> 153<h3><a name="x86">X86</a></h3> 154 155<div> 156 157<!-- _______________________________________________________________________ --> 158<h4>AMD - Official manuals and docs</h4> 159 160<div> 161<ul> 162<li><a 163href="http://www.amd.com/us-en/Processors/TechnicalResources/0,,30_182_739,00.html">AMD processor manuals</a></li> 164<li><a href="http://www.x86-64.org/documentation">X86-64 ABI</a></li> 165</ul> 166</div> 167 168<!-- _______________________________________________________________________ --> 169<h4>Intel - Official manuals and docs</h4> 170 171<div> 172<ul> 173<li><a 174href="http://developer.intel.com/design/pentium4/manuals/index_new.htm">IA-32 175manuals</a></li> 176<li><a 177href="http://www.intel.com/design/itanium/documentation.htm?iid=ipp_srvr_proc_itanium2+techdocs">Intel 178Itanium documentation</a></li> 179</ul> 180</div> 181 182<!-- _______________________________________________________________________ --> 183<h4>Other x86-specific information</h4> 184 185<div> 186<ul> 187<li><a href="http://www.agner.org/assem/calling_conventions.pdf">Calling 188conventions for different C++ compilers and operating systems</a></li> 189</ul> 190</div> 191 192</div> 193 194<!-- ======================================================================= --> 195<h3><a name="other">Other relevant lists</a></h3> 196 197<div> 198 199<ul> 200<li><a href="http://gcc.gnu.org/readings.html">GCC reading list</a></li> 201</ul> 202 203</div> 204 205</div> 206 207<!-- *********************************************************************** --> 208<h2><a name="abi">ABI</a></h2> 209<!-- *********************************************************************** --> 210 211<div> 212 213<!-- ======================================================================= --> 214<h3><a name="linux">Linux</a></h3> 215 216<div> 217<ol> 218<li><a href="http://www.linuxbase.org/spec/ELF/ppc64/">PowerPC 64-bit ELF ABI 219Supplement</a></li> 220</ol> 221</div> 222 223<!-- ======================================================================= --> 224<h3><a name="osx">OS X</a></h3> 225 226<div> 227<ol> 228<li><a 229href="http://developer.apple.com/documentation/Darwin/RuntimeArchitecture-date.html">Mach-O 230Runtime Architecture</a></li> 231<li><a href="http://www.unsanity.org/archives/000044.php">Notes on Mach-O 232ABI</a></li> 233</ol> 234 235</div> 236 237</div> 238 239<!-- *********************************************************************** --> 240<h2><a name="misc">Miscellaneous resources</a></h2> 241<!-- *********************************************************************** --> 242 243<ul> 244<li><a 245href="http://www.nondot.org/sabre/os/articles/ExecutableFileFormats/">Executable 246File Format library</a></li> 247<li><a href="http://gcc.gnu.org/projects/prefetch.html">GCC prefetch project</a> 248page has a good survey of the prefetching capabilities of a variety of modern 249processors.</li> 250</ul> 251 252<!-- *********************************************************************** --> 253 254<hr> 255<address> 256 <a href="http://jigsaw.w3.org/css-validator/check/referer"><img 257 src="http://jigsaw.w3.org/css-validator/images/vcss-blue" alt="Valid CSS"></a> 258 <a href="http://validator.w3.org/check/referer"><img 259 src="http://www.w3.org/Icons/valid-html401-blue" alt="Valid HTML 4.01"></a> 260 261 <a href="http://misha.brukman.net">Misha Brukman</a><br> 262 <a href="http://llvm.org/">LLVM Compiler Infrastructure</a><br> 263 Last modified: $Date$ 264</address> 265 266</body> 267</html> 268