moonpool/dev/ocaml/X86_proc/index.html

7 lines
No EOL
12 KiB
HTML
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

<!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> &#x00BB; 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">&#45;&gt;</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">&#45;&gt;</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">&#45;&gt;</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">&#45;&gt;</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">&#45;&gt;</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">&#45;&gt;</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">&#45;&gt;</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">&#45;&gt;</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">&#45;&gt;</span></span> <span>string <span class="arrow">&#45;&gt;</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">&#45;&gt;</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">&#45;&gt;</span></span> <span>string <span class="arrow">&#45;&gt;</span></span> <span>string <span class="arrow">&#45;&gt;</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">&#45;&gt;</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">&#45;&gt;</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">&#45;&gt;</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">&#45;&gt;</span></span> unit)</span> option</span> <span class="arrow">&#45;&gt;</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">&#45;&gt;</span></span> <span>string <span class="arrow">&#45;&gt;</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_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">&#45;&gt;</span></span> <span>string <span class="arrow">&#45;&gt;</span></span> unit)</span> <span class="arrow">&#45;&gt;</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">&#45;&gt;</span></span> <span>string <span class="arrow">&#45;&gt;</span></span> unit)</span> <span class="arrow">&#45;&gt;</span></span>
<span><span>(<span>unit <span class="arrow">&#45;&gt;</span></span> <span class="type-var">'a</span>)</span> <span class="arrow">&#45;&gt;</span></span>
<span class="type-var">'a</span></span></code></div></div></div></body></html>