mirror of
https://github.com/NationalSecurityAgency/ghidra.git
synced 2025-10-05 19:42:36 +02:00
Documentation for INSERT, EXTRACT, and POPCOUNT operators
This commit is contained in:
parent
9c23383fa5
commit
28d479f188
17 changed files with 659 additions and 259 deletions
|
@ -119,6 +119,26 @@
|
|||
<td>Branch execution to value in v0 viewed as an offset into the current space.
|
||||
Hint that the branch is a subroutine return.</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>PIECE</td>
|
||||
<td><code class="code"><na></code></td>
|
||||
<td>Concatenate two varnodes into a single varnode.</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>SUBPIECE</td>
|
||||
<td><code class="code">v0:2</code></td>
|
||||
<td>The least signficant n bytes of v0.</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>SUBPIECE</td>
|
||||
<td><code class="code">v0(2)</code></td>
|
||||
<td>All but the least significant n bytes of v0.</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>POPCOUNT</td>
|
||||
<td><code class="code">popcount(v0)</code></td>
|
||||
<td>Count 1 bits in v0.</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>INT_EQUAL</td>
|
||||
<td><code class="code">v0 == v1</code></td>
|
||||
|
@ -129,38 +149,6 @@
|
|||
<td><code class="code">v0 != v1</code></td>
|
||||
<td>True if v0 does not equal v1.</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>INT_SLESS</td>
|
||||
<td>
|
||||
<div class="table">
|
||||
<a name="sless.htmltable"></a><table frame="none"><tbody>
|
||||
<tr>
|
||||
<td><code class="code">v0 s< v1</code></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><code class="code">v1 s> v0</code></td>
|
||||
</tr>
|
||||
</tbody></table>
|
||||
</div>
|
||||
</td>
|
||||
<td>True if v0 is less than v1 as a signed integer.</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>INT_SLESSEQUAL</td>
|
||||
<td>
|
||||
<div class="table">
|
||||
<a name="slessequal.htmltable"></a><table frame="none"><tbody>
|
||||
<tr>
|
||||
<td><code class="code">v0 s<= v1</code></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><code class="code">v1 s>= v0</code></td>
|
||||
</tr>
|
||||
</tbody></table>
|
||||
</div>
|
||||
</td>
|
||||
<td>True if v0 is less than or equal to v1 as a signed integer.</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>INT_LESS</td>
|
||||
<td>
|
||||
|
@ -177,6 +165,22 @@
|
|||
</td>
|
||||
<td>True if v0 is less than v1 as an unsigned integer.</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>INT_SLESS</td>
|
||||
<td>
|
||||
<div class="table">
|
||||
<a name="sless.htmltable"></a><table frame="none"><tbody>
|
||||
<tr>
|
||||
<td><code class="code">v0 s< v1</code></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><code class="code">v1 s> v0</code></td>
|
||||
</tr>
|
||||
</tbody></table>
|
||||
</div>
|
||||
</td>
|
||||
<td>True if v0 is less than v1 as a signed integer.</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>INT_LESSEQUAL</td>
|
||||
<td>
|
||||
|
@ -193,6 +197,22 @@
|
|||
</td>
|
||||
<td>True if v0 is less than or equal to v1 as an unsigned integer.</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>INT_SLESSEQUAL</td>
|
||||
<td>
|
||||
<div class="table">
|
||||
<a name="slessequal.htmltable"></a><table frame="none"><tbody>
|
||||
<tr>
|
||||
<td><code class="code">v0 s<= v1</code></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><code class="code">v1 s>= v0</code></td>
|
||||
</tr>
|
||||
</tbody></table>
|
||||
</div>
|
||||
</td>
|
||||
<td>True if v0 is less than or equal to v1 as a signed integer.</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>INT_ZEXT</td>
|
||||
<td><code class="code">zext(v0)</code></td>
|
||||
|
@ -278,16 +298,16 @@
|
|||
<td><code class="code">v0 / v1</code></td>
|
||||
<td>Unsigned division of v0 by v1.</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>INT_SDIV</td>
|
||||
<td><code class="code">v0 s/ v1</code></td>
|
||||
<td>Signed division of v0 by v1.</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>INT_REM</td>
|
||||
<td><code class="code">v0 % v1</code></td>
|
||||
<td>Unsigned remainder of v0 modulo v1.</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>INT_SDIV</td>
|
||||
<td><code class="code">v0 s/ v1</code></td>
|
||||
<td>Signed division of v0 by v1.</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>INT_SREM</td>
|
||||
<td><code class="code">v0 s% v1</code></td>
|
||||
|
@ -355,20 +375,15 @@
|
|||
</td>
|
||||
<td>True if v0 is less than or equal to v1 viewed as floating-point numbers.</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>FLOAT_NAN</td>
|
||||
<td><code class="code">nan(v0)</code></td>
|
||||
<td>True if v0 is not a valid floating-point number (NaN).</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>FLOAT_ADD</td>
|
||||
<td><code class="code">v0 f+ v1</code></td>
|
||||
<td>Addition of v0 and v1 as floating-point numbers.</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>FLOAT_DIV</td>
|
||||
<td><code class="code">v0 f/ v1</code></td>
|
||||
<td>Division of v0 by v1 as floating-point numbers.</td>
|
||||
<td>FLOAT_SUB</td>
|
||||
<td><code class="code">v0 f- v1</code></td>
|
||||
<td>Subtraction of v1 from v0 as floating-point numbers.</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>FLOAT_MULT</td>
|
||||
|
@ -376,9 +391,9 @@
|
|||
<td>Multiplication of v0 and v1 as floating-point numbers.</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>FLOAT_SUB</td>
|
||||
<td><code class="code">v0 f- v1</code></td>
|
||||
<td>Subtraction of v1 from v0 as floating-point numbers.</td>
|
||||
<td>FLOAT_DIV</td>
|
||||
<td><code class="code">v0 f/ v1</code></td>
|
||||
<td>Division of v0 by v1 as floating-point numbers.</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>FLOAT_NEG</td>
|
||||
|
@ -395,21 +410,6 @@
|
|||
<td><code class="code">sqrt(v0)</code></td>
|
||||
<td>Square root of v0 as a floating-point number.</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>INT2FLOAT</td>
|
||||
<td><code class="code">int2float(v0)</code></td>
|
||||
<td>Floating-point representation of v0 viewed as an integer.</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>FLOAT2FLOAT</td>
|
||||
<td><code class="code">float2float(v0)</code></td>
|
||||
<td>Copy of floating-point number v0 with more or less precision.</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>TRUNC</td>
|
||||
<td><code class="code">trunc(v0)</code></td>
|
||||
<td>Signed integer obtained by truncating v0 viewed as a floating-point number.</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>FLOAT_CEIL</td>
|
||||
<td><code class="code">ceil(v0)</code></td>
|
||||
|
@ -426,19 +426,24 @@
|
|||
<td>Nearest integral floating-point to v0, viewed as a floating-point number.</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>SUBPIECE</td>
|
||||
<td><code class="code">v0:2</code></td>
|
||||
<td>The least signficant n bytes of v0.</td>
|
||||
<td>FLOAT_NAN</td>
|
||||
<td><code class="code">nan(v0)</code></td>
|
||||
<td>True if v0 is not a valid floating-point number (NaN).</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>SUBPIECE</td>
|
||||
<td><code class="code">v0(2)</code></td>
|
||||
<td>All but the least significant n bytes of v0.</td>
|
||||
<td>INT2FLOAT</td>
|
||||
<td><code class="code">int2float(v0)</code></td>
|
||||
<td>Floating-point representation of v0 viewed as an integer.</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>PIECE</td>
|
||||
<td><code class="code"><na></code></td>
|
||||
<td>Concatenate two varnodes into a single varnode.</td>
|
||||
<td>FLOAT2FLOAT</td>
|
||||
<td><code class="code">float2float(v0)</code></td>
|
||||
<td>Copy of floating-point number v0 with more or less precision.</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>TRUNC</td>
|
||||
<td><code class="code">trunc(v0)</code></td>
|
||||
<td>Signed integer obtained by truncating v0 viewed as a floating-point number.</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>CPOOLREF</td>
|
||||
|
@ -486,6 +491,16 @@
|
|||
<td><code class="code"><na></code></td>
|
||||
<td>Construct a pointer to a field from a pointer to a structure and an offset.</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>INSERT</td>
|
||||
<td><code class="code"><na></code></td>
|
||||
<td>Insert a value as a bit-range into a varnode</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>EXTRACT</td>
|
||||
<td><code class="code"><na></code></td>
|
||||
<td>Extract a bit-range from a varnode</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
</div></div>
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue