Mixin: Machine14

Eight~ Machine14

Example 8/14: adds support for garbage-collected frames, cannot be mixed with Machine08.

Source:

Classes

Memory

Methods


Entry(args, depth, result, vars)

stack: ... arguments fp old-pc -> ... | frame: old-pc old-fp display result arguments locals

Parameters:
Name Type Description
args number

size of argument values.

depth number

number of display entries.

result number

size of result value.

vars number

size of local variables.

Source:

Exit(depth, result)

stack: ... | frame: old-pc old-fp display result ... -> ... result old-pc | fp: old-fp | frame unchanged

Parameters:
Name Type Description
depth number

number of display entries.

result number

size of result value.

Source:

LoadGC()

stack: ... -> ... frame[depth][addr]

Source:

PushFP()

stack: ... -> ... fp

Source:

StoreGC()

stack: ... val -> ... val | frame[depth][addr]: val

Source: