Legend:

Library

Module

Module type

Parameter

Class

Class type

Library

Module

Module type

Parameter

Class

Class type

Legend:

Library

Module

Module type

Parameter

Class

Class type

Library

Module

Module type

Parameter

Class

Class type

Statements.

`val error : t`

an ill-formed term.

`set_mem s m n x`

is `set v (mem x)`

,

where `v = Var.create (mems (bits m) (bits n) s`

.

`set_reg s m x`

is `set v (bitv x)`

,

where ```
v = Var.create (bits m) s.
```

`set_ieee754 s p x`

is `set v (float x)`

,

where `v = Var.create (IEEE754.Sort.define p) s`

.

`set_rmode s x`

is `set v (rmode x)`

,

where `v = Var.create Rmode.t x`

.

`tmp_mem s x`

is `set v (mem x)`

,

where `v`

is a freshly created variable, and all occurrences of `s`

are substituted with the identifier of `v`

in all subsequent statements.

`tmp_reg s x`

is `set v (bitv x)`

,

where `v`

is a freshly created variable, and all occurrences of `s`

are substituted with the identifier of `v`

in all subsequent statements.

`tmp_bit s x`

is `set v (bool x)`

,

where `v`

is a freshly created variable, and all occurrences of `s`

are substituted with the identifier of `v`

in all subsequent statements.

`tmp_float s x`

is `set v (float x)`

,

`v`

is a freshly created variable, and all occurrences of `s`

are substituted with the identifier of `v`

in all subsequent statements.

`tmp_rmode s x`

is `set v (rmode x)`

,

`v`

is a freshly created variable, and all occurrences of `s`

are substituted with the identifier of `v`

in all subsequent statements.

`let_mem s x p`

is `seq (set v (mem x)) (stmt p)`

,

where `v`

is freshly created variable, and all occurrences of `s`

will be substituted with the identifier of `v`

in the statement `p`

.

`let_reg s x p`

is `seq (set v (bitv x)) (stmt p)`

,

where `v`

is freshly created variable, and all occurrences of `s`

will be substituted with the identifier of `v`

in the statement `p`

.

`let_bit s x p`

is `seq (set v (bool x)) (stmt p)`

,

where `v`

is freshly created variable, and all occurrences of `s`

will be substituted with the identifier of `v`

in the statement `p`

.

`let_float s x p`

is `seq (set v (float x)) (stmt p)`

,

`v`

is freshly created variable, and all occurrences of `s`

will be substituted with the identifier of `v`

in the statement `p`

.

`let_rmode s x p`

is `seq (set v (rmode x)) (stmt p)`

,

`v`

is freshly created variable, and all occurrences of `s`

will be substituted with the identifier of `v`

in the statement `p`

.

`jmp x`

is `jmp (bitv x)`

,

where `x`

is a non-constant expression.

If `x`

is a constant use `goto`

.

`val call : string -> t`

`call x`

is `goto lbl`

,

where `lbl = Label.for_name x`

`val special : string -> t`

`special s`

is `pass`

.

`val cpuexn : int -> t`

`cpuexn x`

is `goto lbl`

,

where `lbl = Label.for_ivec x`

.

`if_ c xs ys`

is `branch (bool c) (map stmt xs) (map stmt ys)`

.

sectionYPositions = computeSectionYPositions($el), 10)" x-init="setTimeout(() => sectionYPositions = computeSectionYPositions($el), 10)">