Add mention of Glasgow Haskell Compiler.
[oota-llvm.git] / docs / CompilerWriterInfo.html
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>