Improve the style of B3 documentation
[WebKit-https.git] / Websites / webkit.org / docs / b3 / assembly-intermediate-representation.html
1 <html>
2 <head>
3   <title>Assembly Intermediate Representation</title>
4   <link rel="stylesheet" type="text/css" href="style.css">
5 </head>
6 <body>
7   <div id="banner">
8     <a href="http://www.webkit.org/" class="banner-link">
9       <div id="logo" class="site-logo">
10         WebKit
11         <span class="tagline">Open Source Web Browser</span>
12       </div>
13     </a>
14   </div>
15   <div id="contents">
16     <h1><a href="index.html">Bare Bones Backend</a> / Assembly Intermediate Representation</h1>
17     <p>The B3 compiler converts SSA procedures into efficient machine code by first converting
18       them to a form that reveals machine details, like registers. This form is called Assembly
19       Intermediate Representation, or just Air for short.</p>
20
21     <p>Air is designed around JavaScriptCore's existing MacroAssembler. Air has Inst objects,
22       which each describe some method call to the MacroAssembler: an Inst's opcode indicates
23       which method name to use and its args indicate the arguments to pass to that method. We
24       use code generation to create a massive switch statement that turns the reflective Insts
25       into actual calls to MacroAssembler. Consequently, we can "add" new instructions to Air
26       usually by just editing the <a href="http://trac.webkit.org/browser/trunk/Source/JavaScriptCore/b3/air/AirOpcode.opcodes">AirOpcode.opcodes</a>
27       file.</p>
28
29     <p><a href="https://bugs.webkit.org/show_bug.cgi?id=153668">FIXME: Add more text here.</a></p>
30   </div>
31 </body>
32 </html>
33