Example 8/14: adds support for garbage-collected frames,
cannot be mixed with Machine08.
Classes
Methods
-
Entry(args, depth, result, vars)
-
stack: ... arguments fp old-pc -> ... | frame: old-pc old-fp display result arguments localsParameters:
Name Type Description argsnumber size of argument values.
depthnumber number of display entries.
resultnumber size of result value.
varsnumber size of local variables.
-
Exit(depth, result)
-
stack: ... | frame: old-pc old-fp display result ... -> ... result old-pc | fp: old-fp | frame unchangedParameters:
Name Type Description depthnumber number of display entries.
resultnumber size of result value.
-
LoadGC()
-
stack: ... -> ... frame[depth][addr] -
PushFP()
-
stack: ... -> ... fp -
StoreGC()
-
stack: ... val -> ... val | frame[depth][addr]: val