blob: d9201fc8a4e2f410597a0143ddc64c6f7fd96e9a [file] [log] [blame]
Misha Brukmane3c803c2004-11-08 02:47:08 +00001<!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="llvm.css" type="text/css">
8</head>
9
Dan Gohmanf0032762008-11-24 17:18:39 +000010<body>
11
NAKAMURA Takumi05d02652011-04-18 23:59:50 +000012<h1>
Misha Brukmane3c803c2004-11-08 02:47:08 +000013 Architecture/platform information for compiler writers
NAKAMURA Takumi05d02652011-04-18 23:59:50 +000014</h1>
Misha Brukmane3c803c2004-11-08 02:47:08 +000015
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>
Misha Brukman2c5b1d22005-03-30 01:14:38 +000024 <li><a href="#alpha">Alpha</a></li>
Misha Brukmane3c803c2004-11-08 02:47:08 +000025 <li><a href="#arm">ARM</a></li>
Duraid Madina81dbf442005-03-30 05:33:54 +000026 <li><a href="#ia64">Itanium</a></li>
Misha Brukmane3c803c2004-11-08 02:47:08 +000027 <li><a href="#mips">MIPS</a></li>
28 <li><a href="#ppc">PowerPC</a></li>
29 <li><a href="#sparc">SPARC</a></li>
30 <li><a href="#x86">X86</a></li>
31 <li><a href="#other">Other lists</a></li>
32 </ol></li>
33 <li><a href="#abi">Application Binary Interface (ABI)</a>
34 <ol>
35 <li><a href="#linux">Linux</a></li>
36 <li><a href="#osx">OS X</a></li>
37 </ol></li>
Misha Brukman38d38282005-03-11 21:18:18 +000038 <li><a href="#misc">Miscellaneous resources</a></li>
Misha Brukmane3c803c2004-11-08 02:47:08 +000039</ol>
40
41<div class="doc_author">
42 <p>Compiled by <a href="http://misha.brukman.net">Misha Brukman</a></p>
43</div>
44
45<!-- *********************************************************************** -->
NAKAMURA Takumi05d02652011-04-18 23:59:50 +000046<h2><a name="hw">Hardware</a></h2>
Misha Brukmane3c803c2004-11-08 02:47:08 +000047<!-- *********************************************************************** -->
48
NAKAMURA Takumif5af6ad2011-04-23 00:30:22 +000049<div>
50
Misha Brukmane3c803c2004-11-08 02:47:08 +000051<!-- ======================================================================= -->
NAKAMURA Takumi05d02652011-04-18 23:59:50 +000052<h3><a name="alpha">Alpha</a></h3>
Misha Brukmane3c803c2004-11-08 02:47:08 +000053
NAKAMURA Takumif5af6ad2011-04-23 00:30:22 +000054<div>
Misha Brukman2c5b1d22005-03-30 01:14:38 +000055<ul>
56<li><a
57href="http://ftp.digital.com/pub/Digital/info/semiconductor/literature/dsc-library.html">Alpha manuals</a>
58</li>
59</ul>
60</div>
61
62<!-- ======================================================================= -->
NAKAMURA Takumi05d02652011-04-18 23:59:50 +000063<h3><a name="arm">ARM</a></h3>
Misha Brukmane3c803c2004-11-08 02:47:08 +000064
NAKAMURA Takumif5af6ad2011-04-23 00:30:22 +000065<div>
Misha Brukmane3c803c2004-11-08 02:47:08 +000066<ul>
67<li><a href="http://www.arm.com/documentation/">ARM documentation</a>
68(<a href="http://www.arm.com/documentation/ARMProcessor_Cores/">Processor
69Cores</a>)</li>
Misha Brukman4d595872006-08-22 21:56:43 +000070<li><a href="http://www.arm.com/products/DevTools/ABI.html">ABI</a></li>
Misha Brukmane3c803c2004-11-08 02:47:08 +000071</ul>
72</div>
73
74<!-- ======================================================================= -->
NAKAMURA Takumi05d02652011-04-18 23:59:50 +000075<h3><a name="ia64">Itanium (ia64)</a></h3>
Duraid Madina81dbf442005-03-30 05:33:54 +000076
NAKAMURA Takumif5af6ad2011-04-23 00:30:22 +000077<div>
Duraid Madina81dbf442005-03-30 05:33:54 +000078<ul>
79<li><a
80href="http://developer.intel.com/design/itanium2/documentation.htm">Itanium documentation</a>
81</li>
82</ul>
83</div>
84
85<!-- ======================================================================= -->
NAKAMURA Takumi05d02652011-04-18 23:59:50 +000086<h3><a name="mips">MIPS</a></h3>
Misha Brukmane3c803c2004-11-08 02:47:08 +000087
NAKAMURA Takumif5af6ad2011-04-23 00:30:22 +000088<div>
Misha Brukmane3c803c2004-11-08 02:47:08 +000089<ul>
90<li><a
91href="http://mips.com/content/Documentation/MIPSDocumentation/ProcessorArchitecture/doclibrary">MIPS
92Processor Architecture</a></li>
93</ul>
Misha Brukmane3c803c2004-11-08 02:47:08 +000094</div>
95
96<!-- ======================================================================= -->
NAKAMURA Takumi05d02652011-04-18 23:59:50 +000097<h3><a name="ppc">PowerPC</a></h3>
Misha Brukmane3c803c2004-11-08 02:47:08 +000098
NAKAMURA Takumif5af6ad2011-04-23 00:30:22 +000099<div>
100
Misha Brukmane3c803c2004-11-08 02:47:08 +0000101<!-- _______________________________________________________________________ -->
NAKAMURA Takumi05d02652011-04-18 23:59:50 +0000102<h4>IBM - Official manuals and docs</h4>
Misha Brukmane3c803c2004-11-08 02:47:08 +0000103
NAKAMURA Takumif5af6ad2011-04-23 00:30:22 +0000104<div>
Misha Brukmane3c803c2004-11-08 02:47:08 +0000105
106<ul>
107<li><a
108href="http://www-106.ibm.com/developerworks/eserver/articles/archguide.html">PowerPC
109Architecture Book</a>
110<ul>
111 <li>Book I: <a
112 href="http://www-106.ibm.com/developerworks/eserver/pdfs/archpub1.pdf">PowerPC
113 User Instruction Set Architecture</a></li>
114 <li>Book II: <a
115 href="http://www-106.ibm.com/developerworks/eserver/pdfs/archpub2.pdf">PowerPC
116 Virtual Environment Architecture</a></li>
117 <li>Book III: <a
118 href="http://www-106.ibm.com/developerworks/eserver/pdfs/archpub3.pdf">PowerPC
119 Operating Environment Architecture</a></li>
120</ul></li>
121<li><a
122href="http://www-3.ibm.com/chips/techlib/techlib.nsf/techdocs/852569B20050FF7785256996007558C6">PowerPC
123Compiler Writer's Guide</a></li>
124<li><A
125href="http://www-3.ibm.com/chips/techlib/techlib.nsf/products/PowerPC">PowerPC
126Processor Manuals</a></li>
127<li><a
128href="http://www-106.ibm.com/developerworks/linux/library/l-powarch/">Intro to
129PowerPC architecture</a></li>
130<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>
131</ul>
132
133</div>
134
135<!-- _______________________________________________________________________ -->
NAKAMURA Takumi05d02652011-04-18 23:59:50 +0000136<h4>Other documents, collections, notes</h4>
Misha Brukmane3c803c2004-11-08 02:47:08 +0000137
NAKAMURA Takumif5af6ad2011-04-23 00:30:22 +0000138<div>
Misha Brukmane3c803c2004-11-08 02:47:08 +0000139
140<ul>
141<li><a href="http://penguinppc.org/dev/#library">PowerPC ABI documents</a></li>
142<li><a href="http://gcc.gnu.org/ml/gcc-patches/2003-09/msg00997.html">PowerPC64
143alignment of long doubles (from GCC)</a></li>
144<li><a href="http://sources.redhat.com/ml/binutils/2002-04/msg00573.html">Long
145branch stubs for powerpc64-linux (from binutils)</a></li>
146</ul>
147
148</div>
149
NAKAMURA Takumif5af6ad2011-04-23 00:30:22 +0000150</div>
151
Misha Brukmane3c803c2004-11-08 02:47:08 +0000152<!-- ======================================================================= -->
NAKAMURA Takumi05d02652011-04-18 23:59:50 +0000153<h3><a name="sparc">SPARC</a></h3>
Misha Brukmane3c803c2004-11-08 02:47:08 +0000154
NAKAMURA Takumif5af6ad2011-04-23 00:30:22 +0000155<div>
Misha Brukmane3c803c2004-11-08 02:47:08 +0000156
157<ul>
158<li><a href="http://www.sparc.org/resource.htm">SPARC resources</a></li>
159<li><a href="http://www.sparc.org/standards.html">SPARC standards</a></li>
160</ul>
161
162</div>
163
164<!-- ======================================================================= -->
NAKAMURA Takumi05d02652011-04-18 23:59:50 +0000165<h3><a name="x86">X86</a></h3>
Misha Brukmane3c803c2004-11-08 02:47:08 +0000166
NAKAMURA Takumif5af6ad2011-04-23 00:30:22 +0000167<div>
168
Misha Brukmane3c803c2004-11-08 02:47:08 +0000169<!-- _______________________________________________________________________ -->
NAKAMURA Takumi05d02652011-04-18 23:59:50 +0000170<h4>AMD - Official manuals and docs</h4>
Misha Brukmane3c803c2004-11-08 02:47:08 +0000171
NAKAMURA Takumif5af6ad2011-04-23 00:30:22 +0000172<div>
Misha Brukmane3c803c2004-11-08 02:47:08 +0000173<ul>
174<li><a
175href="http://www.amd.com/us-en/Processors/TechnicalResources/0,,30_182_739,00.html">AMD processor manuals</a></li>
Chris Lattnerf5a5a6c2005-05-14 22:06:42 +0000176<li><a href="http://www.x86-64.org/documentation">X86-64 ABI</a></li>
Misha Brukmane3c803c2004-11-08 02:47:08 +0000177</ul>
178</div>
179
180<!-- _______________________________________________________________________ -->
NAKAMURA Takumi05d02652011-04-18 23:59:50 +0000181<h4>Intel - Official manuals and docs</h4>
Misha Brukmane3c803c2004-11-08 02:47:08 +0000182
NAKAMURA Takumif5af6ad2011-04-23 00:30:22 +0000183<div>
Misha Brukmane3c803c2004-11-08 02:47:08 +0000184<ul>
185<li><a
186href="http://developer.intel.com/design/pentium4/manuals/index_new.htm">IA-32
187manuals</a></li>
188<li><a
189href="http://www.intel.com/design/itanium/documentation.htm?iid=ipp_srvr_proc_itanium2+techdocs">Intel
190Itanium documentation</a></li>
191</ul>
192</div>
193
194<!-- _______________________________________________________________________ -->
NAKAMURA Takumi05d02652011-04-18 23:59:50 +0000195<h4>Other x86-specific information</h4>
Misha Brukmane3c803c2004-11-08 02:47:08 +0000196
NAKAMURA Takumif5af6ad2011-04-23 00:30:22 +0000197<div>
Misha Brukmane3c803c2004-11-08 02:47:08 +0000198<ul>
199<li><a href="http://www.agner.org/assem/calling_conventions.pdf">Calling
200conventions for different C++ compilers and operating systems</a></li>
201</ul>
202</div>
203
NAKAMURA Takumif5af6ad2011-04-23 00:30:22 +0000204</div>
205
Misha Brukmane3c803c2004-11-08 02:47:08 +0000206<!-- ======================================================================= -->
NAKAMURA Takumi05d02652011-04-18 23:59:50 +0000207<h3><a name="other">Other relevant lists</a></h3>
Misha Brukmane3c803c2004-11-08 02:47:08 +0000208
NAKAMURA Takumif5af6ad2011-04-23 00:30:22 +0000209<div>
Misha Brukmane3c803c2004-11-08 02:47:08 +0000210
211<ul>
212<li><a href="http://gcc.gnu.org/readings.html">GCC reading list</a></li>
213</ul>
214
215</div>
216
NAKAMURA Takumif5af6ad2011-04-23 00:30:22 +0000217</div>
218
Misha Brukmane3c803c2004-11-08 02:47:08 +0000219<!-- *********************************************************************** -->
NAKAMURA Takumi05d02652011-04-18 23:59:50 +0000220<h2><a name="abi">ABI</a></h2>
Misha Brukmane3c803c2004-11-08 02:47:08 +0000221<!-- *********************************************************************** -->
222
NAKAMURA Takumif5af6ad2011-04-23 00:30:22 +0000223<div>
224
Misha Brukmane3c803c2004-11-08 02:47:08 +0000225<!-- ======================================================================= -->
NAKAMURA Takumi05d02652011-04-18 23:59:50 +0000226<h3><a name="linux">Linux</a></h3>
Misha Brukmane3c803c2004-11-08 02:47:08 +0000227
NAKAMURA Takumif5af6ad2011-04-23 00:30:22 +0000228<div>
Misha Brukmane3c803c2004-11-08 02:47:08 +0000229<ol>
230<li><a href="http://www.linuxbase.org/spec/ELF/ppc64/">PowerPC 64-bit ELF ABI
231Supplement</a></li>
232</ol>
233</div>
234
235<!-- ======================================================================= -->
NAKAMURA Takumi05d02652011-04-18 23:59:50 +0000236<h3><a name="osx">OS X</a></h3>
Misha Brukmane3c803c2004-11-08 02:47:08 +0000237
NAKAMURA Takumif5af6ad2011-04-23 00:30:22 +0000238<div>
Misha Brukmane3c803c2004-11-08 02:47:08 +0000239<ol>
240<li><a
241href="http://developer.apple.com/documentation/Darwin/RuntimeArchitecture-date.html">Mach-O
242Runtime Architecture</a></li>
243<li><a href="http://www.unsanity.org/archives/000044.php">Notes on Mach-O
244ABI</a></li>
245</ol>
246
247</div>
248
NAKAMURA Takumif5af6ad2011-04-23 00:30:22 +0000249</div>
250
Misha Brukmane3c803c2004-11-08 02:47:08 +0000251<!-- *********************************************************************** -->
NAKAMURA Takumi05d02652011-04-18 23:59:50 +0000252<h2><a name="misc">Miscellaneous resources</a></h2>
Misha Brukmane3c803c2004-11-08 02:47:08 +0000253<!-- *********************************************************************** -->
254
255<ul>
256<li><a
257href="http://www.nondot.org/sabre/os/articles/ExecutableFileFormats/">Executable
258File Format library</a></li>
Misha Brukman38d38282005-03-11 21:18:18 +0000259<li><a href="http://gcc.gnu.org/projects/prefetch.html">GCC prefetch project</a>
260page has a good survey of the prefetching capabilities of a variety of modern
261processors.</li>
Misha Brukmane3c803c2004-11-08 02:47:08 +0000262</ul>
263
264<!-- *********************************************************************** -->
265
266<hr>
267<address>
268 <a href="http://jigsaw.w3.org/css-validator/check/referer"><img
Misha Brukman44408702008-12-11 17:34:48 +0000269 src="http://jigsaw.w3.org/css-validator/images/vcss-blue" alt="Valid CSS"></a>
Misha Brukmane3c803c2004-11-08 02:47:08 +0000270 <a href="http://validator.w3.org/check/referer"><img
Misha Brukman44408702008-12-11 17:34:48 +0000271 src="http://www.w3.org/Icons/valid-html401-blue" alt="Valid HTML 4.01"></a>
Misha Brukmane3c803c2004-11-08 02:47:08 +0000272
273 <a href="http://misha.brukman.net">Misha Brukman</a><br>
NAKAMURA Takumib9a33632011-04-09 02:13:37 +0000274 <a href="http://llvm.org/">LLVM Compiler Infrastructure</a><br>
Misha Brukmane3c803c2004-11-08 02:47:08 +0000275 Last modified: $Date$
276</address>
277
278</body>
279</html>