Updated documentation.
git-svn-id: http://llvm-py.googlecode.com/svn/trunk@20 8d1e9007-1d4e-0410-b67e-1979fd6579aa
This commit is contained in:
parent
01eb4a7133
commit
4c27a1c376
12 changed files with 920 additions and 45 deletions
|
|
@ -8,6 +8,12 @@
|
|||
<link rel="stylesheet" href="style/xhtml11.css" type="text/css" />
|
||||
<link rel="stylesheet" href="style/xhtml11-quirks.css" type="text/css" />
|
||||
<link rel="stylesheet" href="style/layout.css" type="text/css" />
|
||||
<script type="text/javascript">
|
||||
/*<![CDATA[*/
|
||||
window.onload = function(){generateToc(2)}
|
||||
/*]]>*/
|
||||
</script>
|
||||
<script type="text/javascript" src="js/toc.js"></script>
|
||||
<title>llvm-py User Guide - llvm-py</title>
|
||||
</head>
|
||||
<body>
|
||||
|
|
@ -25,14 +31,16 @@
|
|||
<div>»<a href="contribute.html">Contribute</a></div>
|
||||
<div>»<a href="license.html">License</a></div>
|
||||
<div>»<a href="about.html">About</a></div>
|
||||
<div id="page-source">»<a href="http://www.python.org/">Python</a></div>
|
||||
<div>»<a href="http://llvm.org/">LLVM</a></div>
|
||||
</td>
|
||||
<td>
|
||||
<div id="layout-content">
|
||||
<div id="header">
|
||||
<h1>llvm-py User Guide</h1>
|
||||
</div>
|
||||
<div id="toc">
|
||||
<div id="toctitle">Table of Contents</div>
|
||||
<noscript><p><b>JavaScript must be enabled in your browser to display the table of contents.</b></p></noscript>
|
||||
</div>
|
||||
<div id="preamble">
|
||||
<div class="sectionbody">
|
||||
<div class="admonitionblock">
|
||||
|
|
@ -40,7 +48,8 @@
|
|||
<td class="icon">
|
||||
<img src="./images/icons/note.png" alt="Note" />
|
||||
</td>
|
||||
<td class="content">This document is updated constantly. Check back often.</td>
|
||||
<td class="content">This document is updated frequently (last updated on 24-Jun-2008).
|
||||
Check back often.</td>
|
||||
</tr></table>
|
||||
</div>
|
||||
<p>llvm-py provides Python bindings for LLVM. This document explains how
|
||||
|
|
@ -1672,6 +1681,693 @@ tr <span style="color: #990000">=</span> <span style="color: #009900">Type</span
|
|||
r1 <span style="color: #990000">=</span> <span style="color: #009900">Constant</span><span style="color: #990000">.</span><span style="font-weight: bold"><span style="color: #000000">real</span></span><span style="color: #990000">(</span>tr<span style="color: #990000">,</span> <span style="color: #FF0000">"3.141592"</span><span style="color: #990000">)</span> <span style="font-style: italic"><span style="color: #9A1900"># create from a string</span></span>
|
||||
r2 <span style="color: #990000">=</span> <span style="color: #009900">Constant</span><span style="color: #990000">.</span><span style="font-weight: bold"><span style="color: #000000">real</span></span><span style="color: #990000">(</span>tr<span style="color: #990000">,</span> <span style="color: #993399">1.61803399</span><span style="color: #990000">)</span> <span style="font-style: italic"><span style="color: #9A1900"># create from a Python float</span></span>
|
||||
</tt></pre></div></div>
|
||||
<p>The following constructors (static methods) can be used to create
|
||||
constants:</p>
|
||||
<div class="tableblock">
|
||||
<table rules="all"
|
||||
frame="border"
|
||||
cellspacing="0" cellpadding="4">
|
||||
<col width="200" />
|
||||
<col width="600" />
|
||||
<thead>
|
||||
<tr>
|
||||
<th align="left">
|
||||
Constructor Method
|
||||
</th>
|
||||
<th align="left">
|
||||
What It Creates
|
||||
</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody valign="top">
|
||||
<tr>
|
||||
<td align="left">
|
||||
<tt>null(ty)</tt>
|
||||
</td>
|
||||
<td align="left">
|
||||
A null value (all zeros) of type <tt>ty</tt>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td align="left">
|
||||
<tt>all_ones(ty)</tt>
|
||||
</td>
|
||||
<td align="left">
|
||||
All 1's value of type <tt>ty</tt>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td align="left">
|
||||
<tt>undef(ty)</tt>
|
||||
</td>
|
||||
<td align="left">
|
||||
An “undefined” value of type <tt>ty</tt>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td align="left">
|
||||
<tt>int(ty, value)</tt>
|
||||
</td>
|
||||
<td align="left">
|
||||
Integer of type <tt>ty</tt>, with value <tt>value</tt> (a Python int or long)
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td align="left">
|
||||
<tt>int_signextend(ty, value)</tt>
|
||||
</td>
|
||||
<td align="left">
|
||||
Integer of signed type <tt>ty</tt> (use for signed types)
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td align="left">
|
||||
<tt>real(ty, value)</tt>
|
||||
</td>
|
||||
<td align="left">
|
||||
Floating point value of type <tt>ty</tt>, with value <tt>value</tt> (a Python float)
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td align="left">
|
||||
<tt>stringz(value)</tt>
|
||||
</td>
|
||||
<td align="left">
|
||||
A null-terminated string. <tt>value</tt> is a Python string
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td align="left">
|
||||
<tt>string(value)</tt>
|
||||
</td>
|
||||
<td align="left">
|
||||
As <tt>string(ty)</tt>, but not null terminated
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td align="left">
|
||||
<tt>array(ty, consts)</tt>
|
||||
</td>
|
||||
<td align="left">
|
||||
Array of type <tt>ty</tt>, initialized with <tt>consts</tt> (an iterable yielding <tt>Constant</tt> objects of the appropriate type)
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td align="left">
|
||||
<tt>struct(ty, consts)</tt>
|
||||
</td>
|
||||
<td align="left">
|
||||
Struct (unpacked) of type <tt>ty</tt>, initialized with <tt>consts</tt> (an iterable yielding <tt>Constant</tt> objects of the appropriate type)
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td align="left">
|
||||
<tt>packed_struct(ty, consts)</tt>
|
||||
</td>
|
||||
<td align="left">
|
||||
As <tt>struct(ty, consts)</tt> but packed
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td align="left">
|
||||
<tt>vector(consts)</tt>
|
||||
</td>
|
||||
<td align="left">
|
||||
Vector, initialized with <tt>consts</tt> (an iterable yielding <tt>Constant</tt> objects of the appropriate type)
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td align="left">
|
||||
<tt>sizeof(ty)</tt>
|
||||
</td>
|
||||
<td align="left">
|
||||
Constant value representing the sizeof the type <tt>ty</tt>
|
||||
</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
<p>The following operations are available:</p>
|
||||
<div class="tableblock">
|
||||
<table rules="all"
|
||||
frame="border"
|
||||
cellspacing="0" cellpadding="4">
|
||||
<col width="200" />
|
||||
<col width="600" />
|
||||
<thead>
|
||||
<tr>
|
||||
<th align="left">
|
||||
Method
|
||||
</th>
|
||||
<th align="left">
|
||||
Operation
|
||||
</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody valign="top">
|
||||
<tr>
|
||||
<td align="left">
|
||||
<tt>k.neg()</tt>
|
||||
</td>
|
||||
<td align="left">
|
||||
negation, same as <tt>0 - k</tt>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td align="left">
|
||||
<tt>k.not_()</tt>
|
||||
</td>
|
||||
<td align="left">
|
||||
1's complement of <tt>k</tt>. Note trailing underscore.
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td align="left">
|
||||
<tt>k.add(k2)</tt>
|
||||
</td>
|
||||
<td align="left">
|
||||
<tt>k + k2</tt>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td align="left">
|
||||
<tt>k.sub(k2)</tt>
|
||||
</td>
|
||||
<td align="left">
|
||||
<tt>k - k2</tt>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td align="left">
|
||||
<tt>k.mul(k2)</tt>
|
||||
</td>
|
||||
<td align="left">
|
||||
<tt>k * k2</tt>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td align="left">
|
||||
<tt>k.udiv(k2)</tt>
|
||||
</td>
|
||||
<td align="left">
|
||||
Quotient of unsigned division of <tt>k</tt> with <tt>k2</tt>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td align="left">
|
||||
<tt>k.sdiv(k2)</tt>
|
||||
</td>
|
||||
<td align="left">
|
||||
Quotient of signed division of <tt>k</tt> with <tt>k2</tt>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td align="left">
|
||||
<tt>k.fdiv(k2)</tt>
|
||||
</td>
|
||||
<td align="left">
|
||||
Quotient of floating point division of <tt>k</tt> with <tt>k2</tt>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td align="left">
|
||||
<tt>k.urem(k2)</tt>
|
||||
</td>
|
||||
<td align="left">
|
||||
Reminder of unsigned division of <tt>k</tt> with <tt>k2</tt>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td align="left">
|
||||
<tt>k.srem(k2)</tt>
|
||||
</td>
|
||||
<td align="left">
|
||||
Reminder of signed division of <tt>k</tt> with <tt>k2</tt>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td align="left">
|
||||
<tt>k.frem(k2)</tt>
|
||||
</td>
|
||||
<td align="left">
|
||||
Reminder of floating point division of <tt>k</tt> with <tt>k2</tt>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td align="left">
|
||||
<tt>k.and_(k2)</tt>
|
||||
</td>
|
||||
<td align="left">
|
||||
Bitwise and of <tt>k</tt> and <tt>k2</tt>. Note trailing underscore.
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td align="left">
|
||||
<tt>k.or_(k2)</tt>
|
||||
</td>
|
||||
<td align="left">
|
||||
Bitwise or of <tt>k</tt> and <tt>k2</tt>. Note trailing underscore.
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td align="left">
|
||||
<tt>k.xor(k2)</tt>
|
||||
</td>
|
||||
<td align="left">
|
||||
Bitwise exclusive-or of <tt>k</tt> and <tt>k2</tt>.
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td align="left">
|
||||
<tt>k.icmp(ipred, k2)</tt>
|
||||
</td>
|
||||
<td align="left">
|
||||
Compare <tt>k</tt> with <tt>k2</tt> using the predicate <tt>ipred</tt>. See table <a href="#ipred">below</a> for list of predicates for integer operands.
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td align="left">
|
||||
<tt>k.fcmp(rpred, k2)</tt>
|
||||
</td>
|
||||
<td align="left">
|
||||
Compare <tt>k</tt> with <tt>k2</tt> using the predicate <tt>rpred</tt>. See table <a href="#rpred">below</a> for list of predicates for real operands.
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td align="left">
|
||||
shl
|
||||
</td>
|
||||
<td align="left">
|
||||
TODO
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td align="left">
|
||||
lshr
|
||||
</td>
|
||||
<td align="left">
|
||||
TODO
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td align="left">
|
||||
ashr
|
||||
</td>
|
||||
<td align="left">
|
||||
TODO
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td align="left">
|
||||
gep
|
||||
</td>
|
||||
<td align="left">
|
||||
TODO
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td align="left">
|
||||
trunc
|
||||
</td>
|
||||
<td align="left">
|
||||
TODO
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td align="left">
|
||||
sext
|
||||
</td>
|
||||
<td align="left">
|
||||
TODO
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td align="left">
|
||||
zext
|
||||
</td>
|
||||
<td align="left">
|
||||
TODO
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td align="left">
|
||||
fptrunc
|
||||
</td>
|
||||
<td align="left">
|
||||
TODO
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td align="left">
|
||||
fpext
|
||||
</td>
|
||||
<td align="left">
|
||||
TODO
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td align="left">
|
||||
uitofp
|
||||
</td>
|
||||
<td align="left">
|
||||
TODO
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td align="left">
|
||||
sitofp
|
||||
</td>
|
||||
<td align="left">
|
||||
TODO
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td align="left">
|
||||
fptoui
|
||||
</td>
|
||||
<td align="left">
|
||||
TODO
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td align="left">
|
||||
fptosi
|
||||
</td>
|
||||
<td align="left">
|
||||
TODO
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td align="left">
|
||||
ptrtoint
|
||||
</td>
|
||||
<td align="left">
|
||||
TODO
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td align="left">
|
||||
inttoptr
|
||||
</td>
|
||||
<td align="left">
|
||||
TODO
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td align="left">
|
||||
bitcast
|
||||
</td>
|
||||
<td align="left">
|
||||
TODO
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td align="left">
|
||||
select
|
||||
</td>
|
||||
<td align="left">
|
||||
TODO
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td align="left">
|
||||
extract_element
|
||||
</td>
|
||||
<td align="left">
|
||||
TODO
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td align="left">
|
||||
insert_element
|
||||
</td>
|
||||
<td align="left">
|
||||
TODO
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td align="left">
|
||||
shuffle_vector
|
||||
</td>
|
||||
<td align="left">
|
||||
TODO
|
||||
</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
<p><a id="ipred"></a>Predicates for use with <tt>icmp</tt> instruction are listed below. All
|
||||
of these are integer constants defined in the <tt>llvm.core</tt> module.</p>
|
||||
<div class="tableblock">
|
||||
<table rules="all"
|
||||
frame="border"
|
||||
cellspacing="0" cellpadding="4">
|
||||
<col width="200" />
|
||||
<col width="600" />
|
||||
<thead>
|
||||
<tr>
|
||||
<th align="left">
|
||||
Value
|
||||
</th>
|
||||
<th align="left">
|
||||
Meaning
|
||||
</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody valign="top">
|
||||
<tr>
|
||||
<td align="left">
|
||||
<tt>IPRED_EQ</tt>
|
||||
</td>
|
||||
<td align="left">
|
||||
Equality
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td align="left">
|
||||
<tt>IPRED_NE</tt>
|
||||
</td>
|
||||
<td align="left">
|
||||
Inequality
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td align="left">
|
||||
<tt>IPRED_UGT</tt>
|
||||
</td>
|
||||
<td align="left">
|
||||
Unsigned greater than
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td align="left">
|
||||
<tt>IPRED_UGE</tt>
|
||||
</td>
|
||||
<td align="left">
|
||||
Unsigned greater than or equal
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td align="left">
|
||||
<tt>IPRED_ULT</tt>
|
||||
</td>
|
||||
<td align="left">
|
||||
Unsigned less than
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td align="left">
|
||||
<tt>IPRED_ULE</tt>
|
||||
</td>
|
||||
<td align="left">
|
||||
Unsigned less than or equal
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td align="left">
|
||||
<tt>IPRED_SGT</tt>
|
||||
</td>
|
||||
<td align="left">
|
||||
Signed greater than
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td align="left">
|
||||
<tt>IPRED_SGE</tt>
|
||||
</td>
|
||||
<td align="left">
|
||||
Signed greater than or equal
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td align="left">
|
||||
<tt>IPRED_SLT</tt>
|
||||
</td>
|
||||
<td align="left">
|
||||
Signed less than
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td align="left">
|
||||
<tt>IPRED_SLE</tt>
|
||||
</td>
|
||||
<td align="left">
|
||||
Signed less than or equal
|
||||
</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
<p><a id="rpred"></a>Predicates for use with <tt>fcmp</tt> instruction are listed below. All
|
||||
of these are integer constants defined in the <tt>llvm.core</tt> module.</p>
|
||||
<div class="tableblock">
|
||||
<table rules="all"
|
||||
frame="border"
|
||||
cellspacing="0" cellpadding="4">
|
||||
<col width="200" />
|
||||
<col width="600" />
|
||||
<thead>
|
||||
<tr>
|
||||
<th align="left">
|
||||
Value
|
||||
</th>
|
||||
<th align="left">
|
||||
Meaning
|
||||
</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody valign="top">
|
||||
<tr>
|
||||
<td align="left">
|
||||
<tt>RPRED_FALSE</tt>
|
||||
</td>
|
||||
<td align="left">
|
||||
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td align="left">
|
||||
<tt>RPRED_OEQ</tt>
|
||||
</td>
|
||||
<td align="left">
|
||||
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td align="left">
|
||||
<tt>RPRED_OGT</tt>
|
||||
</td>
|
||||
<td align="left">
|
||||
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td align="left">
|
||||
<tt>RPRED_OGE</tt>
|
||||
</td>
|
||||
<td align="left">
|
||||
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td align="left">
|
||||
<tt>RPRED_OLT</tt>
|
||||
</td>
|
||||
<td align="left">
|
||||
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td align="left">
|
||||
<tt>RPRED_OLE</tt>
|
||||
</td>
|
||||
<td align="left">
|
||||
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td align="left">
|
||||
<tt>RPRED_ONE</tt>
|
||||
</td>
|
||||
<td align="left">
|
||||
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td align="left">
|
||||
<tt>RPRED_ORD</tt>
|
||||
</td>
|
||||
<td align="left">
|
||||
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td align="left">
|
||||
<tt>RPRED_UNO</tt>
|
||||
</td>
|
||||
<td align="left">
|
||||
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td align="left">
|
||||
<tt>RPRED_UEQ</tt>
|
||||
</td>
|
||||
<td align="left">
|
||||
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td align="left">
|
||||
<tt>RPRED_UGT</tt>
|
||||
</td>
|
||||
<td align="left">
|
||||
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td align="left">
|
||||
<tt>RPRED_UGE</tt>
|
||||
</td>
|
||||
<td align="left">
|
||||
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td align="left">
|
||||
<tt>RPRED_ULT</tt>
|
||||
</td>
|
||||
<td align="left">
|
||||
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td align="left">
|
||||
<tt>RPRED_ULE</tt>
|
||||
</td>
|
||||
<td align="left">
|
||||
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td align="left">
|
||||
<tt>RPRED_UNE</tt>
|
||||
</td>
|
||||
<td align="left">
|
||||
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td align="left">
|
||||
<tt>RPRED_TRUE </tt>
|
||||
</td>
|
||||
<td align="left">
|
||||
|
||||
</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
<h3>TypeHandle (llvm.core)</h3>
|
||||
<p>TODO</p>
|
||||
<h3>Instructions (llvm.core)</h3>
|
||||
|
|
@ -1717,7 +2413,7 @@ reached at <em>mdevan.foobar@gmail.com</em>.</p>
|
|||
<div id="footer">
|
||||
<div id="footer-text">
|
||||
Web pages © Mahadevan R. Generated with <a href="http://www.methods.co.nz/asciidoc/">asciidoc</a>.
|
||||
Last updated 18-Jun-2008.
|
||||
Last updated 24-Jun-2008.
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
|
@ -1727,8 +2423,6 @@ Last updated 18-Jun-2008.
|
|||
<script type="text/javascript">
|
||||
var gaJsHost = (("https:" == document.location.protocol) ? "https://ssl." : "http://www.");
|
||||
document.write(unescape("%3Cscript src='" + gaJsHost + "google-analytics.com/ga.js' type='text/javascript'%3E%3C/script%3E"));
|
||||
</script>
|
||||
<script type="text/javascript">
|
||||
var pageTracker = _gat._getTracker("UA-4519056-2");
|
||||
pageTracker._initData();
|
||||
pageTracker._trackPageview();
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue