Copyright | (c) The University of Glasgow 2001 |
---|---|
License | BSD-style (see the file LICENSE) |
Maintainer | Jeffrey Young <jeffrey.young@iohk.io> Luite Stegeman <luite.stegeman@iohk.io> Sylvain Henry <sylvain.henry@iohk.io> Josh Meredith <josh.meredith@iohk.io> |
Stability | experimental |
Safe Haskell | None |
Language | GHC2021 |
Top level driver of the JavaScript Backend RTS. This file is an
implementation of the JS RTS for the JS backend written as an EDSL in
Haskell. It assumes the existence of pre-generated JS functions, included as
js-sources in base. These functions are similarly assumed for non-inline
Primops, See Prim
. Most of the elements in this module are
constants in Haskell Land which define pieces of the JS RTS.
Synopsis
- rts :: StgToJSConfig -> JSM JStgStat
- assignRegs :: StgToJSConfig -> [JStgExpr] -> JStgStat
Documentation
assignRegs :: StgToJSConfig -> [JStgExpr] -> JStgStat Source #
Assign registers R1 ... Rn in descending order, that is assign Rn first.
This function uses the hdLoads
array to construct functions which set
the registers.
JS payload which defines an array of function symbols that set N registers
from M parameters. For example, h$l4 compiles to:
function h$l4(x1, x2, x3, x4) {
h$r4 = x1;
h$r3 = x2;
h$r2 = x3;
h$r1 = x4;
};