ghc-9.12.0.20241114: The GHC API
Copyright(c) The University of Glasgow 2001
LicenseBSD-style (see the file LICENSE)
MaintainerJeffrey Young <jeffrey.young@iohk.io> Luite Stegeman <luite.stegeman@iohk.io> Sylvain Henry <sylvain.henry@iohk.io> Josh Meredith <josh.meredith@iohk.io>
Stabilityexperimental
Safe HaskellNone
LanguageGHC2021

GHC.StgToJS.Rts.Rts

Description

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

Documentation

rts :: StgToJSConfig -> JSM JStgStat Source #

Generated RTS code

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; };