Skip to content

Commit

Permalink
deploy: 525f6a6
Browse files Browse the repository at this point in the history
  • Loading branch information
xgreenx committed May 27, 2024
1 parent 614fba1 commit dcf2350
Show file tree
Hide file tree
Showing 5 changed files with 8 additions and 8 deletions.
4 changes: 2 additions & 2 deletions master/fuel-vm/index.html
Original file line number Diff line number Diff line change
Expand Up @@ -287,7 +287,7 @@ <h2 id="call-frames"><a class="header" href="#call-frames">Call Frames</a></h2>
</tbody></table>
</div>
<h2 id="access-rights"><a class="header" href="#access-rights">Access rights</a></h2>
<p>Only memory that has been allocated is accessible. Attempting to read or write memory that has not been allocated will result in VM panic. Similarly reads or writes that cross from the stack to the heap will panic. Note stack remains readable even after stack frame has been shrunk. However, if heap is alter expanded to cover that area, the crossing read prohibition still remains. In other word, memory between highest-ever <code>$sp</code> value and current <code>$hp</code> is inaccessible.</p>
<p>Only memory that has been allocated is accessible. Attempting to read or write memory that has not been allocated will result in VM panic. Similarly reads or writes that cross from the stack to the heap will panic. Note that stack remains readable even after stack frame has been shrunk. However, if the heap is afterwards expanded to cover that area, the crossing read prohibition still remains. In other word, memory between highest-ever <code>$sp</code> value and current <code>$hp</code> is inaccessible.</p>
<h3 id="ownership"><a class="header" href="#ownership">Ownership</a></h3>
<p>Whenever memory is written to (i.e. with <a href="./instruction-set.html#sb-store-byte"><code>SB</code></a> or <a href="./instruction-set.html#sw-store-word"><code>SW</code></a>), or write access is granted (i.e. with <a href="./instruction-set.html#call-call-contract"><code>CALL</code></a>), ownership must be checked.</p>
<p>If the context is external, the owned memory range is:</p>
Expand All @@ -301,7 +301,7 @@ <h3 id="ownership"><a class="header" href="#ownership">Ownership</a></h3>
<li><code>[$hp, $fp-&gt;$hp)</code>: the heap area allocated by this call frame.</li>
</ol>
<h3 id="executablity"><a class="header" href="#executablity">Executablity</a></h3>
<p>Memory is only executable in range <code>[$is, $ssp)</code>. Attempting to execute instructions outside these boundaries will panic. This area never overlaps with writable registers, essentially providing <a href="https://en.wikipedia.org/wiki/W%5EX">W^X</a> protection.</p>
<p>Memory is only executable in range <code>[$is, $ssp)</code>. Attempting to execute instructions outside these boundaries will cause a panic. This area never overlaps with writable memory, essentially providing <a href="https://en.wikipedia.org/wiki/W%5EX">W^X</a> protection.</p>

</main>

