1.1 --- a/micropython/rsvp.py Mon Jun 01 02:41:57 2009 +0200
1.2 +++ b/micropython/rsvp.py Mon Jun 01 21:10:47 2009 +0200
1.3 @@ -175,13 +175,12 @@
1.4 context if the attribute is compatible."""
1.5 class MakeInstance(Immediate): "Make a new instance."
1.6
1.7 -# Access to address-relative data.
1.8 +# Access to address-relative data. (LoadAttrIndexContext not defined.)
1.9
1.10 class LoadAttr(AR): "Load into the current value the given attribute of the object referenced by the current value."
1.11 class StoreAttr(AR): "Store the source value into the given attribute of the object referenced by the current value."
1.12 class LoadAttrIndex(Immediate): "Load into the current value the attribute of the current value with the given index."
1.13 class StoreAttrIndex(Immediate): "Store the source value into the attribute of the current value with the given index."
1.14 -##### LoadAttrIndexContext not defined.
1.15 class LoadAttrIndexContextCond(Immediate):
1.16 """Load into the current value the attribute of the current value with the given index, only making the
1.17 current value the context if the attribute is compatible."""
1.18 @@ -194,27 +193,29 @@
1.19 # Access to invocation frames in preparation.
1.20
1.21 class MakeFrame(Immediate): "Make a new invocation frame."
1.22 +class AdjustFrame(Immediate): "Adjust the current invocation frame for corrected invocations."
1.23 class DropFrame(Instruction): "Drop an invocation frame."
1.24 class StoreFrame(Immediate): "Store the current value as an argument for the parameter with the given position."
1.25 class StoreFrameIndex(Immediate): "Store the source value as an argument of the current value for the parameter with the given index."
1.26 class LoadContext(Instruction): "Load the context of an invocation."
1.27 -class CheckSelf(Instruction): "Check the first argument of an invocation against the target."
1.28
1.29 -# Access to invocation frames upon dispatch.
1.30 +# Context-related tests.
1.31
1.32 class CheckContext(Instruction): "Check to see if the context is valid."
1.33 -class CheckClassContext(Instruction):
1.34 - "Check the context to see if it should be used to validate the first argument."
1.35 -class CheckFrame(Immediate): "Check the invocation frame and context for the target."
1.36 +class CheckClass(Instruction): "Check the current value to determine whether it is a class."
1.37 +class CheckSelf(Instruction): "Check the first argument of an invocation against the target."
1.38 +
1.39 +# Access to frames upon invocation.
1.40 +
1.41 +class CheckFrame(Immediate): "Check the frame for the correct number of arguments."
1.42 class FillDefaults(Immediate): "Fill frame positions with defaults, if appropriate."
1.43 +class ExtendFrame(Immediate): "Extend the current frame for temporary storage use."
1.44
1.45 # Invocation-related instructions, using a special result "register".
1.46
1.47 class JumpInFrame(Instruction): "Jump, using the current locals, to the current callable."
1.48 class JumpWithFrame(Instruction): "Jump, adopting the invocation frame, to the current callable."
1.49 class JumpWithFrameDirect(Target): "Jump to the specified address, adopting the invocation frame."
1.50 -class ExtendFrame(Immediate): "Extend the current frame for temporary storage use."
1.51 -class AdjustFrame(Immediate): "Adjust the current frame for corrected invocations."
1.52 class Return(Instruction): "Return from a subprogram."
1.53 class LoadResult(Instruction): "Load into the current value a returned value."
1.54 class StoreResult(Instruction): "Store the current value as a value to be returned."
1.55 @@ -241,8 +242,7 @@
1.56 class TestIdentityAddress(Address): "Test whether the current value is identical to the given address, setting the boolean status."
1.57 class InvertBoolean(Instruction): "Invert the boolean status."
1.58
1.59 -# Instructions which affect the current value.
1.60 -# LoadAttrIndexContext not defined.
1.61 +# Instructions which affect the current value. (LoadAttrIndexContext not defined.)
1.62
1.63 current_value_instructions = (
1.64 LoadConst, LoadFunction, LoadName, LoadTemp,