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