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 57 Cores</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 68 href="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 79 href="http://mips.com/content/Documentation/MIPSDocumentation/ProcessorArchitecture/doclibrary">MIPS 80 Processor 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 96 href="http://www-106.ibm.com/developerworks/eserver/articles/archguide.html">PowerPC 97 Architecture 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 110 href="http://www-3.ibm.com/chips/techlib/techlib.nsf/techdocs/852569B20050FF7785256996007558C6">PowerPC 111 Compiler Writer's Guide</a></li> 112 <li><A 113 href="http://www-3.ibm.com/chips/techlib/techlib.nsf/products/PowerPC">PowerPC 114 Processor Manuals</a></li> 115 <li><a 116 href="http://www-106.ibm.com/developerworks/linux/library/l-powarch/">Intro to 117 PowerPC 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 131 alignment of long doubles (from GCC)</a></li> 132 <li><a href="http://sources.redhat.com/ml/binutils/2002-04/msg00573.html">Long 133 branch 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 163 href="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 174 href="http://developer.intel.com/design/pentium4/manuals/index_new.htm">IA-32 175 manuals</a></li> 176 <li><a 177 href="http://www.intel.com/design/itanium/documentation.htm?iid=ipp_srvr_proc_itanium2+techdocs">Intel 178 Itanium 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 188 conventions 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 219 Supplement</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 229 href="http://developer.apple.com/documentation/Darwin/RuntimeArchitecture-date.html">Mach-O 230 Runtime Architecture</a></li> 231 <li><a href="http://www.unsanity.org/archives/000044.php">Notes on Mach-O 232 ABI</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 245 href="http://www.nondot.org/sabre/os/articles/ExecutableFileFormats/">Executable 246 File Format library</a></li> 247 <li><a href="http://gcc.gnu.org/projects/prefetch.html">GCC prefetch project</a> 248 page has a good survey of the prefetching capabilities of a variety of modern 249 processors.</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