mirror of
https://github.com/c-cube/moonpool.git
synced 2025-12-16 15:56:21 -05:00
7 lines
No EOL
12 KiB
HTML
7 lines
No EOL
12 KiB
HTML
<!DOCTYPE html>
|
||
<html xmlns="http://www.w3.org/1999/xhtml"><head><title>X86_proc (ocaml.X86_proc)</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> » X86_proc</nav><header class="odoc-preamble"><h1>Module <code><span>X86_proc</span></code></h1><p>Definitions shared between the 32 and 64 bit Intel backends.</p></header><div class="odoc-content"><p>Helpers for textual emitters</p><div class="odoc-spec"><div class="spec value anchored" id="val-string_of_reg8l"><a href="#val-string_of_reg8l" class="anchor"></a><code><span><span class="keyword">val</span> string_of_reg8l : <span><a href="../X86_ast/index.html#type-reg64">X86_ast.reg64</a> <span class="arrow">-></span></span> string</span></code></div></div><div class="odoc-spec"><div class="spec value anchored" id="val-string_of_reg8h"><a href="#val-string_of_reg8h" class="anchor"></a><code><span><span class="keyword">val</span> string_of_reg8h : <span><a href="../X86_ast/index.html#type-reg8h">X86_ast.reg8h</a> <span class="arrow">-></span></span> string</span></code></div></div><div class="odoc-spec"><div class="spec value anchored" id="val-string_of_reg16"><a href="#val-string_of_reg16" class="anchor"></a><code><span><span class="keyword">val</span> string_of_reg16 : <span><a href="../X86_ast/index.html#type-reg64">X86_ast.reg64</a> <span class="arrow">-></span></span> string</span></code></div></div><div class="odoc-spec"><div class="spec value anchored" id="val-string_of_reg32"><a href="#val-string_of_reg32" class="anchor"></a><code><span><span class="keyword">val</span> string_of_reg32 : <span><a href="../X86_ast/index.html#type-reg64">X86_ast.reg64</a> <span class="arrow">-></span></span> string</span></code></div></div><div class="odoc-spec"><div class="spec value anchored" id="val-string_of_reg64"><a href="#val-string_of_reg64" class="anchor"></a><code><span><span class="keyword">val</span> string_of_reg64 : <span><a href="../X86_ast/index.html#type-reg64">X86_ast.reg64</a> <span class="arrow">-></span></span> string</span></code></div></div><div class="odoc-spec"><div class="spec value anchored" id="val-string_of_registerf"><a href="#val-string_of_registerf" class="anchor"></a><code><span><span class="keyword">val</span> string_of_registerf : <span><a href="../X86_ast/index.html#type-registerf">X86_ast.registerf</a> <span class="arrow">-></span></span> string</span></code></div></div><div class="odoc-spec"><div class="spec value anchored" id="val-string_of_string_literal"><a href="#val-string_of_string_literal" class="anchor"></a><code><span><span class="keyword">val</span> string_of_string_literal : <span>string <span class="arrow">-></span></span> string</span></code></div></div><div class="odoc-spec"><div class="spec value anchored" id="val-string_of_condition"><a href="#val-string_of_condition" class="anchor"></a><code><span><span class="keyword">val</span> string_of_condition : <span><a href="../X86_ast/index.html#type-condition">X86_ast.condition</a> <span class="arrow">-></span></span> string</span></code></div></div><div class="odoc-spec"><div class="spec value anchored" id="val-string_of_symbol"><a href="#val-string_of_symbol" class="anchor"></a><code><span><span class="keyword">val</span> string_of_symbol : <span>string <span class="arrow">-></span></span> <span>string <span class="arrow">-></span></span> string</span></code></div></div><div class="odoc-spec"><div class="spec value anchored" id="val-string_of_rounding"><a href="#val-string_of_rounding" class="anchor"></a><code><span><span class="keyword">val</span> string_of_rounding : <span><a href="../X86_ast/index.html#type-rounding">X86_ast.rounding</a> <span class="arrow">-></span></span> string</span></code></div></div><div class="odoc-spec"><div class="spec value anchored" id="val-buf_bytes_directive"><a href="#val-buf_bytes_directive" class="anchor"></a><code><span><span class="keyword">val</span> buf_bytes_directive : <span><a href="../Stdlib/Buffer/index.html#type-t">Stdlib.Buffer.t</a> <span class="arrow">-></span></span> <span>string <span class="arrow">-></span></span> <span>string <span class="arrow">-></span></span> unit</span></code></div></div><p>Buffer of assembly code</p><div class="odoc-spec"><div class="spec value anchored" id="val-emit"><a href="#val-emit" class="anchor"></a><code><span><span class="keyword">val</span> emit : <span><a href="../X86_ast/index.html#type-instruction">X86_ast.instruction</a> <span class="arrow">-></span></span> unit</span></code></div></div><div class="odoc-spec"><div class="spec value anchored" id="val-directive"><a href="#val-directive" class="anchor"></a><code><span><span class="keyword">val</span> directive : <span><a href="../X86_ast/index.html#type-asm_line">X86_ast.asm_line</a> <span class="arrow">-></span></span> unit</span></code></div></div><div class="odoc-spec"><div class="spec value anchored" id="val-reset_asm_code"><a href="#val-reset_asm_code" class="anchor"></a><code><span><span class="keyword">val</span> reset_asm_code : <span>unit <span class="arrow">-></span></span> unit</span></code></div></div><p>Code emission</p><div class="odoc-spec"><div class="spec value anchored" id="val-generate_code"><a href="#val-generate_code" class="anchor"></a><code><span><span class="keyword">val</span> generate_code : <span><span><span>(<span><span><a href="../X86_ast/index.html#type-asm_line">X86_ast.asm_line</a> list</span> <span class="arrow">-></span></span> unit)</span> option</span> <span class="arrow">-></span></span> unit</span></code></div><div class="spec-doc"><p>Post-process the stream of instructions. Dump it (using the provided syntax emitter) in a file (if provided) and compile it with an internal assembler (if registered through <code>register_internal_assembler</code>).</p></div></div><div class="odoc-spec"><div class="spec value anchored" id="val-assemble_file"><a href="#val-assemble_file" class="anchor"></a><code><span><span class="keyword">val</span> assemble_file : <span>string <span class="arrow">-></span></span> <span>string <span class="arrow">-></span></span> int</span></code></div><div class="spec-doc"><p>Generate an object file corresponding to the last call to <code>generate_code</code>. An internal assembler is used if available (and the input file is ignored). Otherwise, the source asm file with an external assembler.</p></div></div><p>System detection</p><div class="odoc-spec"><div class="spec type anchored" id="type-system"><a href="#type-system" class="anchor"></a><code><span><span class="keyword">type</span> system</span><span> = </span></code><ol><li id="type-system.S_macosx" class="def variant constructor anchored"><a href="#type-system.S_macosx" class="anchor"></a><code><span>| </span><span><span class="constructor">S_macosx</span></span></code></li><li id="type-system.S_gnu" class="def variant constructor anchored"><a href="#type-system.S_gnu" class="anchor"></a><code><span>| </span><span><span class="constructor">S_gnu</span></span></code></li><li id="type-system.S_cygwin" class="def variant constructor anchored"><a href="#type-system.S_cygwin" class="anchor"></a><code><span>| </span><span><span class="constructor">S_cygwin</span></span></code></li><li id="type-system.S_solaris" class="def variant constructor anchored"><a href="#type-system.S_solaris" class="anchor"></a><code><span>| </span><span><span class="constructor">S_solaris</span></span></code></li><li id="type-system.S_win32" class="def variant constructor anchored"><a href="#type-system.S_win32" class="anchor"></a><code><span>| </span><span><span class="constructor">S_win32</span></span></code></li><li id="type-system.S_linux_elf" class="def variant constructor anchored"><a href="#type-system.S_linux_elf" class="anchor"></a><code><span>| </span><span><span class="constructor">S_linux_elf</span></span></code></li><li id="type-system.S_bsd_elf" class="def variant constructor anchored"><a href="#type-system.S_bsd_elf" class="anchor"></a><code><span>| </span><span><span class="constructor">S_bsd_elf</span></span></code></li><li id="type-system.S_beos" class="def variant constructor anchored"><a href="#type-system.S_beos" class="anchor"></a><code><span>| </span><span><span class="constructor">S_beos</span></span></code></li><li id="type-system.S_mingw" class="def variant constructor anchored"><a href="#type-system.S_mingw" class="anchor"></a><code><span>| </span><span><span class="constructor">S_mingw</span></span></code></li><li id="type-system.S_win64" class="def variant constructor anchored"><a href="#type-system.S_win64" class="anchor"></a><code><span>| </span><span><span class="constructor">S_win64</span></span></code></li><li id="type-system.S_linux" class="def variant constructor anchored"><a href="#type-system.S_linux" class="anchor"></a><code><span>| </span><span><span class="constructor">S_linux</span></span></code></li><li id="type-system.S_mingw64" class="def variant constructor anchored"><a href="#type-system.S_mingw64" class="anchor"></a><code><span>| </span><span><span class="constructor">S_mingw64</span></span></code></li><li id="type-system.S_freebsd" class="def variant constructor anchored"><a href="#type-system.S_freebsd" class="anchor"></a><code><span>| </span><span><span class="constructor">S_freebsd</span></span></code></li><li id="type-system.S_netbsd" class="def variant constructor anchored"><a href="#type-system.S_netbsd" class="anchor"></a><code><span>| </span><span><span class="constructor">S_netbsd</span></span></code></li><li id="type-system.S_openbsd" class="def variant constructor anchored"><a href="#type-system.S_openbsd" class="anchor"></a><code><span>| </span><span><span class="constructor">S_openbsd</span></span></code></li><li id="type-system.S_unknown" class="def variant constructor anchored"><a href="#type-system.S_unknown" class="anchor"></a><code><span>| </span><span><span class="constructor">S_unknown</span></span></code></li></ol></div></div><div class="odoc-spec"><div class="spec value anchored" id="val-system"><a href="#val-system" class="anchor"></a><code><span><span class="keyword">val</span> system : <a href="#type-system">system</a></span></code></div></div><div class="odoc-spec"><div class="spec value anchored" id="val-masm"><a href="#val-masm" class="anchor"></a><code><span><span class="keyword">val</span> masm : bool</span></code></div></div><div class="odoc-spec"><div class="spec value anchored" id="val-windows"><a href="#val-windows" class="anchor"></a><code><span><span class="keyword">val</span> windows : bool</span></code></div></div><div class="odoc-spec"><div class="spec value anchored" id="val-use_plt"><a href="#val-use_plt" class="anchor"></a><code><span><span class="keyword">val</span> use_plt : bool</span></code></div><div class="spec-doc"><p>Whether calls need to go via the PLT.</p></div></div><p>Support for plumbing a binary code emitter</p><div class="odoc-spec"><div class="spec value anchored" id="val-register_internal_assembler"><a href="#val-register_internal_assembler" class="anchor"></a><code><span><span class="keyword">val</span> register_internal_assembler :
|
||
<span><span>(<span><a href="../X86_ast/index.html#type-asm_program">X86_ast.asm_program</a> <span class="arrow">-></span></span> <span>string <span class="arrow">-></span></span> unit)</span> <span class="arrow">-></span></span>
|
||
unit</span></code></div></div><div class="odoc-spec"><div class="spec value anchored" id="val-with_internal_assembler"><a href="#val-with_internal_assembler" class="anchor"></a><code><span><span class="keyword">val</span> with_internal_assembler :
|
||
<span><span>(<span><a href="../X86_ast/index.html#type-asm_program">X86_ast.asm_program</a> <span class="arrow">-></span></span> <span>string <span class="arrow">-></span></span> unit)</span> <span class="arrow">-></span></span>
|
||
<span><span>(<span>unit <span class="arrow">-></span></span> <span class="type-var">'a</span>)</span> <span class="arrow">-></span></span>
|
||
<span class="type-var">'a</span></span></code></div></div></div></body></html> |