cvsuser 01/12/06 09:48:59
Modified: docs parrot_assembly.pod
Log:
Sensible changes to the interpreter--flags are now part of the interp
structure.
Courtesy of "Melvin Smith" <[EMAIL PROTECTED]>
Revision Changes Path
1.14 +51 -0 parrot/docs/parrot_assembly.pod
Index: parrot_assembly.pod
===================================================================
RCS file: /home/perlcvs/parrot/docs/parrot_assembly.pod,v
retrieving revision 1.13
retrieving revision 1.14
diff -u -w -r1.13 -r1.14
--- parrot_assembly.pod 2001/11/22 18:39:44 1.13
+++ parrot_assembly.pod 2001/12/06 17:48:59 1.14
@@ -769,6 +769,57 @@
=back
+=head2 Key operations
+
+Keys are used to get access to individual elements of an aggregate
+variable. This is done to allow for opaque, packed, and
+multidimensional aggregate types.
+
+A key entry may be an integer, string, or PMC. Integers are used for
+array lookups, strings for hash lookups, and PMCs for either.
+
+=over 4
+
+=item new_key Sx
+
+Create a new key structure and put a pointer to it in register X.
+
+=item clone_key Sx, ky
+
+Make a copy of the key Y and put a pointer to it in register X. Y may
+be either an S register or a constant.
+
+=item size_key Sx, iy
+
+Make the key structure X large enough to hold Y key entries
+
+=item key_size Ix, ky
+
+Put the number of elements in key Y into integer register X.
+
+=item toss_key Sx
+
+Nuke key X. Throws the structure away and invalidates the register.
+
+=item ke_type Ix, ky, iz
+
+Put the type of key Y's entry Z in register X. Current values are 0,
+1, and 2 for Integer, String, and PMC, respectively.
+
+=item ke_value tx, ky, iz
+
+Put the value from key Y, entry Z into register X.
+
+=item chop_key Sx
+
+Toss the topmost entry from key X.
+
+=item inc_key Sx, iy
+
+Increment entry Y of key X by one.
+
+=back
+
=head1 ATTACHMENTS
=head1 REFERENCES