mirror of
https://github.com/c-cube/moonpool.git
synced 2025-12-18 00:26:43 -05:00
327 lines
No EOL
109 KiB
HTML
327 lines
No EOL
109 KiB
HTML
<!DOCTYPE html>
|
||
<html xmlns="http://www.w3.org/1999/xhtml"><head><title>Cmm_helpers (ocaml.Cmm_helpers)</title><link rel="stylesheet" href="../../_odoc-theme/odoc.css"/><meta charset="utf-8"/><meta name="generator" content="odoc 2.2.1"/><meta name="viewport" content="width=device-width,initial-scale=1.0"/><script src="../../highlight.pack.js"></script><script>hljs.initHighlightingOnLoad();</script></head><body class="odoc"><nav class="odoc-nav"><a href="../index.html">Up</a> – <a href="../index.html">ocaml</a> » Cmm_helpers</nav><header class="odoc-preamble"><h1>Module <code><span>Cmm_helpers</span></code></h1></header><div class="odoc-content"><div class="odoc-spec"><div class="spec value anchored" id="val-bind"><a href="#val-bind" class="anchor"></a><code><span><span class="keyword">val</span> bind :
|
||
<span>string <span class="arrow">-></span></span>
|
||
<span><a href="../Cmm/index.html#type-expression">Cmm.expression</a> <span class="arrow">-></span></span>
|
||
<span><span>(<span><a href="../Cmm/index.html#type-expression">Cmm.expression</a> <span class="arrow">-></span></span> <a href="../Cmm/index.html#type-expression">Cmm.expression</a>)</span> <span class="arrow">-></span></span>
|
||
<a href="../Cmm/index.html#type-expression">Cmm.expression</a></span></code></div><div class="spec-doc"><p><code>bind name arg fn</code> is equivalent to <code>let name = arg in fn name</code>, or simply <code>fn arg</code> if <code>arg</code> is simple enough</p></div></div><div class="odoc-spec"><div class="spec value anchored" id="val-bind_load"><a href="#val-bind_load" class="anchor"></a><code><span><span class="keyword">val</span> bind_load :
|
||
<span>string <span class="arrow">-></span></span>
|
||
<span><a href="../Cmm/index.html#type-expression">Cmm.expression</a> <span class="arrow">-></span></span>
|
||
<span><span>(<span><a href="../Cmm/index.html#type-expression">Cmm.expression</a> <span class="arrow">-></span></span> <a href="../Cmm/index.html#type-expression">Cmm.expression</a>)</span> <span class="arrow">-></span></span>
|
||
<a href="../Cmm/index.html#type-expression">Cmm.expression</a></span></code></div><div class="spec-doc"><p>Same as <code>bind</code>, but also treats loads from a variable as simple</p></div></div><div class="odoc-spec"><div class="spec value anchored" id="val-bind_nonvar"><a href="#val-bind_nonvar" class="anchor"></a><code><span><span class="keyword">val</span> bind_nonvar :
|
||
<span>string <span class="arrow">-></span></span>
|
||
<span><a href="../Cmm/index.html#type-expression">Cmm.expression</a> <span class="arrow">-></span></span>
|
||
<span><span>(<span><a href="../Cmm/index.html#type-expression">Cmm.expression</a> <span class="arrow">-></span></span> <a href="../Cmm/index.html#type-expression">Cmm.expression</a>)</span> <span class="arrow">-></span></span>
|
||
<a href="../Cmm/index.html#type-expression">Cmm.expression</a></span></code></div><div class="spec-doc"><p>Same as <code>bind</code>, but does not treat variables as simple</p></div></div><p>Headers</p><div class="odoc-spec"><div class="spec value anchored" id="val-caml_black"><a href="#val-caml_black" class="anchor"></a><code><span><span class="keyword">val</span> caml_black : nativeint</span></code></div><div class="spec-doc"><p>A null header with GC bits set to black</p></div></div><div class="odoc-spec"><div class="spec value anchored" id="val-floatarray_tag"><a href="#val-floatarray_tag" class="anchor"></a><code><span><span class="keyword">val</span> floatarray_tag : <span><a href="../Debuginfo/index.html#type-t">Debuginfo.t</a> <span class="arrow">-></span></span> <a href="../Cmm/index.html#type-expression">Cmm.expression</a></span></code></div><div class="spec-doc"><p>A constant equal to the tag for float arrays</p></div></div><div class="odoc-spec"><div class="spec value anchored" id="val-block_header"><a href="#val-block_header" class="anchor"></a><code><span><span class="keyword">val</span> block_header : <span>int <span class="arrow">-></span></span> <span>int <span class="arrow">-></span></span> nativeint</span></code></div><div class="spec-doc"><p><code>block_header tag size</code> creates a header with tag <code>tag</code> for a block of size <code>size</code></p></div></div><div class="odoc-spec"><div class="spec value anchored" id="val-black_block_header"><a href="#val-black_block_header" class="anchor"></a><code><span><span class="keyword">val</span> black_block_header : <span>int <span class="arrow">-></span></span> <span>int <span class="arrow">-></span></span> nativeint</span></code></div><div class="spec-doc"><p>Same as block_header, but with GC bits set to black</p></div></div><div class="odoc-spec"><div class="spec value anchored" id="val-white_closure_header"><a href="#val-white_closure_header" class="anchor"></a><code><span><span class="keyword">val</span> white_closure_header : <span>int <span class="arrow">-></span></span> nativeint</span></code></div><div class="spec-doc"><p>Closure headers of the given size</p></div></div><div class="odoc-spec"><div class="spec value anchored" id="val-black_closure_header"><a href="#val-black_closure_header" class="anchor"></a><code><span><span class="keyword">val</span> black_closure_header : <span>int <span class="arrow">-></span></span> nativeint</span></code></div></div><div class="odoc-spec"><div class="spec value anchored" id="val-infix_header"><a href="#val-infix_header" class="anchor"></a><code><span><span class="keyword">val</span> infix_header : <span>int <span class="arrow">-></span></span> nativeint</span></code></div><div class="spec-doc"><p>Infix header at the given offset</p></div></div><div class="odoc-spec"><div class="spec value anchored" id="val-float_header"><a href="#val-float_header" class="anchor"></a><code><span><span class="keyword">val</span> float_header : nativeint</span></code></div><div class="spec-doc"><p>Header for a boxed float value</p></div></div><div class="odoc-spec"><div class="spec value anchored" id="val-floatarray_header"><a href="#val-floatarray_header" class="anchor"></a><code><span><span class="keyword">val</span> floatarray_header : <span>int <span class="arrow">-></span></span> nativeint</span></code></div><div class="spec-doc"><p>Header for an unboxed float array of the given size</p></div></div><div class="odoc-spec"><div class="spec value anchored" id="val-string_header"><a href="#val-string_header" class="anchor"></a><code><span><span class="keyword">val</span> string_header : <span>int <span class="arrow">-></span></span> nativeint</span></code></div><div class="spec-doc"><p>Header for a string (or bytes) of the given length</p></div></div><div class="odoc-spec"><div class="spec value anchored" id="val-boxedint32_header"><a href="#val-boxedint32_header" class="anchor"></a><code><span><span class="keyword">val</span> boxedint32_header : nativeint</span></code></div><div class="spec-doc"><p>Boxed integer headers</p></div></div><div class="odoc-spec"><div class="spec value anchored" id="val-boxedint64_header"><a href="#val-boxedint64_header" class="anchor"></a><code><span><span class="keyword">val</span> boxedint64_header : nativeint</span></code></div></div><div class="odoc-spec"><div class="spec value anchored" id="val-boxedintnat_header"><a href="#val-boxedintnat_header" class="anchor"></a><code><span><span class="keyword">val</span> boxedintnat_header : nativeint</span></code></div></div><div class="odoc-spec"><div class="spec value anchored" id="val-closure_info"><a href="#val-closure_info" class="anchor"></a><code><span><span class="keyword">val</span> closure_info : <span>arity:int <span class="arrow">-></span></span> <span>startenv:int <span class="arrow">-></span></span> nativeint</span></code></div><div class="spec-doc"><p>Closure info for a closure of given arity and distance to environment</p></div></div><div class="odoc-spec"><div class="spec value anchored" id="val-alloc_float_header"><a href="#val-alloc_float_header" class="anchor"></a><code><span><span class="keyword">val</span> alloc_float_header : <span><a href="../Debuginfo/index.html#type-t">Debuginfo.t</a> <span class="arrow">-></span></span> <a href="../Cmm/index.html#type-expression">Cmm.expression</a></span></code></div><div class="spec-doc"><p>Wrappers</p></div></div><div class="odoc-spec"><div class="spec value anchored" id="val-alloc_floatarray_header"><a href="#val-alloc_floatarray_header" class="anchor"></a><code><span><span class="keyword">val</span> alloc_floatarray_header : <span>int <span class="arrow">-></span></span> <span><a href="../Debuginfo/index.html#type-t">Debuginfo.t</a> <span class="arrow">-></span></span> <a href="../Cmm/index.html#type-expression">Cmm.expression</a></span></code></div></div><div class="odoc-spec"><div class="spec value anchored" id="val-alloc_closure_header"><a href="#val-alloc_closure_header" class="anchor"></a><code><span><span class="keyword">val</span> alloc_closure_header : <span>int <span class="arrow">-></span></span> <span><a href="../Debuginfo/index.html#type-t">Debuginfo.t</a> <span class="arrow">-></span></span> <a href="../Cmm/index.html#type-expression">Cmm.expression</a></span></code></div></div><div class="odoc-spec"><div class="spec value anchored" id="val-alloc_infix_header"><a href="#val-alloc_infix_header" class="anchor"></a><code><span><span class="keyword">val</span> alloc_infix_header : <span>int <span class="arrow">-></span></span> <span><a href="../Debuginfo/index.html#type-t">Debuginfo.t</a> <span class="arrow">-></span></span> <a href="../Cmm/index.html#type-expression">Cmm.expression</a></span></code></div></div><div class="odoc-spec"><div class="spec value anchored" id="val-alloc_closure_info"><a href="#val-alloc_closure_info" class="anchor"></a><code><span><span class="keyword">val</span> alloc_closure_info :
|
||
<span>arity:int <span class="arrow">-></span></span>
|
||
<span>startenv:int <span class="arrow">-></span></span>
|
||
<span><a href="../Debuginfo/index.html#type-t">Debuginfo.t</a> <span class="arrow">-></span></span>
|
||
<a href="../Cmm/index.html#type-expression">Cmm.expression</a></span></code></div></div><div class="odoc-spec"><div class="spec value anchored" id="val-alloc_boxedint32_header"><a href="#val-alloc_boxedint32_header" class="anchor"></a><code><span><span class="keyword">val</span> alloc_boxedint32_header : <span><a href="../Debuginfo/index.html#type-t">Debuginfo.t</a> <span class="arrow">-></span></span> <a href="../Cmm/index.html#type-expression">Cmm.expression</a></span></code></div></div><div class="odoc-spec"><div class="spec value anchored" id="val-alloc_boxedint64_header"><a href="#val-alloc_boxedint64_header" class="anchor"></a><code><span><span class="keyword">val</span> alloc_boxedint64_header : <span><a href="../Debuginfo/index.html#type-t">Debuginfo.t</a> <span class="arrow">-></span></span> <a href="../Cmm/index.html#type-expression">Cmm.expression</a></span></code></div></div><div class="odoc-spec"><div class="spec value anchored" id="val-alloc_boxedintnat_header"><a href="#val-alloc_boxedintnat_header" class="anchor"></a><code><span><span class="keyword">val</span> alloc_boxedintnat_header : <span><a href="../Debuginfo/index.html#type-t">Debuginfo.t</a> <span class="arrow">-></span></span> <a href="../Cmm/index.html#type-expression">Cmm.expression</a></span></code></div></div><p>Integers</p><div class="odoc-spec"><div class="spec value anchored" id="val-max_repr_int"><a href="#val-max_repr_int" class="anchor"></a><code><span><span class="keyword">val</span> max_repr_int : int</span></code></div><div class="spec-doc"><p>Minimal/maximal OCaml integer values whose backend representation fits in a regular OCaml integer</p></div></div><div class="odoc-spec"><div class="spec value anchored" id="val-min_repr_int"><a href="#val-min_repr_int" class="anchor"></a><code><span><span class="keyword">val</span> min_repr_int : int</span></code></div></div><div class="odoc-spec"><div class="spec value anchored" id="val-int_const"><a href="#val-int_const" class="anchor"></a><code><span><span class="keyword">val</span> int_const : <span><a href="../Debuginfo/index.html#type-t">Debuginfo.t</a> <span class="arrow">-></span></span> <span>int <span class="arrow">-></span></span> <a href="../Cmm/index.html#type-expression">Cmm.expression</a></span></code></div><div class="spec-doc"><p>Make an integer constant from the given integer (tags the integer)</p></div></div><div class="odoc-spec"><div class="spec value anchored" id="val-cint_const"><a href="#val-cint_const" class="anchor"></a><code><span><span class="keyword">val</span> cint_const : <span>int <span class="arrow">-></span></span> <a href="../Cmm/index.html#type-data_item">Cmm.data_item</a></span></code></div></div><div class="odoc-spec"><div class="spec value anchored" id="val-targetint_const"><a href="#val-targetint_const" class="anchor"></a><code><span><span class="keyword">val</span> targetint_const : <span>int <span class="arrow">-></span></span> <a href="../Targetint/index.html#type-t">Targetint.t</a></span></code></div></div><div class="odoc-spec"><div class="spec value anchored" id="val-natint_const_untagged"><a href="#val-natint_const_untagged" class="anchor"></a><code><span><span class="keyword">val</span> natint_const_untagged : <span><a href="../Debuginfo/index.html#type-t">Debuginfo.t</a> <span class="arrow">-></span></span> <span><a href="../Stdlib/Nativeint/index.html#type-t">Stdlib.Nativeint.t</a> <span class="arrow">-></span></span> <a href="../Cmm/index.html#type-expression">Cmm.expression</a></span></code></div><div class="spec-doc"><p>Make a Cmm constant holding the given nativeint value. Uses <code>Cconst_int</code> instead of <code>Cconst_nativeint</code> when possible to preserve peephole optimisations.</p></div></div><div class="odoc-spec"><div class="spec value anchored" id="val-add_const"><a href="#val-add_const" class="anchor"></a><code><span><span class="keyword">val</span> add_const : <span><a href="../Cmm/index.html#type-expression">Cmm.expression</a> <span class="arrow">-></span></span> <span>int <span class="arrow">-></span></span> <span><a href="../Debuginfo/index.html#type-t">Debuginfo.t</a> <span class="arrow">-></span></span> <a href="../Cmm/index.html#type-expression">Cmm.expression</a></span></code></div><div class="spec-doc"><p>Add an integer to the given expression</p></div></div><div class="odoc-spec"><div class="spec value anchored" id="val-incr_int"><a href="#val-incr_int" class="anchor"></a><code><span><span class="keyword">val</span> incr_int : <span><a href="../Cmm/index.html#type-expression">Cmm.expression</a> <span class="arrow">-></span></span> <span><a href="../Debuginfo/index.html#type-t">Debuginfo.t</a> <span class="arrow">-></span></span> <a href="../Cmm/index.html#type-expression">Cmm.expression</a></span></code></div><div class="spec-doc"><p>Increment/decrement of integers</p></div></div><div class="odoc-spec"><div class="spec value anchored" id="val-decr_int"><a href="#val-decr_int" class="anchor"></a><code><span><span class="keyword">val</span> decr_int : <span><a href="../Cmm/index.html#type-expression">Cmm.expression</a> <span class="arrow">-></span></span> <span><a href="../Debuginfo/index.html#type-t">Debuginfo.t</a> <span class="arrow">-></span></span> <a href="../Cmm/index.html#type-expression">Cmm.expression</a></span></code></div></div><div class="odoc-spec"><div class="spec value anchored" id="val-ignore_low_bit_int"><a href="#val-ignore_low_bit_int" class="anchor"></a><code><span><span class="keyword">val</span> ignore_low_bit_int : <span><a href="../Cmm/index.html#type-expression">Cmm.expression</a> <span class="arrow">-></span></span> <a href="../Cmm/index.html#type-expression">Cmm.expression</a></span></code></div><div class="spec-doc"><p>Simplify the given expression knowing its last bit will be irrelevant</p></div></div><div class="odoc-spec"><div class="spec value anchored" id="val-ignore_high_bit_int"><a href="#val-ignore_high_bit_int" class="anchor"></a><code><span><span class="keyword">val</span> ignore_high_bit_int : <span><a href="../Cmm/index.html#type-expression">Cmm.expression</a> <span class="arrow">-></span></span> <a href="../Cmm/index.html#type-expression">Cmm.expression</a></span></code></div><div class="spec-doc"><p>Simplify the given expression knowing its first bit will be irrelevant</p></div></div><div class="odoc-spec"><div class="spec value anchored" id="val-add_int"><a href="#val-add_int" class="anchor"></a><code><span><span class="keyword">val</span> add_int : <span><a href="../Cmm/index.html#type-expression">Cmm.expression</a> <span class="arrow">-></span></span> <span><a href="../Cmm/index.html#type-expression">Cmm.expression</a> <span class="arrow">-></span></span> <span><a href="../Debuginfo/index.html#type-t">Debuginfo.t</a> <span class="arrow">-></span></span> <a href="../Cmm/index.html#type-expression">Cmm.expression</a></span></code></div><div class="spec-doc"><p>Arithmetical operations on integers</p></div></div><div class="odoc-spec"><div class="spec value anchored" id="val-sub_int"><a href="#val-sub_int" class="anchor"></a><code><span><span class="keyword">val</span> sub_int : <span><a href="../Cmm/index.html#type-expression">Cmm.expression</a> <span class="arrow">-></span></span> <span><a href="../Cmm/index.html#type-expression">Cmm.expression</a> <span class="arrow">-></span></span> <span><a href="../Debuginfo/index.html#type-t">Debuginfo.t</a> <span class="arrow">-></span></span> <a href="../Cmm/index.html#type-expression">Cmm.expression</a></span></code></div></div><div class="odoc-spec"><div class="spec value anchored" id="val-lsl_int"><a href="#val-lsl_int" class="anchor"></a><code><span><span class="keyword">val</span> lsl_int : <span><a href="../Cmm/index.html#type-expression">Cmm.expression</a> <span class="arrow">-></span></span> <span><a href="../Cmm/index.html#type-expression">Cmm.expression</a> <span class="arrow">-></span></span> <span><a href="../Debuginfo/index.html#type-t">Debuginfo.t</a> <span class="arrow">-></span></span> <a href="../Cmm/index.html#type-expression">Cmm.expression</a></span></code></div></div><div class="odoc-spec"><div class="spec value anchored" id="val-mul_int"><a href="#val-mul_int" class="anchor"></a><code><span><span class="keyword">val</span> mul_int : <span><a href="../Cmm/index.html#type-expression">Cmm.expression</a> <span class="arrow">-></span></span> <span><a href="../Cmm/index.html#type-expression">Cmm.expression</a> <span class="arrow">-></span></span> <span><a href="../Debuginfo/index.html#type-t">Debuginfo.t</a> <span class="arrow">-></span></span> <a href="../Cmm/index.html#type-expression">Cmm.expression</a></span></code></div></div><div class="odoc-spec"><div class="spec value anchored" id="val-lsr_int"><a href="#val-lsr_int" class="anchor"></a><code><span><span class="keyword">val</span> lsr_int : <span><a href="../Cmm/index.html#type-expression">Cmm.expression</a> <span class="arrow">-></span></span> <span><a href="../Cmm/index.html#type-expression">Cmm.expression</a> <span class="arrow">-></span></span> <span><a href="../Debuginfo/index.html#type-t">Debuginfo.t</a> <span class="arrow">-></span></span> <a href="../Cmm/index.html#type-expression">Cmm.expression</a></span></code></div></div><div class="odoc-spec"><div class="spec value anchored" id="val-asr_int"><a href="#val-asr_int" class="anchor"></a><code><span><span class="keyword">val</span> asr_int : <span><a href="../Cmm/index.html#type-expression">Cmm.expression</a> <span class="arrow">-></span></span> <span><a href="../Cmm/index.html#type-expression">Cmm.expression</a> <span class="arrow">-></span></span> <span><a href="../Debuginfo/index.html#type-t">Debuginfo.t</a> <span class="arrow">-></span></span> <a href="../Cmm/index.html#type-expression">Cmm.expression</a></span></code></div></div><div class="odoc-spec"><div class="spec value anchored" id="val-div_int"><a href="#val-div_int" class="anchor"></a><code><span><span class="keyword">val</span> div_int :
|
||
<span><a href="../Cmm/index.html#type-expression">Cmm.expression</a> <span class="arrow">-></span></span>
|
||
<span><a href="../Cmm/index.html#type-expression">Cmm.expression</a> <span class="arrow">-></span></span>
|
||
<span><a href="../Lambda/index.html#type-is_safe">Lambda.is_safe</a> <span class="arrow">-></span></span>
|
||
<span><a href="../Debuginfo/index.html#type-t">Debuginfo.t</a> <span class="arrow">-></span></span>
|
||
<a href="../Cmm/index.html#type-expression">Cmm.expression</a></span></code></div></div><div class="odoc-spec"><div class="spec value anchored" id="val-mod_int"><a href="#val-mod_int" class="anchor"></a><code><span><span class="keyword">val</span> mod_int :
|
||
<span><a href="../Cmm/index.html#type-expression">Cmm.expression</a> <span class="arrow">-></span></span>
|
||
<span><a href="../Cmm/index.html#type-expression">Cmm.expression</a> <span class="arrow">-></span></span>
|
||
<span><a href="../Lambda/index.html#type-is_safe">Lambda.is_safe</a> <span class="arrow">-></span></span>
|
||
<span><a href="../Debuginfo/index.html#type-t">Debuginfo.t</a> <span class="arrow">-></span></span>
|
||
<a href="../Cmm/index.html#type-expression">Cmm.expression</a></span></code></div></div><div class="odoc-spec"><div class="spec value anchored" id="val-tag_int"><a href="#val-tag_int" class="anchor"></a><code><span><span class="keyword">val</span> tag_int : <span><a href="../Cmm/index.html#type-expression">Cmm.expression</a> <span class="arrow">-></span></span> <span><a href="../Debuginfo/index.html#type-t">Debuginfo.t</a> <span class="arrow">-></span></span> <a href="../Cmm/index.html#type-expression">Cmm.expression</a></span></code></div><div class="spec-doc"><p>Integer tagging. <code>tag_int x = (x lsl 1) + 1</code></p></div></div><div class="odoc-spec"><div class="spec value anchored" id="val-untag_int"><a href="#val-untag_int" class="anchor"></a><code><span><span class="keyword">val</span> untag_int : <span><a href="../Cmm/index.html#type-expression">Cmm.expression</a> <span class="arrow">-></span></span> <span><a href="../Debuginfo/index.html#type-t">Debuginfo.t</a> <span class="arrow">-></span></span> <a href="../Cmm/index.html#type-expression">Cmm.expression</a></span></code></div><div class="spec-doc"><p>Integer untagging. <code>untag_int x = (x asr 1)</code></p></div></div><div class="odoc-spec"><div class="spec value anchored" id="val-safe_div_bi"><a href="#val-safe_div_bi" class="anchor"></a><code><span><span class="keyword">val</span> safe_div_bi :
|
||
<span><a href="../Lambda/index.html#type-is_safe">Lambda.is_safe</a> <span class="arrow">-></span></span>
|
||
<span><a href="../Cmm/index.html#type-expression">Cmm.expression</a> <span class="arrow">-></span></span>
|
||
<span><a href="../Cmm/index.html#type-expression">Cmm.expression</a> <span class="arrow">-></span></span>
|
||
<span><a href="../Primitive/index.html#type-boxed_integer">Primitive.boxed_integer</a> <span class="arrow">-></span></span>
|
||
<span><a href="../Debuginfo/index.html#type-t">Debuginfo.t</a> <span class="arrow">-></span></span>
|
||
<a href="../Cmm/index.html#type-expression">Cmm.expression</a></span></code></div><div class="spec-doc"><p>Specific division operations for boxed integers</p></div></div><div class="odoc-spec"><div class="spec value anchored" id="val-safe_mod_bi"><a href="#val-safe_mod_bi" class="anchor"></a><code><span><span class="keyword">val</span> safe_mod_bi :
|
||
<span><a href="../Lambda/index.html#type-is_safe">Lambda.is_safe</a> <span class="arrow">-></span></span>
|
||
<span><a href="../Cmm/index.html#type-expression">Cmm.expression</a> <span class="arrow">-></span></span>
|
||
<span><a href="../Cmm/index.html#type-expression">Cmm.expression</a> <span class="arrow">-></span></span>
|
||
<span><a href="../Primitive/index.html#type-boxed_integer">Primitive.boxed_integer</a> <span class="arrow">-></span></span>
|
||
<span><a href="../Debuginfo/index.html#type-t">Debuginfo.t</a> <span class="arrow">-></span></span>
|
||
<a href="../Cmm/index.html#type-expression">Cmm.expression</a></span></code></div></div><div class="odoc-spec"><div class="spec value anchored" id="val-mk_if_then_else"><a href="#val-mk_if_then_else" class="anchor"></a><code><span><span class="keyword">val</span> mk_if_then_else :
|
||
<span><a href="../Debuginfo/index.html#type-t">Debuginfo.t</a> <span class="arrow">-></span></span>
|
||
<span><a href="../Cmm/index.html#type-expression">Cmm.expression</a> <span class="arrow">-></span></span>
|
||
<span><a href="../Debuginfo/index.html#type-t">Debuginfo.t</a> <span class="arrow">-></span></span>
|
||
<span><a href="../Cmm/index.html#type-expression">Cmm.expression</a> <span class="arrow">-></span></span>
|
||
<span><a href="../Debuginfo/index.html#type-t">Debuginfo.t</a> <span class="arrow">-></span></span>
|
||
<span><a href="../Cmm/index.html#type-expression">Cmm.expression</a> <span class="arrow">-></span></span>
|
||
<a href="../Cmm/index.html#type-expression">Cmm.expression</a></span></code></div><div class="spec-doc"><p>If-Then-Else expression <code>mk_if_then_else dbg cond ifso_dbg ifso ifnot_dbg ifnot</code> associates <code>dbg</code> to the global if-then-else expression, <code>ifso_dbg</code> to the then branch <code>ifso</code>, and <code>ifnot_dbg</code> to the else branch <code>ifnot</code></p></div></div><div class="odoc-spec"><div class="spec value anchored" id="val-mk_not"><a href="#val-mk_not" class="anchor"></a><code><span><span class="keyword">val</span> mk_not : <span><a href="../Debuginfo/index.html#type-t">Debuginfo.t</a> <span class="arrow">-></span></span> <span><a href="../Cmm/index.html#type-expression">Cmm.expression</a> <span class="arrow">-></span></span> <a href="../Cmm/index.html#type-expression">Cmm.expression</a></span></code></div><div class="spec-doc"><p>Boolean negation</p></div></div><div class="odoc-spec"><div class="spec value anchored" id="val-mk_compare_ints"><a href="#val-mk_compare_ints" class="anchor"></a><code><span><span class="keyword">val</span> mk_compare_ints :
|
||
<span><a href="../Debuginfo/index.html#type-t">Debuginfo.t</a> <span class="arrow">-></span></span>
|
||
<span><a href="../Cmm/index.html#type-expression">Cmm.expression</a> <span class="arrow">-></span></span>
|
||
<span><a href="../Cmm/index.html#type-expression">Cmm.expression</a> <span class="arrow">-></span></span>
|
||
<a href="../Cmm/index.html#type-expression">Cmm.expression</a></span></code></div><div class="spec-doc"><p>Integer and float comparison that returns int not bool</p></div></div><div class="odoc-spec"><div class="spec value anchored" id="val-mk_compare_floats"><a href="#val-mk_compare_floats" class="anchor"></a><code><span><span class="keyword">val</span> mk_compare_floats :
|
||
<span><a href="../Debuginfo/index.html#type-t">Debuginfo.t</a> <span class="arrow">-></span></span>
|
||
<span><a href="../Cmm/index.html#type-expression">Cmm.expression</a> <span class="arrow">-></span></span>
|
||
<span><a href="../Cmm/index.html#type-expression">Cmm.expression</a> <span class="arrow">-></span></span>
|
||
<a href="../Cmm/index.html#type-expression">Cmm.expression</a></span></code></div></div><div class="odoc-spec"><div class="spec value anchored" id="val-create_loop"><a href="#val-create_loop" class="anchor"></a><code><span><span class="keyword">val</span> create_loop : <span><a href="../Cmm/index.html#type-expression">Cmm.expression</a> <span class="arrow">-></span></span> <span><a href="../Debuginfo/index.html#type-t">Debuginfo.t</a> <span class="arrow">-></span></span> <a href="../Cmm/index.html#type-expression">Cmm.expression</a></span></code></div><div class="spec-doc"><p>Loop construction (while true do expr done). Used to be represented as Cloop.</p></div></div><div class="odoc-spec"><div class="spec value anchored" id="val-raise_symbol"><a href="#val-raise_symbol" class="anchor"></a><code><span><span class="keyword">val</span> raise_symbol : <span><a href="../Debuginfo/index.html#type-t">Debuginfo.t</a> <span class="arrow">-></span></span> <span>string <span class="arrow">-></span></span> <a href="../Cmm/index.html#type-expression">Cmm.expression</a></span></code></div><div class="spec-doc"><p>Exception raising</p></div></div><div class="odoc-spec"><div class="spec value anchored" id="val-test_bool"><a href="#val-test_bool" class="anchor"></a><code><span><span class="keyword">val</span> test_bool : <span><a href="../Debuginfo/index.html#type-t">Debuginfo.t</a> <span class="arrow">-></span></span> <span><a href="../Cmm/index.html#type-expression">Cmm.expression</a> <span class="arrow">-></span></span> <a href="../Cmm/index.html#type-expression">Cmm.expression</a></span></code></div><div class="spec-doc"><p>Convert a tagged integer into a raw integer with boolean meaning</p></div></div><div class="odoc-spec"><div class="spec value anchored" id="val-box_float"><a href="#val-box_float" class="anchor"></a><code><span><span class="keyword">val</span> box_float : <span><a href="../Debuginfo/index.html#type-t">Debuginfo.t</a> <span class="arrow">-></span></span> <span><a href="../Cmm/index.html#type-expression">Cmm.expression</a> <span class="arrow">-></span></span> <a href="../Cmm/index.html#type-expression">Cmm.expression</a></span></code></div><div class="spec-doc"><p>Float boxing and unboxing</p></div></div><div class="odoc-spec"><div class="spec value anchored" id="val-unbox_float"><a href="#val-unbox_float" class="anchor"></a><code><span><span class="keyword">val</span> unbox_float : <span><a href="../Debuginfo/index.html#type-t">Debuginfo.t</a> <span class="arrow">-></span></span> <span><a href="../Cmm/index.html#type-expression">Cmm.expression</a> <span class="arrow">-></span></span> <a href="../Cmm/index.html#type-expression">Cmm.expression</a></span></code></div></div><div class="odoc-spec"><div class="spec value anchored" id="val-box_complex"><a href="#val-box_complex" class="anchor"></a><code><span><span class="keyword">val</span> box_complex :
|
||
<span><a href="../Debuginfo/index.html#type-t">Debuginfo.t</a> <span class="arrow">-></span></span>
|
||
<span><a href="../Cmm/index.html#type-expression">Cmm.expression</a> <span class="arrow">-></span></span>
|
||
<span><a href="../Cmm/index.html#type-expression">Cmm.expression</a> <span class="arrow">-></span></span>
|
||
<a href="../Cmm/index.html#type-expression">Cmm.expression</a></span></code></div><div class="spec-doc"><p>Complex number creation and access</p></div></div><div class="odoc-spec"><div class="spec value anchored" id="val-complex_re"><a href="#val-complex_re" class="anchor"></a><code><span><span class="keyword">val</span> complex_re : <span><a href="../Cmm/index.html#type-expression">Cmm.expression</a> <span class="arrow">-></span></span> <span><a href="../Debuginfo/index.html#type-t">Debuginfo.t</a> <span class="arrow">-></span></span> <a href="../Cmm/index.html#type-expression">Cmm.expression</a></span></code></div></div><div class="odoc-spec"><div class="spec value anchored" id="val-complex_im"><a href="#val-complex_im" class="anchor"></a><code><span><span class="keyword">val</span> complex_im : <span><a href="../Cmm/index.html#type-expression">Cmm.expression</a> <span class="arrow">-></span></span> <span><a href="../Debuginfo/index.html#type-t">Debuginfo.t</a> <span class="arrow">-></span></span> <a href="../Cmm/index.html#type-expression">Cmm.expression</a></span></code></div></div><div class="odoc-spec"><div class="spec value anchored" id="val-return_unit"><a href="#val-return_unit" class="anchor"></a><code><span><span class="keyword">val</span> return_unit : <span><a href="../Debuginfo/index.html#type-t">Debuginfo.t</a> <span class="arrow">-></span></span> <span><a href="../Cmm/index.html#type-expression">Cmm.expression</a> <span class="arrow">-></span></span> <a href="../Cmm/index.html#type-expression">Cmm.expression</a></span></code></div><div class="spec-doc"><p>Make the given expression return a unit value</p></div></div><div class="odoc-spec"><div class="spec value anchored" id="val-remove_unit"><a href="#val-remove_unit" class="anchor"></a><code><span><span class="keyword">val</span> remove_unit : <span><a href="../Cmm/index.html#type-expression">Cmm.expression</a> <span class="arrow">-></span></span> <a href="../Cmm/index.html#type-expression">Cmm.expression</a></span></code></div><div class="spec-doc"><p>Remove a trailing unit return if any</p></div></div><p>Blocks</p><div class="odoc-spec"><div class="spec value anchored" id="val-mk_load_mut"><a href="#val-mk_load_mut" class="anchor"></a><code><span><span class="keyword">val</span> mk_load_mut : <span><a href="../Cmm/index.html#type-memory_chunk">Cmm.memory_chunk</a> <span class="arrow">-></span></span> <a href="../Cmm/index.html#type-operation">Cmm.operation</a></span></code></div><div class="spec-doc"><p>Non-atomic load of a mutable field</p></div></div><div class="odoc-spec"><div class="spec value anchored" id="val-mk_load_atomic"><a href="#val-mk_load_atomic" class="anchor"></a><code><span><span class="keyword">val</span> mk_load_atomic : <span><a href="../Cmm/index.html#type-memory_chunk">Cmm.memory_chunk</a> <span class="arrow">-></span></span> <a href="../Cmm/index.html#type-operation">Cmm.operation</a></span></code></div><div class="spec-doc"><p>Atomic load. All atomic fields are mutable.</p></div></div><div class="odoc-spec"><div class="spec value anchored" id="val-field_address"><a href="#val-field_address" class="anchor"></a><code><span><span class="keyword">val</span> field_address : <span><a href="../Cmm/index.html#type-expression">Cmm.expression</a> <span class="arrow">-></span></span> <span>int <span class="arrow">-></span></span> <span><a href="../Debuginfo/index.html#type-t">Debuginfo.t</a> <span class="arrow">-></span></span> <a href="../Cmm/index.html#type-expression">Cmm.expression</a></span></code></div><div class="spec-doc"><p><code>field_address ptr n dbg</code> returns an expression for the address of the <code>n</code>th field of the block pointed to by <code>ptr</code></p></div></div><div class="odoc-spec"><div class="spec value anchored" id="val-get_field_gen"><a href="#val-get_field_gen" class="anchor"></a><code><span><span class="keyword">val</span> get_field_gen :
|
||
<span><a href="../Asttypes/index.html#type-mutable_flag">Asttypes.mutable_flag</a> <span class="arrow">-></span></span>
|
||
<span><a href="../Cmm/index.html#type-expression">Cmm.expression</a> <span class="arrow">-></span></span>
|
||
<span>int <span class="arrow">-></span></span>
|
||
<span><a href="../Debuginfo/index.html#type-t">Debuginfo.t</a> <span class="arrow">-></span></span>
|
||
<a href="../Cmm/index.html#type-expression">Cmm.expression</a></span></code></div><div class="spec-doc"><p><code>get_field_gen mut ptr n dbg</code> returns an expression for the access to the <code>n</code>th field of the block pointed to by <code>ptr</code></p></div></div><div class="odoc-spec"><div class="spec value anchored" id="val-set_field"><a href="#val-set_field" class="anchor"></a><code><span><span class="keyword">val</span> set_field :
|
||
<span><a href="../Cmm/index.html#type-expression">Cmm.expression</a> <span class="arrow">-></span></span>
|
||
<span>int <span class="arrow">-></span></span>
|
||
<span><a href="../Cmm/index.html#type-expression">Cmm.expression</a> <span class="arrow">-></span></span>
|
||
<span><a href="../Lambda/index.html#type-initialization_or_assignment">Lambda.initialization_or_assignment</a> <span class="arrow">-></span></span>
|
||
<span><a href="../Debuginfo/index.html#type-t">Debuginfo.t</a> <span class="arrow">-></span></span>
|
||
<a href="../Cmm/index.html#type-expression">Cmm.expression</a></span></code></div><div class="spec-doc"><p><code>set_field ptr n newval init dbg</code> returns an expression for setting the <code>n</code>th field of the block pointed to by <code>ptr</code> to <code>newval</code></p></div></div><div class="odoc-spec"><div class="spec value anchored" id="val-get_header"><a href="#val-get_header" class="anchor"></a><code><span><span class="keyword">val</span> get_header : <span><a href="../Cmm/index.html#type-expression">Cmm.expression</a> <span class="arrow">-></span></span> <span><a href="../Debuginfo/index.html#type-t">Debuginfo.t</a> <span class="arrow">-></span></span> <a href="../Cmm/index.html#type-expression">Cmm.expression</a></span></code></div><div class="spec-doc"><p>Load a block's header</p></div></div><div class="odoc-spec"><div class="spec value anchored" id="val-get_header_without_profinfo"><a href="#val-get_header_without_profinfo" class="anchor"></a><code><span><span class="keyword">val</span> get_header_without_profinfo :
|
||
<span><a href="../Cmm/index.html#type-expression">Cmm.expression</a> <span class="arrow">-></span></span>
|
||
<span><a href="../Debuginfo/index.html#type-t">Debuginfo.t</a> <span class="arrow">-></span></span>
|
||
<a href="../Cmm/index.html#type-expression">Cmm.expression</a></span></code></div><div class="spec-doc"><p>Same as <code>get_header</code>, but also set all profiling bits of the header are to 0 (if profiling is enabled)</p></div></div><div class="odoc-spec"><div class="spec value anchored" id="val-get_tag"><a href="#val-get_tag" class="anchor"></a><code><span><span class="keyword">val</span> get_tag : <span><a href="../Cmm/index.html#type-expression">Cmm.expression</a> <span class="arrow">-></span></span> <span><a href="../Debuginfo/index.html#type-t">Debuginfo.t</a> <span class="arrow">-></span></span> <a href="../Cmm/index.html#type-expression">Cmm.expression</a></span></code></div><div class="spec-doc"><p>Load a block's tag</p></div></div><div class="odoc-spec"><div class="spec value anchored" id="val-get_size"><a href="#val-get_size" class="anchor"></a><code><span><span class="keyword">val</span> get_size : <span><a href="../Cmm/index.html#type-expression">Cmm.expression</a> <span class="arrow">-></span></span> <span><a href="../Debuginfo/index.html#type-t">Debuginfo.t</a> <span class="arrow">-></span></span> <a href="../Cmm/index.html#type-expression">Cmm.expression</a></span></code></div><div class="spec-doc"><p>Load a block's size</p></div></div><p>Arrays</p><div class="odoc-spec"><div class="spec value anchored" id="val-wordsize_shift"><a href="#val-wordsize_shift" class="anchor"></a><code><span><span class="keyword">val</span> wordsize_shift : int</span></code></div></div><div class="odoc-spec"><div class="spec value anchored" id="val-numfloat_shift"><a href="#val-numfloat_shift" class="anchor"></a><code><span><span class="keyword">val</span> numfloat_shift : int</span></code></div></div><div class="odoc-spec"><div class="spec value anchored" id="val-is_addr_array_hdr"><a href="#val-is_addr_array_hdr" class="anchor"></a><code><span><span class="keyword">val</span> is_addr_array_hdr : <span><a href="../Cmm/index.html#type-expression">Cmm.expression</a> <span class="arrow">-></span></span> <span><a href="../Debuginfo/index.html#type-t">Debuginfo.t</a> <span class="arrow">-></span></span> <a href="../Cmm/index.html#type-expression">Cmm.expression</a></span></code></div><div class="spec-doc"><p>Check whether the given array is an array of regular OCaml values (as opposed to unboxed floats), from its header or pointer</p></div></div><div class="odoc-spec"><div class="spec value anchored" id="val-is_addr_array_ptr"><a href="#val-is_addr_array_ptr" class="anchor"></a><code><span><span class="keyword">val</span> is_addr_array_ptr : <span><a href="../Cmm/index.html#type-expression">Cmm.expression</a> <span class="arrow">-></span></span> <span><a href="../Debuginfo/index.html#type-t">Debuginfo.t</a> <span class="arrow">-></span></span> <a href="../Cmm/index.html#type-expression">Cmm.expression</a></span></code></div></div><div class="odoc-spec"><div class="spec value anchored" id="val-addr_array_length_shifted"><a href="#val-addr_array_length_shifted" class="anchor"></a><code><span><span class="keyword">val</span> addr_array_length_shifted : <span><a href="../Cmm/index.html#type-expression">Cmm.expression</a> <span class="arrow">-></span></span> <span><a href="../Debuginfo/index.html#type-t">Debuginfo.t</a> <span class="arrow">-></span></span> <a href="../Cmm/index.html#type-expression">Cmm.expression</a></span></code></div><div class="spec-doc"><p>Get the length of an array from its header Shifts by one bit less than necessary, keeping one of the GC colour bits, to save an operation when returning the length as a caml integer or when comparing it to a caml integer. Assumes the header does not have any profiling info (as returned by get_header_without_profinfo)</p></div></div><div class="odoc-spec"><div class="spec value anchored" id="val-float_array_length_shifted"><a href="#val-float_array_length_shifted" class="anchor"></a><code><span><span class="keyword">val</span> float_array_length_shifted :
|
||
<span><a href="../Cmm/index.html#type-expression">Cmm.expression</a> <span class="arrow">-></span></span>
|
||
<span><a href="../Debuginfo/index.html#type-t">Debuginfo.t</a> <span class="arrow">-></span></span>
|
||
<a href="../Cmm/index.html#type-expression">Cmm.expression</a></span></code></div></div><div class="odoc-spec"><div class="spec value anchored" id="val-array_indexing"><a href="#val-array_indexing" class="anchor"></a><code><span><span class="keyword">val</span> array_indexing :
|
||
<span>?typ:<a href="../Cmm/index.html#type-machtype_component">Cmm.machtype_component</a> <span class="arrow">-></span></span>
|
||
<span>int <span class="arrow">-></span></span>
|
||
<span><a href="../Cmm/index.html#type-expression">Cmm.expression</a> <span class="arrow">-></span></span>
|
||
<span><a href="../Cmm/index.html#type-expression">Cmm.expression</a> <span class="arrow">-></span></span>
|
||
<span><a href="../Debuginfo/index.html#type-t">Debuginfo.t</a> <span class="arrow">-></span></span>
|
||
<a href="../Cmm/index.html#type-expression">Cmm.expression</a></span></code></div><div class="spec-doc"><p>For <code>array_indexing ?typ log2size ptr ofs dbg</code> : Produces a pointer to the element of the array <code>ptr</code> on the position <code>ofs</code> with the given element <code>log2size</code> log2 element size. <code>ofs</code> is given as a tagged int expression. The optional ?typ argument is the C-- type of the result. By default, it is Addr, meaning we are constructing a derived pointer into the heap. If we know the pointer is outside the heap (this is the case for bigarray indexing), we give type Int instead.</p></div></div><div class="odoc-spec"><div class="spec value anchored" id="val-addr_array_ref"><a href="#val-addr_array_ref" class="anchor"></a><code><span><span class="keyword">val</span> addr_array_ref :
|
||
<span><a href="../Cmm/index.html#type-expression">Cmm.expression</a> <span class="arrow">-></span></span>
|
||
<span><a href="../Cmm/index.html#type-expression">Cmm.expression</a> <span class="arrow">-></span></span>
|
||
<span><a href="../Debuginfo/index.html#type-t">Debuginfo.t</a> <span class="arrow">-></span></span>
|
||
<a href="../Cmm/index.html#type-expression">Cmm.expression</a></span></code></div><div class="spec-doc"><p>Array loads and stores <code>unboxed_float_array_ref</code> and <code>float_array_ref</code> differ in the boxing of the result; <code>float_array_set</code> takes an unboxed float</p></div></div><div class="odoc-spec"><div class="spec value anchored" id="val-int_array_ref"><a href="#val-int_array_ref" class="anchor"></a><code><span><span class="keyword">val</span> int_array_ref :
|
||
<span><a href="../Cmm/index.html#type-expression">Cmm.expression</a> <span class="arrow">-></span></span>
|
||
<span><a href="../Cmm/index.html#type-expression">Cmm.expression</a> <span class="arrow">-></span></span>
|
||
<span><a href="../Debuginfo/index.html#type-t">Debuginfo.t</a> <span class="arrow">-></span></span>
|
||
<a href="../Cmm/index.html#type-expression">Cmm.expression</a></span></code></div></div><div class="odoc-spec"><div class="spec value anchored" id="val-unboxed_float_array_ref"><a href="#val-unboxed_float_array_ref" class="anchor"></a><code><span><span class="keyword">val</span> unboxed_float_array_ref :
|
||
<span><a href="../Cmm/index.html#type-expression">Cmm.expression</a> <span class="arrow">-></span></span>
|
||
<span><a href="../Cmm/index.html#type-expression">Cmm.expression</a> <span class="arrow">-></span></span>
|
||
<span><a href="../Debuginfo/index.html#type-t">Debuginfo.t</a> <span class="arrow">-></span></span>
|
||
<a href="../Cmm/index.html#type-expression">Cmm.expression</a></span></code></div></div><div class="odoc-spec"><div class="spec value anchored" id="val-float_array_ref"><a href="#val-float_array_ref" class="anchor"></a><code><span><span class="keyword">val</span> float_array_ref :
|
||
<span><a href="../Cmm/index.html#type-expression">Cmm.expression</a> <span class="arrow">-></span></span>
|
||
<span><a href="../Cmm/index.html#type-expression">Cmm.expression</a> <span class="arrow">-></span></span>
|
||
<span><a href="../Debuginfo/index.html#type-t">Debuginfo.t</a> <span class="arrow">-></span></span>
|
||
<a href="../Cmm/index.html#type-expression">Cmm.expression</a></span></code></div></div><div class="odoc-spec"><div class="spec value anchored" id="val-addr_array_set"><a href="#val-addr_array_set" class="anchor"></a><code><span><span class="keyword">val</span> addr_array_set :
|
||
<span><a href="../Cmm/index.html#type-expression">Cmm.expression</a> <span class="arrow">-></span></span>
|
||
<span><a href="../Cmm/index.html#type-expression">Cmm.expression</a> <span class="arrow">-></span></span>
|
||
<span><a href="../Cmm/index.html#type-expression">Cmm.expression</a> <span class="arrow">-></span></span>
|
||
<span><a href="../Debuginfo/index.html#type-t">Debuginfo.t</a> <span class="arrow">-></span></span>
|
||
<a href="../Cmm/index.html#type-expression">Cmm.expression</a></span></code></div></div><div class="odoc-spec"><div class="spec value anchored" id="val-addr_array_initialize"><a href="#val-addr_array_initialize" class="anchor"></a><code><span><span class="keyword">val</span> addr_array_initialize :
|
||
<span><a href="../Cmm/index.html#type-expression">Cmm.expression</a> <span class="arrow">-></span></span>
|
||
<span><a href="../Cmm/index.html#type-expression">Cmm.expression</a> <span class="arrow">-></span></span>
|
||
<span><a href="../Cmm/index.html#type-expression">Cmm.expression</a> <span class="arrow">-></span></span>
|
||
<span><a href="../Debuginfo/index.html#type-t">Debuginfo.t</a> <span class="arrow">-></span></span>
|
||
<a href="../Cmm/index.html#type-expression">Cmm.expression</a></span></code></div></div><div class="odoc-spec"><div class="spec value anchored" id="val-int_array_set"><a href="#val-int_array_set" class="anchor"></a><code><span><span class="keyword">val</span> int_array_set :
|
||
<span><a href="../Cmm/index.html#type-expression">Cmm.expression</a> <span class="arrow">-></span></span>
|
||
<span><a href="../Cmm/index.html#type-expression">Cmm.expression</a> <span class="arrow">-></span></span>
|
||
<span><a href="../Cmm/index.html#type-expression">Cmm.expression</a> <span class="arrow">-></span></span>
|
||
<span><a href="../Debuginfo/index.html#type-t">Debuginfo.t</a> <span class="arrow">-></span></span>
|
||
<a href="../Cmm/index.html#type-expression">Cmm.expression</a></span></code></div></div><div class="odoc-spec"><div class="spec value anchored" id="val-float_array_set"><a href="#val-float_array_set" class="anchor"></a><code><span><span class="keyword">val</span> float_array_set :
|
||
<span><a href="../Cmm/index.html#type-expression">Cmm.expression</a> <span class="arrow">-></span></span>
|
||
<span><a href="../Cmm/index.html#type-expression">Cmm.expression</a> <span class="arrow">-></span></span>
|
||
<span><a href="../Cmm/index.html#type-expression">Cmm.expression</a> <span class="arrow">-></span></span>
|
||
<span><a href="../Debuginfo/index.html#type-t">Debuginfo.t</a> <span class="arrow">-></span></span>
|
||
<a href="../Cmm/index.html#type-expression">Cmm.expression</a></span></code></div></div><p>Strings</p><div class="odoc-spec"><div class="spec value anchored" id="val-string_length"><a href="#val-string_length" class="anchor"></a><code><span><span class="keyword">val</span> string_length : <span><a href="../Cmm/index.html#type-expression">Cmm.expression</a> <span class="arrow">-></span></span> <span><a href="../Debuginfo/index.html#type-t">Debuginfo.t</a> <span class="arrow">-></span></span> <a href="../Cmm/index.html#type-expression">Cmm.expression</a></span></code></div></div><div class="odoc-spec"><div class="spec value anchored" id="val-bigstring_length"><a href="#val-bigstring_length" class="anchor"></a><code><span><span class="keyword">val</span> bigstring_length : <span><a href="../Cmm/index.html#type-expression">Cmm.expression</a> <span class="arrow">-></span></span> <span><a href="../Debuginfo/index.html#type-t">Debuginfo.t</a> <span class="arrow">-></span></span> <a href="../Cmm/index.html#type-expression">Cmm.expression</a></span></code></div></div><p>Objects</p><div class="odoc-spec"><div class="spec value anchored" id="val-lookup_tag"><a href="#val-lookup_tag" class="anchor"></a><code><span><span class="keyword">val</span> lookup_tag :
|
||
<span><a href="../Cmm/index.html#type-expression">Cmm.expression</a> <span class="arrow">-></span></span>
|
||
<span><a href="../Cmm/index.html#type-expression">Cmm.expression</a> <span class="arrow">-></span></span>
|
||
<span><a href="../Debuginfo/index.html#type-t">Debuginfo.t</a> <span class="arrow">-></span></span>
|
||
<a href="../Cmm/index.html#type-expression">Cmm.expression</a></span></code></div><div class="spec-doc"><p>Lookup a method by its hash, using <code>caml_get_public_method</code> Arguments :</p><ul><li>obj : the object from which to lookup</li><li>tag : the hash of the method name, as a tagged integer</li></ul></div></div><div class="odoc-spec"><div class="spec value anchored" id="val-lookup_label"><a href="#val-lookup_label" class="anchor"></a><code><span><span class="keyword">val</span> lookup_label :
|
||
<span><a href="../Cmm/index.html#type-expression">Cmm.expression</a> <span class="arrow">-></span></span>
|
||
<span><a href="../Cmm/index.html#type-expression">Cmm.expression</a> <span class="arrow">-></span></span>
|
||
<span><a href="../Debuginfo/index.html#type-t">Debuginfo.t</a> <span class="arrow">-></span></span>
|
||
<a href="../Cmm/index.html#type-expression">Cmm.expression</a></span></code></div><div class="spec-doc"><p>Lookup a method by its offset in the method table Arguments :</p><ul><li>obj : the object from which to lookup</li><li>lab : the position of the required method in the object's method array, as a tagged integer</li></ul></div></div><div class="odoc-spec"><div class="spec value anchored" id="val-call_cached_method"><a href="#val-call_cached_method" class="anchor"></a><code><span><span class="keyword">val</span> call_cached_method :
|
||
<span><a href="../Cmm/index.html#type-expression">Cmm.expression</a> <span class="arrow">-></span></span>
|
||
<span><a href="../Cmm/index.html#type-expression">Cmm.expression</a> <span class="arrow">-></span></span>
|
||
<span><a href="../Cmm/index.html#type-expression">Cmm.expression</a> <span class="arrow">-></span></span>
|
||
<span><a href="../Cmm/index.html#type-expression">Cmm.expression</a> <span class="arrow">-></span></span>
|
||
<span><span><a href="../Cmm/index.html#type-expression">Cmm.expression</a> list</span> <span class="arrow">-></span></span>
|
||
<span><a href="../Debuginfo/index.html#type-t">Debuginfo.t</a> <span class="arrow">-></span></span>
|
||
<a href="../Cmm/index.html#type-expression">Cmm.expression</a></span></code></div><div class="spec-doc"><p>Lookup and call a method using the method cache Arguments :</p><ul><li>obj : the object from which to lookup</li><li>tag : the hash of the method name, as a tagged integer</li><li>cache : the method cache array</li><li>pos : the position of the cache entry in the cache array</li><li>args : the additional arguments to the method call</li></ul></div></div><p>Allocations</p><div class="odoc-spec"><div class="spec value anchored" id="val-make_alloc"><a href="#val-make_alloc" class="anchor"></a><code><span><span class="keyword">val</span> make_alloc : <span><a href="../Debuginfo/index.html#type-t">Debuginfo.t</a> <span class="arrow">-></span></span> <span>int <span class="arrow">-></span></span> <span><span><a href="../Cmm/index.html#type-expression">Cmm.expression</a> list</span> <span class="arrow">-></span></span> <a href="../Cmm/index.html#type-expression">Cmm.expression</a></span></code></div><div class="spec-doc"><p>Allocate a block of regular values with the given tag</p></div></div><div class="odoc-spec"><div class="spec value anchored" id="val-make_float_alloc"><a href="#val-make_float_alloc" class="anchor"></a><code><span><span class="keyword">val</span> make_float_alloc :
|
||
<span><a href="../Debuginfo/index.html#type-t">Debuginfo.t</a> <span class="arrow">-></span></span>
|
||
<span>int <span class="arrow">-></span></span>
|
||
<span><span><a href="../Cmm/index.html#type-expression">Cmm.expression</a> list</span> <span class="arrow">-></span></span>
|
||
<a href="../Cmm/index.html#type-expression">Cmm.expression</a></span></code></div><div class="spec-doc"><p>Allocate a block of unboxed floats with the given tag</p></div></div><p>Bounds checking</p><div class="odoc-spec"><div class="spec value anchored" id="val-make_checkbound"><a href="#val-make_checkbound" class="anchor"></a><code><span><span class="keyword">val</span> make_checkbound : <span><a href="../Debuginfo/index.html#type-t">Debuginfo.t</a> <span class="arrow">-></span></span> <span><span><a href="../Cmm/index.html#type-expression">Cmm.expression</a> list</span> <span class="arrow">-></span></span> <a href="../Cmm/index.html#type-expression">Cmm.expression</a></span></code></div><div class="spec-doc"><p>Generate a <code>Ccheckbound</code> term</p></div></div><div class="odoc-spec"><div class="spec value anchored" id="val-check_bound"><a href="#val-check_bound" class="anchor"></a><code><span><span class="keyword">val</span> check_bound :
|
||
<span><a href="../Lambda/index.html#type-is_safe">Lambda.is_safe</a> <span class="arrow">-></span></span>
|
||
<span><a href="../Clambda_primitives/index.html#type-memory_access_size">Clambda_primitives.memory_access_size</a> <span class="arrow">-></span></span>
|
||
<span><a href="../Debuginfo/index.html#type-t">Debuginfo.t</a> <span class="arrow">-></span></span>
|
||
<span><a href="../Cmm/index.html#type-expression">Cmm.expression</a> <span class="arrow">-></span></span>
|
||
<span><a href="../Cmm/index.html#type-expression">Cmm.expression</a> <span class="arrow">-></span></span>
|
||
<span><a href="../Cmm/index.html#type-expression">Cmm.expression</a> <span class="arrow">-></span></span>
|
||
<a href="../Cmm/index.html#type-expression">Cmm.expression</a></span></code></div><div class="spec-doc"><p><code>check_bound safety access_size dbg length a2 k</code> prefixes expression <code>k</code> with a check that reading <code>access_size</code> bits starting at position <code>a2</code> in a string/bytes value of length <code>length</code> is within bounds, unless <code>safety</code> is <code>Unsafe</code>.</p></div></div><div class="odoc-spec"><div class="spec value anchored" id="val-opaque"><a href="#val-opaque" class="anchor"></a><code><span><span class="keyword">val</span> opaque : <span><a href="../Cmm/index.html#type-expression">Cmm.expression</a> <span class="arrow">-></span></span> <span><a href="../Debuginfo/index.html#type-t">Debuginfo.t</a> <span class="arrow">-></span></span> <a href="../Cmm/index.html#type-expression">Cmm.expression</a></span></code></div><div class="spec-doc"><p>Sys.opaque_identity</p></div></div><p>Generic application functions</p><div class="odoc-spec"><div class="spec value anchored" id="val-apply_function_sym"><a href="#val-apply_function_sym" class="anchor"></a><code><span><span class="keyword">val</span> apply_function_sym : <span>int <span class="arrow">-></span></span> string</span></code></div><div class="spec-doc"><p>Get the symbol for the generic application with <code>n</code> arguments, and ensure its presence in the set of defined symbols</p></div></div><div class="odoc-spec"><div class="spec value anchored" id="val-curry_function_sym"><a href="#val-curry_function_sym" class="anchor"></a><code><span><span class="keyword">val</span> curry_function_sym : <span>int <span class="arrow">-></span></span> string</span></code></div><div class="spec-doc"><p>If <code>n</code> is positive, get the symbol for the generic currying wrapper with <code>n</code> arguments, and ensure its presence in the set of defined symbols. Otherwise, do the same for the generic tuple wrapper with <code>-n</code> arguments.</p></div></div><p>Bigarrays</p><div class="odoc-spec"><div class="spec value anchored" id="val-bigarray_get"><a href="#val-bigarray_get" class="anchor"></a><code><span><span class="keyword">val</span> bigarray_get :
|
||
<span>bool <span class="arrow">-></span></span>
|
||
<span><a href="../Lambda/index.html#type-bigarray_kind">Lambda.bigarray_kind</a> <span class="arrow">-></span></span>
|
||
<span><a href="../Lambda/index.html#type-bigarray_layout">Lambda.bigarray_layout</a> <span class="arrow">-></span></span>
|
||
<span><a href="../Cmm/index.html#type-expression">Cmm.expression</a> <span class="arrow">-></span></span>
|
||
<span><span><a href="../Cmm/index.html#type-expression">Cmm.expression</a> list</span> <span class="arrow">-></span></span>
|
||
<span><a href="../Debuginfo/index.html#type-t">Debuginfo.t</a> <span class="arrow">-></span></span>
|
||
<a href="../Cmm/index.html#type-expression">Cmm.expression</a></span></code></div><div class="spec-doc"><p><code>bigarray_get unsafe kind layout b args dbg</code></p><ul><li>unsafe : if true, do not insert bound checks</li><li>kind : see <code>Lambda.bigarray_kind</code></li><li>layout : see <code>Lambda.bigarray_layout</code></li><li>b : the bigarray to load from</li><li>args : a list of tagged integer expressions, corresponding to the indices in the respective dimensions</li><li>dbg : debugging information</li></ul></div></div><div class="odoc-spec"><div class="spec value anchored" id="val-bigarray_set"><a href="#val-bigarray_set" class="anchor"></a><code><span><span class="keyword">val</span> bigarray_set :
|
||
<span>bool <span class="arrow">-></span></span>
|
||
<span><a href="../Lambda/index.html#type-bigarray_kind">Lambda.bigarray_kind</a> <span class="arrow">-></span></span>
|
||
<span><a href="../Lambda/index.html#type-bigarray_layout">Lambda.bigarray_layout</a> <span class="arrow">-></span></span>
|
||
<span><a href="../Cmm/index.html#type-expression">Cmm.expression</a> <span class="arrow">-></span></span>
|
||
<span><span><a href="../Cmm/index.html#type-expression">Cmm.expression</a> list</span> <span class="arrow">-></span></span>
|
||
<span><a href="../Cmm/index.html#type-expression">Cmm.expression</a> <span class="arrow">-></span></span>
|
||
<span><a href="../Debuginfo/index.html#type-t">Debuginfo.t</a> <span class="arrow">-></span></span>
|
||
<a href="../Cmm/index.html#type-expression">Cmm.expression</a></span></code></div><div class="spec-doc"><p><code>bigarray_set unsafe kind layout b args newval dbg</code> Same as <code>bigarray_get</code>, with <code>newval</code> the value being assigned</p></div></div><p>Operations on 32-bit integers</p><div class="odoc-spec"><div class="spec value anchored" id="val-low_32"><a href="#val-low_32" class="anchor"></a><code><span><span class="keyword">val</span> low_32 : <span><a href="../Debuginfo/index.html#type-t">Debuginfo.t</a> <span class="arrow">-></span></span> <span><a href="../Cmm/index.html#type-expression">Cmm.expression</a> <span class="arrow">-></span></span> <a href="../Cmm/index.html#type-expression">Cmm.expression</a></span></code></div><div class="spec-doc"><p><code>low_32 _ x</code> is a value which agrees with x on at least the low 32 bits</p></div></div><div class="odoc-spec"><div class="spec value anchored" id="val-sign_extend_32"><a href="#val-sign_extend_32" class="anchor"></a><code><span><span class="keyword">val</span> sign_extend_32 : <span><a href="../Debuginfo/index.html#type-t">Debuginfo.t</a> <span class="arrow">-></span></span> <span><a href="../Cmm/index.html#type-expression">Cmm.expression</a> <span class="arrow">-></span></span> <a href="../Cmm/index.html#type-expression">Cmm.expression</a></span></code></div><div class="spec-doc"><p>Sign extend from 32 bits to the word size</p></div></div><div class="odoc-spec"><div class="spec value anchored" id="val-zero_extend_32"><a href="#val-zero_extend_32" class="anchor"></a><code><span><span class="keyword">val</span> zero_extend_32 : <span><a href="../Debuginfo/index.html#type-t">Debuginfo.t</a> <span class="arrow">-></span></span> <span><a href="../Cmm/index.html#type-expression">Cmm.expression</a> <span class="arrow">-></span></span> <a href="../Cmm/index.html#type-expression">Cmm.expression</a></span></code></div><div class="spec-doc"><p>Zero extend from 32 bits to the word size</p></div></div><p>Boxed numbers</p><div class="odoc-spec"><div class="spec value anchored" id="val-caml_nativeint_ops"><a href="#val-caml_nativeint_ops" class="anchor"></a><code><span><span class="keyword">val</span> caml_nativeint_ops : string</span></code></div><div class="spec-doc"><p>Global symbols for the ops field of boxed integers</p></div></div><div class="odoc-spec"><div class="spec value anchored" id="val-caml_int32_ops"><a href="#val-caml_int32_ops" class="anchor"></a><code><span><span class="keyword">val</span> caml_int32_ops : string</span></code></div></div><div class="odoc-spec"><div class="spec value anchored" id="val-caml_int64_ops"><a href="#val-caml_int64_ops" class="anchor"></a><code><span><span class="keyword">val</span> caml_int64_ops : string</span></code></div></div><div class="odoc-spec"><div class="spec value anchored" id="val-box_int_gen"><a href="#val-box_int_gen" class="anchor"></a><code><span><span class="keyword">val</span> box_int_gen :
|
||
<span><a href="../Debuginfo/index.html#type-t">Debuginfo.t</a> <span class="arrow">-></span></span>
|
||
<span><a href="../Primitive/index.html#type-boxed_integer">Primitive.boxed_integer</a> <span class="arrow">-></span></span>
|
||
<span><a href="../Cmm/index.html#type-expression">Cmm.expression</a> <span class="arrow">-></span></span>
|
||
<a href="../Cmm/index.html#type-expression">Cmm.expression</a></span></code></div><div class="spec-doc"><p>Box a given integer, without sharing of constants</p></div></div><div class="odoc-spec"><div class="spec value anchored" id="val-unbox_int"><a href="#val-unbox_int" class="anchor"></a><code><span><span class="keyword">val</span> unbox_int :
|
||
<span><a href="../Debuginfo/index.html#type-t">Debuginfo.t</a> <span class="arrow">-></span></span>
|
||
<span><a href="../Primitive/index.html#type-boxed_integer">Primitive.boxed_integer</a> <span class="arrow">-></span></span>
|
||
<span><a href="../Cmm/index.html#type-expression">Cmm.expression</a> <span class="arrow">-></span></span>
|
||
<a href="../Cmm/index.html#type-expression">Cmm.expression</a></span></code></div><div class="spec-doc"><p>Unbox a given boxed integer</p></div></div><div class="odoc-spec"><div class="spec value anchored" id="val-make_unsigned_int"><a href="#val-make_unsigned_int" class="anchor"></a><code><span><span class="keyword">val</span> make_unsigned_int :
|
||
<span><a href="../Primitive/index.html#type-boxed_integer">Primitive.boxed_integer</a> <span class="arrow">-></span></span>
|
||
<span><a href="../Cmm/index.html#type-expression">Cmm.expression</a> <span class="arrow">-></span></span>
|
||
<span><a href="../Debuginfo/index.html#type-t">Debuginfo.t</a> <span class="arrow">-></span></span>
|
||
<a href="../Cmm/index.html#type-expression">Cmm.expression</a></span></code></div><div class="spec-doc"><p>Used to prepare 32-bit integers on 64-bit platforms for a lsr operation</p></div></div><div class="odoc-spec"><div class="spec value anchored" id="val-unaligned_load_16"><a href="#val-unaligned_load_16" class="anchor"></a><code><span><span class="keyword">val</span> unaligned_load_16 :
|
||
<span><a href="../Cmm/index.html#type-expression">Cmm.expression</a> <span class="arrow">-></span></span>
|
||
<span><a href="../Cmm/index.html#type-expression">Cmm.expression</a> <span class="arrow">-></span></span>
|
||
<span><a href="../Debuginfo/index.html#type-t">Debuginfo.t</a> <span class="arrow">-></span></span>
|
||
<a href="../Cmm/index.html#type-expression">Cmm.expression</a></span></code></div></div><div class="odoc-spec"><div class="spec value anchored" id="val-unaligned_set_16"><a href="#val-unaligned_set_16" class="anchor"></a><code><span><span class="keyword">val</span> unaligned_set_16 :
|
||
<span><a href="../Cmm/index.html#type-expression">Cmm.expression</a> <span class="arrow">-></span></span>
|
||
<span><a href="../Cmm/index.html#type-expression">Cmm.expression</a> <span class="arrow">-></span></span>
|
||
<span><a href="../Cmm/index.html#type-expression">Cmm.expression</a> <span class="arrow">-></span></span>
|
||
<span><a href="../Debuginfo/index.html#type-t">Debuginfo.t</a> <span class="arrow">-></span></span>
|
||
<a href="../Cmm/index.html#type-expression">Cmm.expression</a></span></code></div></div><div class="odoc-spec"><div class="spec value anchored" id="val-unaligned_load_32"><a href="#val-unaligned_load_32" class="anchor"></a><code><span><span class="keyword">val</span> unaligned_load_32 :
|
||
<span><a href="../Cmm/index.html#type-expression">Cmm.expression</a> <span class="arrow">-></span></span>
|
||
<span><a href="../Cmm/index.html#type-expression">Cmm.expression</a> <span class="arrow">-></span></span>
|
||
<span><a href="../Debuginfo/index.html#type-t">Debuginfo.t</a> <span class="arrow">-></span></span>
|
||
<a href="../Cmm/index.html#type-expression">Cmm.expression</a></span></code></div></div><div class="odoc-spec"><div class="spec value anchored" id="val-unaligned_set_32"><a href="#val-unaligned_set_32" class="anchor"></a><code><span><span class="keyword">val</span> unaligned_set_32 :
|
||
<span><a href="../Cmm/index.html#type-expression">Cmm.expression</a> <span class="arrow">-></span></span>
|
||
<span><a href="../Cmm/index.html#type-expression">Cmm.expression</a> <span class="arrow">-></span></span>
|
||
<span><a href="../Cmm/index.html#type-expression">Cmm.expression</a> <span class="arrow">-></span></span>
|
||
<span><a href="../Debuginfo/index.html#type-t">Debuginfo.t</a> <span class="arrow">-></span></span>
|
||
<a href="../Cmm/index.html#type-expression">Cmm.expression</a></span></code></div></div><div class="odoc-spec"><div class="spec value anchored" id="val-unaligned_load_64"><a href="#val-unaligned_load_64" class="anchor"></a><code><span><span class="keyword">val</span> unaligned_load_64 :
|
||
<span><a href="../Cmm/index.html#type-expression">Cmm.expression</a> <span class="arrow">-></span></span>
|
||
<span><a href="../Cmm/index.html#type-expression">Cmm.expression</a> <span class="arrow">-></span></span>
|
||
<span><a href="../Debuginfo/index.html#type-t">Debuginfo.t</a> <span class="arrow">-></span></span>
|
||
<a href="../Cmm/index.html#type-expression">Cmm.expression</a></span></code></div></div><div class="odoc-spec"><div class="spec value anchored" id="val-unaligned_set_64"><a href="#val-unaligned_set_64" class="anchor"></a><code><span><span class="keyword">val</span> unaligned_set_64 :
|
||
<span><a href="../Cmm/index.html#type-expression">Cmm.expression</a> <span class="arrow">-></span></span>
|
||
<span><a href="../Cmm/index.html#type-expression">Cmm.expression</a> <span class="arrow">-></span></span>
|
||
<span><a href="../Cmm/index.html#type-expression">Cmm.expression</a> <span class="arrow">-></span></span>
|
||
<span><a href="../Debuginfo/index.html#type-t">Debuginfo.t</a> <span class="arrow">-></span></span>
|
||
<a href="../Cmm/index.html#type-expression">Cmm.expression</a></span></code></div></div><p>Raw memory accesses</p><div class="odoc-spec"><div class="spec value anchored" id="val-unaligned_set"><a href="#val-unaligned_set" class="anchor"></a><code><span><span class="keyword">val</span> unaligned_set :
|
||
<span><a href="../Clambda_primitives/index.html#type-memory_access_size">Clambda_primitives.memory_access_size</a> <span class="arrow">-></span></span>
|
||
<span><a href="../Cmm/index.html#type-expression">Cmm.expression</a> <span class="arrow">-></span></span>
|
||
<span><a href="../Cmm/index.html#type-expression">Cmm.expression</a> <span class="arrow">-></span></span>
|
||
<span><a href="../Cmm/index.html#type-expression">Cmm.expression</a> <span class="arrow">-></span></span>
|
||
<span><a href="../Debuginfo/index.html#type-t">Debuginfo.t</a> <span class="arrow">-></span></span>
|
||
<a href="../Cmm/index.html#type-expression">Cmm.expression</a></span></code></div><div class="spec-doc"><p><code>unaligned_set size ptr idx newval dbg</code></p></div></div><div class="odoc-spec"><div class="spec value anchored" id="val-unaligned_load"><a href="#val-unaligned_load" class="anchor"></a><code><span><span class="keyword">val</span> unaligned_load :
|
||
<span><a href="../Clambda_primitives/index.html#type-memory_access_size">Clambda_primitives.memory_access_size</a> <span class="arrow">-></span></span>
|
||
<span><a href="../Cmm/index.html#type-expression">Cmm.expression</a> <span class="arrow">-></span></span>
|
||
<span><a href="../Cmm/index.html#type-expression">Cmm.expression</a> <span class="arrow">-></span></span>
|
||
<span><a href="../Debuginfo/index.html#type-t">Debuginfo.t</a> <span class="arrow">-></span></span>
|
||
<a href="../Cmm/index.html#type-expression">Cmm.expression</a></span></code></div><div class="spec-doc"><p><code>unaligned_load size ptr idx dbg</code></p></div></div><div class="odoc-spec"><div class="spec value anchored" id="val-box_sized"><a href="#val-box_sized" class="anchor"></a><code><span><span class="keyword">val</span> box_sized :
|
||
<span><a href="../Clambda_primitives/index.html#type-memory_access_size">Clambda_primitives.memory_access_size</a> <span class="arrow">-></span></span>
|
||
<span><a href="../Debuginfo/index.html#type-t">Debuginfo.t</a> <span class="arrow">-></span></span>
|
||
<span><a href="../Cmm/index.html#type-expression">Cmm.expression</a> <span class="arrow">-></span></span>
|
||
<a href="../Cmm/index.html#type-expression">Cmm.expression</a></span></code></div><div class="spec-doc"><p><code>box_sized size dbg exp</code></p></div></div><p>Primitives</p><div class="odoc-spec"><div class="spec value anchored" id="val-simplif_primitive"><a href="#val-simplif_primitive" class="anchor"></a><code><span><span class="keyword">val</span> simplif_primitive :
|
||
<span><a href="../Clambda_primitives/index.html#type-primitive">Clambda_primitives.primitive</a> <span class="arrow">-></span></span>
|
||
<a href="../Clambda_primitives/index.html#type-primitive">Clambda_primitives.primitive</a></span></code></div></div><div class="odoc-spec"><div class="spec type anchored" id="type-unary_primitive"><a href="#type-unary_primitive" class="anchor"></a><code><span><span class="keyword">type</span> unary_primitive</span><span> = <span><a href="../Cmm/index.html#type-expression">Cmm.expression</a> <span class="arrow">-></span></span> <span><a href="../Debuginfo/index.html#type-t">Debuginfo.t</a> <span class="arrow">-></span></span> <a href="../Cmm/index.html#type-expression">Cmm.expression</a></span></code></div></div><div class="odoc-spec"><div class="spec value anchored" id="val-floatfield"><a href="#val-floatfield" class="anchor"></a><code><span><span class="keyword">val</span> floatfield : <span>int <span class="arrow">-></span></span> <a href="#type-unary_primitive">unary_primitive</a></span></code></div><div class="spec-doc"><p>Return the n-th field of a float array (or float-only record), as an unboxed float</p></div></div><div class="odoc-spec"><div class="spec value anchored" id="val-int_as_pointer"><a href="#val-int_as_pointer" class="anchor"></a><code><span><span class="keyword">val</span> int_as_pointer : <a href="#type-unary_primitive">unary_primitive</a></span></code></div><div class="spec-doc"><p>Int_as_pointer primitive</p></div></div><div class="odoc-spec"><div class="spec value anchored" id="val-raise_prim"><a href="#val-raise_prim" class="anchor"></a><code><span><span class="keyword">val</span> raise_prim : <span><a href="../Lambda/index.html#type-raise_kind">Lambda.raise_kind</a> <span class="arrow">-></span></span> <a href="#type-unary_primitive">unary_primitive</a></span></code></div><div class="spec-doc"><p>Raise primitive</p></div></div><div class="odoc-spec"><div class="spec value anchored" id="val-negint"><a href="#val-negint" class="anchor"></a><code><span><span class="keyword">val</span> negint : <a href="#type-unary_primitive">unary_primitive</a></span></code></div><div class="spec-doc"><p>Unary negation of an OCaml integer</p></div></div><div class="odoc-spec"><div class="spec value anchored" id="val-offsetint"><a href="#val-offsetint" class="anchor"></a><code><span><span class="keyword">val</span> offsetint : <span>int <span class="arrow">-></span></span> <a href="#type-unary_primitive">unary_primitive</a></span></code></div><div class="spec-doc"><p>Add a constant number to an OCaml integer</p></div></div><div class="odoc-spec"><div class="spec value anchored" id="val-offsetref"><a href="#val-offsetref" class="anchor"></a><code><span><span class="keyword">val</span> offsetref : <span>int <span class="arrow">-></span></span> <a href="#type-unary_primitive">unary_primitive</a></span></code></div><div class="spec-doc"><p>Add a constant number to an OCaml integer reference</p></div></div><div class="odoc-spec"><div class="spec value anchored" id="val-arraylength"><a href="#val-arraylength" class="anchor"></a><code><span><span class="keyword">val</span> arraylength : <span><a href="../Lambda/index.html#type-array_kind">Lambda.array_kind</a> <span class="arrow">-></span></span> <a href="#type-unary_primitive">unary_primitive</a></span></code></div><div class="spec-doc"><p>Return the length of the array argument, as an OCaml integer</p></div></div><div class="odoc-spec"><div class="spec value anchored" id="val-bbswap"><a href="#val-bbswap" class="anchor"></a><code><span><span class="keyword">val</span> bbswap : <span><a href="../Primitive/index.html#type-boxed_integer">Primitive.boxed_integer</a> <span class="arrow">-></span></span> <a href="#type-unary_primitive">unary_primitive</a></span></code></div><div class="spec-doc"><p>Byte swap primitive Operates on Cmm integers (unboxed values)</p></div></div><div class="odoc-spec"><div class="spec value anchored" id="val-bswap16"><a href="#val-bswap16" class="anchor"></a><code><span><span class="keyword">val</span> bswap16 : <a href="#type-unary_primitive">unary_primitive</a></span></code></div><div class="spec-doc"><p>16-bit byte swap primitive Operates on Cmm integers (untagged integers)</p></div></div><div class="odoc-spec"><div class="spec type anchored" id="type-binary_primitive"><a href="#type-binary_primitive" class="anchor"></a><code><span><span class="keyword">type</span> binary_primitive</span><span> =
|
||
<span><a href="../Cmm/index.html#type-expression">Cmm.expression</a> <span class="arrow">-></span></span>
|
||
<span><a href="../Cmm/index.html#type-expression">Cmm.expression</a> <span class="arrow">-></span></span>
|
||
<span><a href="../Debuginfo/index.html#type-t">Debuginfo.t</a> <span class="arrow">-></span></span>
|
||
<a href="../Cmm/index.html#type-expression">Cmm.expression</a></span></code></div></div><div class="odoc-spec"><div class="spec type anchored" id="type-assignment_kind"><a href="#type-assignment_kind" class="anchor"></a><code><span><span class="keyword">type</span> assignment_kind</span><span> = </span></code><ol><li id="type-assignment_kind.Caml_modify" class="def variant constructor anchored"><a href="#type-assignment_kind.Caml_modify" class="anchor"></a><code><span>| </span><span><span class="constructor">Caml_modify</span></span></code></li><li id="type-assignment_kind.Caml_initialize" class="def variant constructor anchored"><a href="#type-assignment_kind.Caml_initialize" class="anchor"></a><code><span>| </span><span><span class="constructor">Caml_initialize</span></span></code></li><li id="type-assignment_kind.Simple" class="def variant constructor anchored"><a href="#type-assignment_kind.Simple" class="anchor"></a><code><span>| </span><span><span class="constructor">Simple</span></span></code></li></ol></div></div><div class="odoc-spec"><div class="spec value anchored" id="val-setfield"><a href="#val-setfield" class="anchor"></a><code><span><span class="keyword">val</span> setfield :
|
||
<span>int <span class="arrow">-></span></span>
|
||
<span><a href="../Lambda/index.html#type-immediate_or_pointer">Lambda.immediate_or_pointer</a> <span class="arrow">-></span></span>
|
||
<span><a href="../Lambda/index.html#type-initialization_or_assignment">Lambda.initialization_or_assignment</a> <span class="arrow">-></span></span>
|
||
<a href="#type-binary_primitive">binary_primitive</a></span></code></div><div class="spec-doc"><p><code>setfield offset value_is_ptr init ptr value dbg</code></p></div></div><div class="odoc-spec"><div class="spec value anchored" id="val-setfloatfield"><a href="#val-setfloatfield" class="anchor"></a><code><span><span class="keyword">val</span> setfloatfield :
|
||
<span>int <span class="arrow">-></span></span>
|
||
<span><a href="../Lambda/index.html#type-initialization_or_assignment">Lambda.initialization_or_assignment</a> <span class="arrow">-></span></span>
|
||
<a href="#type-binary_primitive">binary_primitive</a></span></code></div><div class="spec-doc"><p><code>setfloatfield offset init ptr value dbg</code> <code>value</code> is expected to be an unboxed floating point number</p></div></div><div class="odoc-spec"><div class="spec value anchored" id="val-add_int_caml"><a href="#val-add_int_caml" class="anchor"></a><code><span><span class="keyword">val</span> add_int_caml : <a href="#type-binary_primitive">binary_primitive</a></span></code></div><div class="spec-doc"><p>Operations on OCaml integers</p></div></div><div class="odoc-spec"><div class="spec value anchored" id="val-sub_int_caml"><a href="#val-sub_int_caml" class="anchor"></a><code><span><span class="keyword">val</span> sub_int_caml : <a href="#type-binary_primitive">binary_primitive</a></span></code></div></div><div class="odoc-spec"><div class="spec value anchored" id="val-mul_int_caml"><a href="#val-mul_int_caml" class="anchor"></a><code><span><span class="keyword">val</span> mul_int_caml : <a href="#type-binary_primitive">binary_primitive</a></span></code></div></div><div class="odoc-spec"><div class="spec value anchored" id="val-div_int_caml"><a href="#val-div_int_caml" class="anchor"></a><code><span><span class="keyword">val</span> div_int_caml : <span><a href="../Lambda/index.html#type-is_safe">Lambda.is_safe</a> <span class="arrow">-></span></span> <a href="#type-binary_primitive">binary_primitive</a></span></code></div></div><div class="odoc-spec"><div class="spec value anchored" id="val-mod_int_caml"><a href="#val-mod_int_caml" class="anchor"></a><code><span><span class="keyword">val</span> mod_int_caml : <span><a href="../Lambda/index.html#type-is_safe">Lambda.is_safe</a> <span class="arrow">-></span></span> <a href="#type-binary_primitive">binary_primitive</a></span></code></div></div><div class="odoc-spec"><div class="spec value anchored" id="val-and_int_caml"><a href="#val-and_int_caml" class="anchor"></a><code><span><span class="keyword">val</span> and_int_caml : <a href="#type-binary_primitive">binary_primitive</a></span></code></div></div><div class="odoc-spec"><div class="spec value anchored" id="val-or_int_caml"><a href="#val-or_int_caml" class="anchor"></a><code><span><span class="keyword">val</span> or_int_caml : <a href="#type-binary_primitive">binary_primitive</a></span></code></div></div><div class="odoc-spec"><div class="spec value anchored" id="val-xor_int_caml"><a href="#val-xor_int_caml" class="anchor"></a><code><span><span class="keyword">val</span> xor_int_caml : <a href="#type-binary_primitive">binary_primitive</a></span></code></div></div><div class="odoc-spec"><div class="spec value anchored" id="val-lsl_int_caml"><a href="#val-lsl_int_caml" class="anchor"></a><code><span><span class="keyword">val</span> lsl_int_caml : <a href="#type-binary_primitive">binary_primitive</a></span></code></div></div><div class="odoc-spec"><div class="spec value anchored" id="val-lsr_int_caml"><a href="#val-lsr_int_caml" class="anchor"></a><code><span><span class="keyword">val</span> lsr_int_caml : <a href="#type-binary_primitive">binary_primitive</a></span></code></div></div><div class="odoc-spec"><div class="spec value anchored" id="val-asr_int_caml"><a href="#val-asr_int_caml" class="anchor"></a><code><span><span class="keyword">val</span> asr_int_caml : <a href="#type-binary_primitive">binary_primitive</a></span></code></div></div><div class="odoc-spec"><div class="spec value anchored" id="val-int_comp_caml"><a href="#val-int_comp_caml" class="anchor"></a><code><span><span class="keyword">val</span> int_comp_caml : <span><a href="../Lambda/index.html#type-integer_comparison">Lambda.integer_comparison</a> <span class="arrow">-></span></span> <a href="#type-binary_primitive">binary_primitive</a></span></code></div></div><p>Strings, Bytes and Bigstrings</p><div class="odoc-spec"><div class="spec value anchored" id="val-stringref_unsafe"><a href="#val-stringref_unsafe" class="anchor"></a><code><span><span class="keyword">val</span> stringref_unsafe : <a href="#type-binary_primitive">binary_primitive</a></span></code></div><div class="spec-doc"><p>Regular string/bytes access. Args: string/bytes, index</p></div></div><div class="odoc-spec"><div class="spec value anchored" id="val-stringref_safe"><a href="#val-stringref_safe" class="anchor"></a><code><span><span class="keyword">val</span> stringref_safe : <a href="#type-binary_primitive">binary_primitive</a></span></code></div></div><div class="odoc-spec"><div class="spec value anchored" id="val-string_load"><a href="#val-string_load" class="anchor"></a><code><span><span class="keyword">val</span> string_load :
|
||
<span><a href="../Clambda_primitives/index.html#type-memory_access_size">Clambda_primitives.memory_access_size</a> <span class="arrow">-></span></span>
|
||
<span><a href="../Lambda/index.html#type-is_safe">Lambda.is_safe</a> <span class="arrow">-></span></span>
|
||
<a href="#type-binary_primitive">binary_primitive</a></span></code></div><div class="spec-doc"><p>Load by chunk from string/bytes, bigstring. Args: string, index</p></div></div><div class="odoc-spec"><div class="spec value anchored" id="val-bigstring_load"><a href="#val-bigstring_load" class="anchor"></a><code><span><span class="keyword">val</span> bigstring_load :
|
||
<span><a href="../Clambda_primitives/index.html#type-memory_access_size">Clambda_primitives.memory_access_size</a> <span class="arrow">-></span></span>
|
||
<span><a href="../Lambda/index.html#type-is_safe">Lambda.is_safe</a> <span class="arrow">-></span></span>
|
||
<a href="#type-binary_primitive">binary_primitive</a></span></code></div></div><p>Arrays</p><div class="odoc-spec"><div class="spec value anchored" id="val-arrayref_unsafe"><a href="#val-arrayref_unsafe" class="anchor"></a><code><span><span class="keyword">val</span> arrayref_unsafe : <span><a href="../Lambda/index.html#type-array_kind">Lambda.array_kind</a> <span class="arrow">-></span></span> <a href="#type-binary_primitive">binary_primitive</a></span></code></div><div class="spec-doc"><p>Array access. Args: array, index</p></div></div><div class="odoc-spec"><div class="spec value anchored" id="val-arrayref_safe"><a href="#val-arrayref_safe" class="anchor"></a><code><span><span class="keyword">val</span> arrayref_safe : <span><a href="../Lambda/index.html#type-array_kind">Lambda.array_kind</a> <span class="arrow">-></span></span> <a href="#type-binary_primitive">binary_primitive</a></span></code></div></div><div class="odoc-spec"><div class="spec type anchored" id="type-ternary_primitive"><a href="#type-ternary_primitive" class="anchor"></a><code><span><span class="keyword">type</span> ternary_primitive</span><span> =
|
||
<span><a href="../Cmm/index.html#type-expression">Cmm.expression</a> <span class="arrow">-></span></span>
|
||
<span><a href="../Cmm/index.html#type-expression">Cmm.expression</a> <span class="arrow">-></span></span>
|
||
<span><a href="../Cmm/index.html#type-expression">Cmm.expression</a> <span class="arrow">-></span></span>
|
||
<span><a href="../Debuginfo/index.html#type-t">Debuginfo.t</a> <span class="arrow">-></span></span>
|
||
<a href="../Cmm/index.html#type-expression">Cmm.expression</a></span></code></div></div><div class="odoc-spec"><div class="spec value anchored" id="val-setfield_computed"><a href="#val-setfield_computed" class="anchor"></a><code><span><span class="keyword">val</span> setfield_computed :
|
||
<span><a href="../Lambda/index.html#type-immediate_or_pointer">Lambda.immediate_or_pointer</a> <span class="arrow">-></span></span>
|
||
<span><a href="../Lambda/index.html#type-initialization_or_assignment">Lambda.initialization_or_assignment</a> <span class="arrow">-></span></span>
|
||
<a href="#type-ternary_primitive">ternary_primitive</a></span></code></div><div class="spec-doc"><p>Same as setfield, except the offset is one of the arguments. Args: pointer (structure/array/...), index, value</p></div></div><div class="odoc-spec"><div class="spec value anchored" id="val-bytesset_unsafe"><a href="#val-bytesset_unsafe" class="anchor"></a><code><span><span class="keyword">val</span> bytesset_unsafe : <a href="#type-ternary_primitive">ternary_primitive</a></span></code></div><div class="spec-doc"><p>Set the byte at the given offset to the given value. Args: bytes, index, value</p></div></div><div class="odoc-spec"><div class="spec value anchored" id="val-bytesset_safe"><a href="#val-bytesset_safe" class="anchor"></a><code><span><span class="keyword">val</span> bytesset_safe : <a href="#type-ternary_primitive">ternary_primitive</a></span></code></div></div><div class="odoc-spec"><div class="spec value anchored" id="val-arrayset_unsafe"><a href="#val-arrayset_unsafe" class="anchor"></a><code><span><span class="keyword">val</span> arrayset_unsafe : <span><a href="../Lambda/index.html#type-array_kind">Lambda.array_kind</a> <span class="arrow">-></span></span> <a href="#type-ternary_primitive">ternary_primitive</a></span></code></div><div class="spec-doc"><p>Set the element at the given index in the given array to the given value. WARNING: if <code>kind</code> is <code>Pfloatarray</code>, then <code>value</code> is expected to be an _unboxed_ float. Otherwise, it is expected to be a regular caml value, including in the case where the array contains floats. Args: array, index, value</p></div></div><div class="odoc-spec"><div class="spec value anchored" id="val-arrayset_safe"><a href="#val-arrayset_safe" class="anchor"></a><code><span><span class="keyword">val</span> arrayset_safe : <span><a href="../Lambda/index.html#type-array_kind">Lambda.array_kind</a> <span class="arrow">-></span></span> <a href="#type-ternary_primitive">ternary_primitive</a></span></code></div></div><div class="odoc-spec"><div class="spec value anchored" id="val-bytes_set"><a href="#val-bytes_set" class="anchor"></a><code><span><span class="keyword">val</span> bytes_set :
|
||
<span><a href="../Clambda_primitives/index.html#type-memory_access_size">Clambda_primitives.memory_access_size</a> <span class="arrow">-></span></span>
|
||
<span><a href="../Lambda/index.html#type-is_safe">Lambda.is_safe</a> <span class="arrow">-></span></span>
|
||
<a href="#type-ternary_primitive">ternary_primitive</a></span></code></div><div class="spec-doc"><p>Set a chunk of data in the given bytes or bigstring structure. See also <code>string_load</code> and <code>bigstring_load</code>. Note: <code>value</code> is expected to be an unboxed number of the given size. Args: pointer, index, value</p></div></div><div class="odoc-spec"><div class="spec value anchored" id="val-bigstring_set"><a href="#val-bigstring_set" class="anchor"></a><code><span><span class="keyword">val</span> bigstring_set :
|
||
<span><a href="../Clambda_primitives/index.html#type-memory_access_size">Clambda_primitives.memory_access_size</a> <span class="arrow">-></span></span>
|
||
<span><a href="../Lambda/index.html#type-is_safe">Lambda.is_safe</a> <span class="arrow">-></span></span>
|
||
<a href="#type-ternary_primitive">ternary_primitive</a></span></code></div></div><p>Switch</p><div class="odoc-spec"><div class="spec value anchored" id="val-transl_isout"><a href="#val-transl_isout" class="anchor"></a><code><span><span class="keyword">val</span> transl_isout :
|
||
<span><a href="../Cmm/index.html#type-expression">Cmm.expression</a> <span class="arrow">-></span></span>
|
||
<span><a href="../Cmm/index.html#type-expression">Cmm.expression</a> <span class="arrow">-></span></span>
|
||
<span><a href="../Debuginfo/index.html#type-t">Debuginfo.t</a> <span class="arrow">-></span></span>
|
||
<a href="../Cmm/index.html#type-expression">Cmm.expression</a></span></code></div><div class="spec-doc"><p><code>transl_isout h arg dbg</code></p></div></div><div class="odoc-spec"><div class="spec value anchored" id="val-make_switch"><a href="#val-make_switch" class="anchor"></a><code><span><span class="keyword">val</span> make_switch :
|
||
<span><a href="../Cmm/index.html#type-expression">Cmm.expression</a> <span class="arrow">-></span></span>
|
||
<span><span>int array</span> <span class="arrow">-></span></span>
|
||
<span><span><span>(<a href="../Cmm/index.html#type-expression">Cmm.expression</a> * <a href="../Debuginfo/index.html#type-t">Debuginfo.t</a>)</span> array</span> <span class="arrow">-></span></span>
|
||
<span><a href="../Debuginfo/index.html#type-t">Debuginfo.t</a> <span class="arrow">-></span></span>
|
||
<a href="../Cmm/index.html#type-expression">Cmm.expression</a></span></code></div><div class="spec-doc"><p><code>make_switch arg cases actions dbg</code> : Generate a Cswitch construct, or optimize as a static table lookup when possible.</p></div></div><div class="odoc-spec"><div class="spec value anchored" id="val-transl_int_switch"><a href="#val-transl_int_switch" class="anchor"></a><code><span><span class="keyword">val</span> transl_int_switch :
|
||
<span><a href="../Debuginfo/index.html#type-t">Debuginfo.t</a> <span class="arrow">-></span></span>
|
||
<span><a href="../Cmm/index.html#type-expression">Cmm.expression</a> <span class="arrow">-></span></span>
|
||
<span>int <span class="arrow">-></span></span>
|
||
<span>int <span class="arrow">-></span></span>
|
||
<span><span><span>(int * <a href="../Cmm/index.html#type-expression">Cmm.expression</a>)</span> list</span> <span class="arrow">-></span></span>
|
||
<span><a href="../Cmm/index.html#type-expression">Cmm.expression</a> <span class="arrow">-></span></span>
|
||
<a href="../Cmm/index.html#type-expression">Cmm.expression</a></span></code></div><div class="spec-doc"><p><code>transl_int_switch loc arg low high cases default</code></p></div></div><div class="odoc-spec"><div class="spec value anchored" id="val-transl_switch_clambda"><a href="#val-transl_switch_clambda" class="anchor"></a><code><span><span class="keyword">val</span> transl_switch_clambda :
|
||
<span><a href="../Debuginfo/index.html#type-t">Debuginfo.t</a> <span class="arrow">-></span></span>
|
||
<span><a href="../Cmm/index.html#type-expression">Cmm.expression</a> <span class="arrow">-></span></span>
|
||
<span><span>int array</span> <span class="arrow">-></span></span>
|
||
<span><span><a href="../Cmm/index.html#type-expression">Cmm.expression</a> array</span> <span class="arrow">-></span></span>
|
||
<a href="../Cmm/index.html#type-expression">Cmm.expression</a></span></code></div><div class="spec-doc"><p><code>transl_switch_clambda loc arg index cases</code></p></div></div><div class="odoc-spec"><div class="spec value anchored" id="val-strmatch_compile"><a href="#val-strmatch_compile" class="anchor"></a><code><span><span class="keyword">val</span> strmatch_compile :
|
||
<span><a href="../Debuginfo/index.html#type-t">Debuginfo.t</a> <span class="arrow">-></span></span>
|
||
<span><a href="../Cmm/index.html#type-expression">Cmm.expression</a> <span class="arrow">-></span></span>
|
||
<span><span><a href="../Cmm/index.html#type-expression">Cmm.expression</a> option</span> <span class="arrow">-></span></span>
|
||
<span><span><span>(string * <a href="../Cmm/index.html#type-expression">Cmm.expression</a>)</span> list</span> <span class="arrow">-></span></span>
|
||
<a href="../Cmm/index.html#type-expression">Cmm.expression</a></span></code></div><div class="spec-doc"><p><code>strmatch_compile dbg arg default cases</code></p></div></div><p>Closures and function applications</p><div class="odoc-spec"><div class="spec value anchored" id="val-ptr_offset"><a href="#val-ptr_offset" class="anchor"></a><code><span><span class="keyword">val</span> ptr_offset : <span><a href="../Cmm/index.html#type-expression">Cmm.expression</a> <span class="arrow">-></span></span> <span>int <span class="arrow">-></span></span> <span><a href="../Debuginfo/index.html#type-t">Debuginfo.t</a> <span class="arrow">-></span></span> <a href="../Cmm/index.html#type-expression">Cmm.expression</a></span></code></div><div class="spec-doc"><p>Adds a constant offset to a pointer (for infix access)</p></div></div><div class="odoc-spec"><div class="spec value anchored" id="val-direct_apply"><a href="#val-direct_apply" class="anchor"></a><code><span><span class="keyword">val</span> direct_apply :
|
||
<span>string <span class="arrow">-></span></span>
|
||
<span><span><a href="../Cmm/index.html#type-expression">Cmm.expression</a> list</span> <span class="arrow">-></span></span>
|
||
<span><a href="../Debuginfo/index.html#type-t">Debuginfo.t</a> <span class="arrow">-></span></span>
|
||
<a href="../Cmm/index.html#type-expression">Cmm.expression</a></span></code></div><div class="spec-doc"><p>Direct application of a function via a symbol</p></div></div><div class="odoc-spec"><div class="spec value anchored" id="val-generic_apply"><a href="#val-generic_apply" class="anchor"></a><code><span><span class="keyword">val</span> generic_apply :
|
||
<span><a href="../Asttypes/index.html#type-mutable_flag">Asttypes.mutable_flag</a> <span class="arrow">-></span></span>
|
||
<span><a href="../Cmm/index.html#type-expression">Cmm.expression</a> <span class="arrow">-></span></span>
|
||
<span><span><a href="../Cmm/index.html#type-expression">Cmm.expression</a> list</span> <span class="arrow">-></span></span>
|
||
<span><a href="../Debuginfo/index.html#type-t">Debuginfo.t</a> <span class="arrow">-></span></span>
|
||
<a href="../Cmm/index.html#type-expression">Cmm.expression</a></span></code></div><div class="spec-doc"><p>Generic application of a function to one or several arguments. The mutable_flag argument annotates the loading of the code pointer from the closure. The Cmmgen code uses a mutable load by default, with a special case when the load is from (the first function of) the currently defined closure.</p></div></div><div class="odoc-spec"><div class="spec value anchored" id="val-send"><a href="#val-send" class="anchor"></a><code><span><span class="keyword">val</span> send :
|
||
<span><a href="../Lambda/index.html#type-meth_kind">Lambda.meth_kind</a> <span class="arrow">-></span></span>
|
||
<span><a href="../Cmm/index.html#type-expression">Cmm.expression</a> <span class="arrow">-></span></span>
|
||
<span><a href="../Cmm/index.html#type-expression">Cmm.expression</a> <span class="arrow">-></span></span>
|
||
<span><span><a href="../Cmm/index.html#type-expression">Cmm.expression</a> list</span> <span class="arrow">-></span></span>
|
||
<span><a href="../Debuginfo/index.html#type-t">Debuginfo.t</a> <span class="arrow">-></span></span>
|
||
<a href="../Cmm/index.html#type-expression">Cmm.expression</a></span></code></div><div class="spec-doc"><p>Method call : <code>send kind met obj args dbg</code></p><ul><li><code>met</code> is a method identifier, which can be a hashed variant or an index in <code>obj</code>'s method table, depending on <code>kind</code></li><li><code>obj</code> is the object whose method is being called</li><li><code>args</code> is the extra arguments to the method call (Note: I'm not aware of any way for the frontend to generate any arguments other than the cache and cache position)</li></ul></div></div><p>Generic Cmm fragments</p><div class="odoc-spec"><div class="spec value anchored" id="val-generic_functions"><a href="#val-generic_functions" class="anchor"></a><code><span><span class="keyword">val</span> generic_functions : <span>bool <span class="arrow">-></span></span> <span><span><a href="../Cmx_format/index.html#type-unit_infos">Cmx_format.unit_infos</a> list</span> <span class="arrow">-></span></span> <span><a href="../Cmm/index.html#type-phrase">Cmm.phrase</a> list</span></span></code></div><div class="spec-doc"><p>Generate generic functions</p></div></div><div class="odoc-spec"><div class="spec value anchored" id="val-placeholder_dbg"><a href="#val-placeholder_dbg" class="anchor"></a><code><span><span class="keyword">val</span> placeholder_dbg : <span>unit <span class="arrow">-></span></span> <a href="../Debuginfo/index.html#type-t">Debuginfo.t</a></span></code></div></div><div class="odoc-spec"><div class="spec value anchored" id="val-placeholder_fun_dbg"><a href="#val-placeholder_fun_dbg" class="anchor"></a><code><span><span class="keyword">val</span> placeholder_fun_dbg : <span>human_name:string <span class="arrow">-></span></span> <a href="../Debuginfo/index.html#type-t">Debuginfo.t</a></span></code></div></div><div class="odoc-spec"><div class="spec value anchored" id="val-entry_point"><a href="#val-entry_point" class="anchor"></a><code><span><span class="keyword">val</span> entry_point : <span><span>string list</span> <span class="arrow">-></span></span> <a href="../Cmm/index.html#type-phrase">Cmm.phrase</a></span></code></div><div class="spec-doc"><p>Entry point</p></div></div><div class="odoc-spec"><div class="spec value anchored" id="val-global_table"><a href="#val-global_table" class="anchor"></a><code><span><span class="keyword">val</span> global_table : <span><span>string list</span> <span class="arrow">-></span></span> <a href="../Cmm/index.html#type-phrase">Cmm.phrase</a></span></code></div><div class="spec-doc"><p>Generate the caml_globals table</p></div></div><div class="odoc-spec"><div class="spec value anchored" id="val-reference_symbols"><a href="#val-reference_symbols" class="anchor"></a><code><span><span class="keyword">val</span> reference_symbols : <span><span>string list</span> <span class="arrow">-></span></span> <a href="../Cmm/index.html#type-phrase">Cmm.phrase</a></span></code></div><div class="spec-doc"><p>Add references to the given symbols</p></div></div><div class="odoc-spec"><div class="spec value anchored" id="val-globals_map"><a href="#val-globals_map" class="anchor"></a><code><span><span class="keyword">val</span> globals_map :
|
||
<span><span><span>(string * <span><a href="../Stdlib/Digest/index.html#type-t">Stdlib.Digest.t</a> option</span> * <span><a href="../Stdlib/Digest/index.html#type-t">Stdlib.Digest.t</a> option</span> * <span>string list</span>)</span> list</span> <span class="arrow">-></span></span>
|
||
<a href="../Cmm/index.html#type-phrase">Cmm.phrase</a></span></code></div><div class="spec-doc"><p>Generate the caml_globals_map structure, as a marshalled string constant</p></div></div><div class="odoc-spec"><div class="spec value anchored" id="val-frame_table"><a href="#val-frame_table" class="anchor"></a><code><span><span class="keyword">val</span> frame_table : <span><span>string list</span> <span class="arrow">-></span></span> <a href="../Cmm/index.html#type-phrase">Cmm.phrase</a></span></code></div><div class="spec-doc"><p>Generate the caml_frametable table, referencing the frametables from the given compilation units</p></div></div><div class="odoc-spec"><div class="spec value anchored" id="val-data_segment_table"><a href="#val-data_segment_table" class="anchor"></a><code><span><span class="keyword">val</span> data_segment_table : <span><span>string list</span> <span class="arrow">-></span></span> <a href="../Cmm/index.html#type-phrase">Cmm.phrase</a></span></code></div><div class="spec-doc"><p>Generate the tables for data and code positions respectively of the given compilation units</p></div></div><div class="odoc-spec"><div class="spec value anchored" id="val-code_segment_table"><a href="#val-code_segment_table" class="anchor"></a><code><span><span class="keyword">val</span> code_segment_table : <span><span>string list</span> <span class="arrow">-></span></span> <a href="../Cmm/index.html#type-phrase">Cmm.phrase</a></span></code></div></div><div class="odoc-spec"><div class="spec value anchored" id="val-predef_exception"><a href="#val-predef_exception" class="anchor"></a><code><span><span class="keyword">val</span> predef_exception : <span>int <span class="arrow">-></span></span> <span>string <span class="arrow">-></span></span> <a href="../Cmm/index.html#type-phrase">Cmm.phrase</a></span></code></div><div class="spec-doc"><p>Generate data for a predefined exception</p></div></div><div class="odoc-spec"><div class="spec value anchored" id="val-plugin_header"><a href="#val-plugin_header" class="anchor"></a><code><span><span class="keyword">val</span> plugin_header :
|
||
<span><span><span>(<a href="../Cmx_format/index.html#type-unit_infos">Cmx_format.unit_infos</a> * <a href="../Stdlib/Digest/index.html#type-t">Stdlib.Digest.t</a>)</span> list</span> <span class="arrow">-></span></span>
|
||
<a href="../Cmm/index.html#type-phrase">Cmm.phrase</a></span></code></div></div><p>Emit constant symbols</p><div class="odoc-spec"><div class="spec value anchored" id="val-cdefine_symbol"><a href="#val-cdefine_symbol" class="anchor"></a><code><span><span class="keyword">val</span> cdefine_symbol : <span><span>(string * <a href="../Cmmgen_state/index.html#type-is_global">Cmmgen_state.is_global</a>)</span> <span class="arrow">-></span></span> <span><a href="../Cmm/index.html#type-data_item">Cmm.data_item</a> list</span></span></code></div><div class="spec-doc"><p>Produce the data_item list corresponding to a symbol definition</p></div></div><div class="odoc-spec"><div class="spec value anchored" id="val-emit_block"><a href="#val-emit_block" class="anchor"></a><code><span><span class="keyword">val</span> emit_block :
|
||
<span><span>(string * <a href="../Cmmgen_state/index.html#type-is_global">Cmmgen_state.is_global</a>)</span> <span class="arrow">-></span></span>
|
||
<span>nativeint <span class="arrow">-></span></span>
|
||
<span><span><a href="../Cmm/index.html#type-data_item">Cmm.data_item</a> list</span> <span class="arrow">-></span></span>
|
||
<span><a href="../Cmm/index.html#type-data_item">Cmm.data_item</a> list</span></span></code></div><div class="spec-doc"><p><code>emit_block symb white_header cont</code> prepends to <code>cont</code> the header and symbol for the block. <code>cont</code> must already contain the fields of the block (and may contain additional data items afterwards).</p></div></div><div class="odoc-spec"><div class="spec value anchored" id="val-emit_float_constant"><a href="#val-emit_float_constant" class="anchor"></a><code><span><span class="keyword">val</span> emit_float_constant :
|
||
<span><span>(string * <a href="../Cmmgen_state/index.html#type-is_global">Cmmgen_state.is_global</a>)</span> <span class="arrow">-></span></span>
|
||
<span>float <span class="arrow">-></span></span>
|
||
<span><span><a href="../Cmm/index.html#type-data_item">Cmm.data_item</a> list</span> <span class="arrow">-></span></span>
|
||
<span><a href="../Cmm/index.html#type-data_item">Cmm.data_item</a> list</span></span></code></div><div class="spec-doc"><p>Emit specific kinds of constant blocks as data items</p></div></div><div class="odoc-spec"><div class="spec value anchored" id="val-emit_string_constant"><a href="#val-emit_string_constant" class="anchor"></a><code><span><span class="keyword">val</span> emit_string_constant :
|
||
<span><span>(string * <a href="../Cmmgen_state/index.html#type-is_global">Cmmgen_state.is_global</a>)</span> <span class="arrow">-></span></span>
|
||
<span>string <span class="arrow">-></span></span>
|
||
<span><span><a href="../Cmm/index.html#type-data_item">Cmm.data_item</a> list</span> <span class="arrow">-></span></span>
|
||
<span><a href="../Cmm/index.html#type-data_item">Cmm.data_item</a> list</span></span></code></div></div><div class="odoc-spec"><div class="spec value anchored" id="val-emit_int32_constant"><a href="#val-emit_int32_constant" class="anchor"></a><code><span><span class="keyword">val</span> emit_int32_constant :
|
||
<span><span>(string * <a href="../Cmmgen_state/index.html#type-is_global">Cmmgen_state.is_global</a>)</span> <span class="arrow">-></span></span>
|
||
<span>int32 <span class="arrow">-></span></span>
|
||
<span><span><a href="../Cmm/index.html#type-data_item">Cmm.data_item</a> list</span> <span class="arrow">-></span></span>
|
||
<span><a href="../Cmm/index.html#type-data_item">Cmm.data_item</a> list</span></span></code></div></div><div class="odoc-spec"><div class="spec value anchored" id="val-emit_int64_constant"><a href="#val-emit_int64_constant" class="anchor"></a><code><span><span class="keyword">val</span> emit_int64_constant :
|
||
<span><span>(string * <a href="../Cmmgen_state/index.html#type-is_global">Cmmgen_state.is_global</a>)</span> <span class="arrow">-></span></span>
|
||
<span>int64 <span class="arrow">-></span></span>
|
||
<span><span><a href="../Cmm/index.html#type-data_item">Cmm.data_item</a> list</span> <span class="arrow">-></span></span>
|
||
<span><a href="../Cmm/index.html#type-data_item">Cmm.data_item</a> list</span></span></code></div></div><div class="odoc-spec"><div class="spec value anchored" id="val-emit_nativeint_constant"><a href="#val-emit_nativeint_constant" class="anchor"></a><code><span><span class="keyword">val</span> emit_nativeint_constant :
|
||
<span><span>(string * <a href="../Cmmgen_state/index.html#type-is_global">Cmmgen_state.is_global</a>)</span> <span class="arrow">-></span></span>
|
||
<span>nativeint <span class="arrow">-></span></span>
|
||
<span><span><a href="../Cmm/index.html#type-data_item">Cmm.data_item</a> list</span> <span class="arrow">-></span></span>
|
||
<span><a href="../Cmm/index.html#type-data_item">Cmm.data_item</a> list</span></span></code></div></div><div class="odoc-spec"><div class="spec value anchored" id="val-emit_float_array_constant"><a href="#val-emit_float_array_constant" class="anchor"></a><code><span><span class="keyword">val</span> emit_float_array_constant :
|
||
<span><span>(string * <a href="../Cmmgen_state/index.html#type-is_global">Cmmgen_state.is_global</a>)</span> <span class="arrow">-></span></span>
|
||
<span><span>float list</span> <span class="arrow">-></span></span>
|
||
<span><span><a href="../Cmm/index.html#type-data_item">Cmm.data_item</a> list</span> <span class="arrow">-></span></span>
|
||
<span><a href="../Cmm/index.html#type-data_item">Cmm.data_item</a> list</span></span></code></div></div><div class="odoc-spec"><div class="spec value anchored" id="val-fundecls_size"><a href="#val-fundecls_size" class="anchor"></a><code><span><span class="keyword">val</span> fundecls_size : <span><span><a href="../Clambda/index.html#type-ufunction">Clambda.ufunction</a> list</span> <span class="arrow">-></span></span> int</span></code></div></div><div class="odoc-spec"><div class="spec value anchored" id="val-emit_constant_closure"><a href="#val-emit_constant_closure" class="anchor"></a><code><span><span class="keyword">val</span> emit_constant_closure :
|
||
<span><span>(string * <a href="../Cmmgen_state/index.html#type-is_global">Cmmgen_state.is_global</a>)</span> <span class="arrow">-></span></span>
|
||
<span><span><a href="../Clambda/index.html#type-ufunction">Clambda.ufunction</a> list</span> <span class="arrow">-></span></span>
|
||
<span><span><a href="../Cmm/index.html#type-data_item">Cmm.data_item</a> list</span> <span class="arrow">-></span></span>
|
||
<span><span><a href="../Cmm/index.html#type-data_item">Cmm.data_item</a> list</span> <span class="arrow">-></span></span>
|
||
<span><a href="../Cmm/index.html#type-data_item">Cmm.data_item</a> list</span></span></code></div></div><div class="odoc-spec"><div class="spec value anchored" id="val-emit_preallocated_blocks"><a href="#val-emit_preallocated_blocks" class="anchor"></a><code><span><span class="keyword">val</span> emit_preallocated_blocks :
|
||
<span><span><a href="../Clambda/index.html#type-preallocated_block">Clambda.preallocated_block</a> list</span> <span class="arrow">-></span></span>
|
||
<span><span><a href="../Cmm/index.html#type-phrase">Cmm.phrase</a> list</span> <span class="arrow">-></span></span>
|
||
<span><a href="../Cmm/index.html#type-phrase">Cmm.phrase</a> list</span></span></code></div></div></div></body></html> |