Expand Down
2 changes: 1 addition & 1 deletion master/fuel-vm/instruction-set.html
Original file line number Diff line number Diff line change
Expand Up @@ -1773,7 +1773,7 @@ <h3 id="ldc-load-code-from-an-external-contract"><a class="header" href="#ldc-lo
<li>Contract with ID <code>MEM[$rA, 32]</code> is not in <code>tx.inputs</code></li>
</ul>
<p>Increment <code>$fp-&gt;codesize</code>, <code>$ssp</code> by <code>$rC</code> padded to word alignment. Then set <code>$sp</code> to <code>$ssp</code>.</p>
<p>This instruction can be used to concatenate the code of multiple contracts together. It can only be used when the stack area of the call frame is unused (i.e. prior to being used).</p>
<p>This instruction can be used to concatenate the code of multiple contracts together. It can only be used when the stack area of the call frame is zero-sized.</p>
<h3 id="log-log-event"><a class="header" href="#log-log-event"><code>LOG</code>: Log event</a></h3>
<div class="table-wrapper"><table><thead><tr><th></th><th></th></tr></thead><tbody>
<tr><td>Description</td><td>Log an event. This is a no-op.</td></tr>
Expand Down
6 changes: 3 additions & 3 deletions master/print.html
Original file line number Diff line number Diff line change
Expand Up @@ -3024,7 +3024,7 @@ <h2 id="call-frames"><a class="header" href="#call-frames">Call Frames</a></h2>
</tbody></table>
</div>
<h2 id="access-rights"><a class="header" href="#access-rights">Access rights</a></h2>
<p>Only memory that has been allocated is accessible. Attempting to read or write memory that has not been allocated will result in VM panic. Similarly reads or writes that cross from the stack to the heap will panic. Note stack remains readable even after stack frame has been shrunk. However, if heap is alter expanded to cover that area, the crossing read prohibition still remains. In other word, memory between highest-ever <code>$sp</code> value and current <code>$hp</code> is inaccessible.</p>
<p>Only memory that has been allocated is accessible. Attempting to read or write memory that has not been allocated will result in VM panic. Similarly reads or writes that cross from the stack to the heap will panic. Note that stack remains readable even after stack frame has been shrunk. However, if the heap is afterwards expanded to cover that area, the crossing read prohibition still remains. In other word, memory between highest-ever <code>$sp</code> value and current <code>$hp</code> is inaccessible.</p>
<h3 id="ownership"><a class="header" href="#ownership">Ownership</a></h3>
<p>Whenever memory is written to (i.e. with <a href="fuel-vm/./instruction-set.html#sb-store-byte"><code>SB</code></a> or <a href="fuel-vm/./instruction-set.html#sw-store-word"><code>SW</code></a>), or write access is granted (i.e. with <a href="fuel-vm/./instruction-set.html#call-call-contract"><code>CALL</code></a>), ownership must be checked.</p>
<p>If the context is external, the owned memory range is:</p>
Expand All @@ -3038,7 +3038,7 @@ <h3 id="ownership"><a class="header" href="#ownership">Ownership</a></h3>
<li><code>[$hp, $fp-&gt;$hp)</code>: the heap area allocated by this call frame.</li>
</ol>
<h3 id="executablity"><a class="header" href="#executablity">Executablity</a></h3>
<p>Memory is only executable in range <code>[$is, $ssp)</code>. Attempting to execute instructions outside these boundaries will panic. This area never overlaps with writable registers, essentially providing <a href="https://en.wikipedia.org/wiki/W%5EX">W^X</a> protection.</p>
<p>Memory is only executable in range <code>[$is, $ssp)</code>. Attempting to execute instructions outside these boundaries will cause a panic. This area never overlaps with writable memory, essentially providing <a href="https://en.wikipedia.org/wiki/W%5EX">W^X</a> protection.</p>
<div style="break-before: page; page-break-before: always;"></div><h1 id="fuelvm-instruction-set"><a class="header" href="#fuelvm-instruction-set">FuelVM Instruction Set</a></h1>
<ul>
<li><a href="fuel-vm/instruction-set.html#reading-guide">Reading Guide</a></li>
Expand Down Expand Up @@ -4675,7 +4675,7 @@ <h3 id="ldc-load-code-from-an-external-contract"><a class="header" href="#ldc-lo
<li>Contract with ID <code>MEM[$rA, 32]</code> is not in <code>tx.inputs</code></li>
</ul>
<p>Increment <code>$fp-&gt;codesize</code>, <code>$ssp</code> by <code>$rC</code> padded to word alignment. Then set <code>$sp</code> to <code>$ssp</code>.</p>
<p>This instruction can be used to concatenate the code of multiple contracts together. It can only be used when the stack area of the call frame is unused (i.e. prior to being used).</p>
<p>This instruction can be used to concatenate the code of multiple contracts together. It can only be used when the stack area of the call frame is zero-sized.</p>
<h3 id="log-log-event"><a class="header" href="#log-log-event"><code>LOG</code>: Log event</a></h3>
<div class="table-wrapper"><table><thead><tr><th></th><th></th></tr></thead><tbody>
<tr><td>Description</td><td>Log an event. This is a no-op.</td></tr>
Expand Down
2 changes: 1 addition & 1 deletion master/searchindex.js

Large diffs are not rendered by default.

2 changes: 1 addition & 1 deletion master/searchindex.json

Large diffs are not rendered by default.

0 comments on commit dcf2350

Please sign in to comment.