blob: 857a1d413a4293ac6ed1fbb672ce955e95fad212 [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>
24 <li><a href="#arm">ARM</a></li>
Duraid Madina81dbf442005-03-30 05:33:54 +000025 <li><a href="#ia64">Itanium</a></li>
Misha Brukmane3c803c2004-11-08 02:47:08 +000026 <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>
Misha Brukman38d38282005-03-11 21:18:18 +000037 <li><a href="#misc">Miscellaneous resources</a></li>
Misha Brukmane3c803c2004-11-08 02:47:08 +000038</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<!-- *********************************************************************** -->
NAKAMURA Takumi05d02652011-04-18 23:59:50 +000045<h2><a name="hw">Hardware</a></h2>
Misha Brukmane3c803c2004-11-08 02:47:08 +000046<!-- *********************************************************************** -->
47
NAKAMURA Takumif5af6ad2011-04-23 00:30:22 +000048<div>
49
Misha Brukmane3c803c2004-11-08 02:47:08 +000050<!-- ======================================================================= -->
NAKAMURA Takumi05d02652011-04-18 23:59:50 +000051<h3><a name="arm">ARM</a></h3>
Misha Brukmane3c803c2004-11-08 02:47:08 +000052
NAKAMURA Takumif5af6ad2011-04-23 00:30:22 +000053<div>
Misha Brukmane3c803c2004-11-08 02:47:08 +000054<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>
Misha Brukman4d595872006-08-22 21:56:43 +000058<li><a href="http://www.arm.com/products/DevTools/ABI.html">ABI</a></li>
Misha Brukmane3c803c2004-11-08 02:47:08 +000059</ul>
60</div>
61
62<!-- ======================================================================= -->
NAKAMURA Takumi05d02652011-04-18 23:59:50 +000063<h3><a name="ia64">Itanium (ia64)</a></h3>
Duraid Madina81dbf442005-03-30 05:33:54 +000064
NAKAMURA Takumif5af6ad2011-04-23 00:30:22 +000065<div>
Duraid Madina81dbf442005-03-30 05:33:54 +000066<ul>
67<li><a
68href="http://developer.intel.com/design/itanium2/documentation.htm">Itanium documentation</a>
69</li>
70</ul>
71</div>
72
73<!-- ======================================================================= -->
NAKAMURA Takumi05d02652011-04-18 23:59:50 +000074<h3><a name="mips">MIPS</a></h3>
Misha Brukmane3c803c2004-11-08 02:47:08 +000075
NAKAMURA Takumif5af6ad2011-04-23 00:30:22 +000076<div>
Misha Brukmane3c803c2004-11-08 02:47:08 +000077<ul>
78<li><a
79href="http://mips.com/content/Documentation/MIPSDocumentation/ProcessorArchitecture/doclibrary">MIPS
80Processor Architecture</a></li>
81</ul>
Misha Brukmane3c803c2004-11-08 02:47:08 +000082</div>
83
84<!-- ======================================================================= -->
NAKAMURA Takumi05d02652011-04-18 23:59:50 +000085<h3><a name="ppc">PowerPC</a></h3>
Misha Brukmane3c803c2004-11-08 02:47:08 +000086
NAKAMURA Takumif5af6ad2011-04-23 00:30:22 +000087<div>
88
Misha Brukmane3c803c2004-11-08 02:47:08 +000089<!-- _______________________________________________________________________ -->
NAKAMURA Takumi05d02652011-04-18 23:59:50 +000090<h4>IBM - Official manuals and docs</h4>
Misha Brukmane3c803c2004-11-08 02:47:08 +000091
NAKAMURA Takumif5af6ad2011-04-23 00:30:22 +000092<div>
Misha Brukmane3c803c2004-11-08 02:47:08 +000093
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<!-- _______________________________________________________________________ -->
NAKAMURA Takumi05d02652011-04-18 23:59:50 +0000124<h4>Other documents, collections, notes</h4>
Misha Brukmane3c803c2004-11-08 02:47:08 +0000125
NAKAMURA Takumif5af6ad2011-04-23 00:30:22 +0000126<div>
Misha Brukmane3c803c2004-11-08 02:47:08 +0000127
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
NAKAMURA Takumif5af6ad2011-04-23 00:30:22 +0000138</div>
139
Misha Brukmane3c803c2004-11-08 02:47:08 +0000140<!-- ======================================================================= -->
NAKAMURA Takumi05d02652011-04-18 23:59:50 +0000141<h3><a name="sparc">SPARC</a></h3>
Misha Brukmane3c803c2004-11-08 02:47:08 +0000142
NAKAMURA Takumif5af6ad2011-04-23 00:30:22 +0000143<div>
Misha Brukmane3c803c2004-11-08 02:47:08 +0000144
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<!-- ======================================================================= -->
NAKAMURA Takumi05d02652011-04-18 23:59:50 +0000153<h3><a name="x86">X86</a></h3>
Misha Brukmane3c803c2004-11-08 02:47:08 +0000154
NAKAMURA Takumif5af6ad2011-04-23 00:30:22 +0000155<div>
156
Misha Brukmane3c803c2004-11-08 02:47:08 +0000157<!-- _______________________________________________________________________ -->
NAKAMURA Takumi05d02652011-04-18 23:59:50 +0000158<h4>AMD - Official manuals and docs</h4>
Misha Brukmane3c803c2004-11-08 02:47:08 +0000159
NAKAMURA Takumif5af6ad2011-04-23 00:30:22 +0000160<div>
Misha Brukmane3c803c2004-11-08 02:47:08 +0000161<ul>
162<li><a
163href="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 +0000164<li><a href="http://www.x86-64.org/documentation">X86-64 ABI</a></li>
Misha Brukmane3c803c2004-11-08 02:47:08 +0000165</ul>
166</div>
167
168<!-- _______________________________________________________________________ -->
NAKAMURA Takumi05d02652011-04-18 23:59:50 +0000169<h4>Intel - Official manuals and docs</h4>
Misha Brukmane3c803c2004-11-08 02:47:08 +0000170
NAKAMURA Takumif5af6ad2011-04-23 00:30:22 +0000171<div>
Misha Brukmane3c803c2004-11-08 02:47:08 +0000172<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<!-- _______________________________________________________________________ -->
NAKAMURA Takumi05d02652011-04-18 23:59:50 +0000183<h4>Other x86-specific information</h4>
Misha Brukmane3c803c2004-11-08 02:47:08 +0000184
NAKAMURA Takumif5af6ad2011-04-23 00:30:22 +0000185<div>
Misha Brukmane3c803c2004-11-08 02:47:08 +0000186<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
NAKAMURA Takumif5af6ad2011-04-23 00:30:22 +0000192</div>
193
Misha Brukmane3c803c2004-11-08 02:47:08 +0000194<!-- ======================================================================= -->
NAKAMURA Takumi05d02652011-04-18 23:59:50 +0000195<h3><a name="other">Other relevant lists</a></h3>
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
199<ul>
200<li><a href="http://gcc.gnu.org/readings.html">GCC reading list</a></li>
201</ul>
202
203</div>
204
NAKAMURA Takumif5af6ad2011-04-23 00:30:22 +0000205</div>
206
Misha Brukmane3c803c2004-11-08 02:47:08 +0000207<!-- *********************************************************************** -->
NAKAMURA Takumi05d02652011-04-18 23:59:50 +0000208<h2><a name="abi">ABI</a></h2>
Misha Brukmane3c803c2004-11-08 02:47:08 +0000209<!-- *********************************************************************** -->
210
NAKAMURA Takumif5af6ad2011-04-23 00:30:22 +0000211<div>
212
Misha Brukmane3c803c2004-11-08 02:47:08 +0000213<!-- ======================================================================= -->
NAKAMURA Takumi05d02652011-04-18 23:59:50 +0000214<h3><a name="linux">Linux</a></h3>
Misha Brukmane3c803c2004-11-08 02:47:08 +0000215
NAKAMURA Takumif5af6ad2011-04-23 00:30:22 +0000216<div>
Misha Brukmane3c803c2004-11-08 02:47:08 +0000217<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<!-- ======================================================================= -->
NAKAMURA Takumi05d02652011-04-18 23:59:50 +0000224<h3><a name="osx">OS X</a></h3>
Misha Brukmane3c803c2004-11-08 02:47:08 +0000225
NAKAMURA Takumif5af6ad2011-04-23 00:30:22 +0000226<div>
Misha Brukmane3c803c2004-11-08 02:47:08 +0000227<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
NAKAMURA Takumif5af6ad2011-04-23 00:30:22 +0000237</div>
238
Misha Brukmane3c803c2004-11-08 02:47:08 +0000239<!-- *********************************************************************** -->
NAKAMURA Takumi05d02652011-04-18 23:59:50 +0000240<h2><a name="misc">Miscellaneous resources</a></h2>
Misha Brukmane3c803c2004-11-08 02:47:08 +0000241<!-- *********************************************************************** -->
242
243<ul>
244<li><a
245href="http://www.nondot.org/sabre/os/articles/ExecutableFileFormats/">Executable
246File Format library</a></li>
Misha Brukman38d38282005-03-11 21:18:18 +0000247<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>
Misha Brukmane3c803c2004-11-08 02:47:08 +0000250</ul>
251
252<!-- *********************************************************************** -->
253
254<hr>
255<address>
256 <a href="http://jigsaw.w3.org/css-validator/check/referer"><img
Misha Brukman44408702008-12-11 17:34:48 +0000257 src="http://jigsaw.w3.org/css-validator/images/vcss-blue" alt="Valid CSS"></a>
Misha Brukmane3c803c2004-11-08 02:47:08 +0000258 <a href="http://validator.w3.org/check/referer"><img
Misha Brukman44408702008-12-11 17:34:48 +0000259 src="http://www.w3.org/Icons/valid-html401-blue" alt="Valid HTML 4.01"></a>
Misha Brukmane3c803c2004-11-08 02:47:08 +0000260
261 <a href="http://misha.brukman.net">Misha Brukman</a><br>
NAKAMURA Takumib9a33632011-04-09 02:13:37 +0000262 <a href="http://llvm.org/">LLVM Compiler Infrastructure</a><br>
Misha Brukmane3c803c2004-11-08 02:47:08 +0000263 Last modified: $Date$
264</address>
265
266</body>
267</html>