experiments/JavaByteCodeInterpreter.st
branchdevelopment
changeset 2731 13f5be2bf83b
parent 2711 a00302fe5083
parent 2678 c865275e48a7
child 3196 d617b4590431
--- a/experiments/JavaByteCodeInterpreter.st	Tue Sep 10 10:34:38 2013 +0100
+++ b/experiments/JavaByteCodeInterpreter.st	Sun Sep 15 01:44:55 2013 +0100
@@ -203,18 +203,18 @@
      The count must be of type int. It is popped off the operand stack. The count
      represents the number of components of the array to be created. The unsigned
      indexbyte1 and indexbyte2 are used to construct an index into the runtime
-     constant pool of the current class (§3.6), where the value of the index is
+     constant pool of the current class (3.6), where the value of the index is
      (indexbyte1 << 8) | indexbyte2. The runtime constant pool item at that index
      must be a symbolic reference to a class, array, or interface type. The named
-     class, array, or interface type is resolved (§5.4.3.1). A new array with components
+     class, array, or interface type is resolved (5.4.3.1). A new array with components
      of that type, of length count, is allocated from the garbage-collected heap,
      and a reference arrayref to this new array object is pushed onto the operand
      stack. All components of the new array are initialized to null, the default
-     value for reference types (§2.5.1).
+     value for reference types (2.5.1).
 
      Linking Exceptions
      During resolution of the symbolic reference to the class, array, or interface
-     type, any of the exceptions documented in §5.4.3.1 can be thrown.
+     type, any of the exceptions documented in 5.4.3.1 can be thrown.
 
      Runtime Exception
      Otherwise, if count is less than zero, the anewarray instruction throws a
@@ -296,7 +296,7 @@
 
     "Description
      The index is an unsigned byte that must be an index into the local
-     variable array of the current frame (§3.6). The objectref on the
+     variable array of the current frame (3.6). The objectref on the
      top of the operand stack must be of type returnAddress or of type
      reference. It is popped from the operand stack, and the value of
      the local variable at index is set to objectref.
@@ -444,7 +444,7 @@
 "
 Description
 Both value1 and value2 must be of type double. The values are popped from the operand 
-stack and undergo value set conversion (§3.8.3), resulting in value1' and value2'. 
+stack and undergo value set conversion (3.8.3), resulting in value1' and value2'. 
 The double result is value1' + value2'. The result is pushed onto the operand stack.
 The result of a dadd instruction is governed by the rules of IEEE arithmetic:
 If either value1' or value2' is NaN, the result is NaN.
@@ -541,7 +541,7 @@
 "
 Description
 The index is an unsigned byte. Both index and index + 1 must be indices into the local 
-variable array of the current frame (§3.6). The local variable at index must contain a 
+variable array of the current frame (3.6). The local variable at index must contain a 
 double. The value of the local variable at index is pushed onto the operand stack.
 
 Notes
@@ -618,9 +618,9 @@
     "
      Description
      The index is an unsigned byte. Both index and index + 1 must be indices
-     into the local variable array of the current frame (§3.6). The value on
+     into the local variable array of the current frame (3.6). The value on
      the top of the operand stack must be of type double. It is popped from
-     the operand stack and undergoes value set conversion (§3.8.3), resulting
+     the operand stack and undergoes value set conversion (3.8.3), resulting
      in value'. The local variables at index and index + 1 are set to value'.
 
      Notes
@@ -641,9 +641,9 @@
     "
      Description
      The index is an unsigned byte. Both index and index + 1 must be indices
-     into the local variable array of the current frame (§3.6). The value on
+     into the local variable array of the current frame (3.6). The value on
      the top of the operand stack must be of type double. It is popped from
-     the operand stack and undergoes value set conversion (§3.8.3), resulting
+     the operand stack and undergoes value set conversion (3.8.3), resulting
      in value'. The local variables at index and index + 1 are set to value'.
 
      Notes
@@ -670,7 +670,7 @@
 "
 Description
 Duplicate the top value on the operand stack and push the duplicated value onto the operand stack.
-The dup instruction must not be used unless value is a value of a category 1 computational type (§3.11.1).
+The dup instruction must not be used unless value is a value of a category 1 computational type (3.11.1).
 "
 
     "Modified: / 27-03-2011 / 21:19:49 / Marcel Hlopko <hlopkmar@fel.cvut.cz>"
@@ -679,8 +679,8 @@
 dup2
 "
 Duplicate the top one or two operand stack values
-stack v 1: value2 value1 -> value2 value 1 value2 value1            where both value1 and value2 are values of a category 1 computational type (§3.11.1).
-stack v 2: value1 -> value1 value1                                  where value is a value of a category 2 computational type (§3.11.1).
+stack v 1: value2 value1 -> value2 value 1 value2 value1            where both value1 and value2 are values of a category 1 computational type (3.11.1).
+stack v 2: value1 -> value1 value1                                  where value is a value of a category 2 computational type (3.11.1).
 args: nothing
 "
     | tos |
@@ -788,7 +788,7 @@
 "
 Description
 The index is an unsigned byte that must be an index into the local 
-variable array of the current frame (§3.6). The local variable at 
+variable array of the current frame (3.6). The local variable at 
 index must contain a float. The value of the local variable at index 
 is pushed onto the operand stack.
 
@@ -835,9 +835,9 @@
     "
      Description
      The index is an unsigned byte that must be an index into the local
-     variable array of the current frame (§3.6). The value on the top of
+     variable array of the current frame (3.6). The value on the top of
      the operand stack must be of type float. It is popped from the operand
-     stack and undergoes value set conversion (§3.8.3), resulting in value'.
+     stack and undergoes value set conversion (3.8.3), resulting in value'.
      The value of the local variable at index is set to value'.
 
      Notes
@@ -858,9 +858,9 @@
 "
 Description
 The index is an unsigned byte that must be an index into the local 
-variable array of the current frame (§3.6). The value on the top of 
+variable array of the current frame (3.6). The value on the top of 
 the operand stack must be of type float. It is popped from the operand 
-stack and undergoes value set conversion (§3.8.3), resulting in value'. 
+stack and undergoes value set conversion (3.8.3), resulting in value'. 
 The value of the local variable at index is set to value'.
 
 Notes
@@ -937,13 +937,13 @@
     "
      Description
      The unsigned indexbyte1 and indexbyte2 are used to construct an index into the
-     runtime constant pool of the current class (§3.6), where the value of the index
+     runtime constant pool of the current class (3.6), where the value of the index
      is (indexbyte1 << 8) | indexbyte2. The runtime constant pool item at that index
-     must be a symbolic reference to a field (§5.1), which gives the name and descriptor
+     must be a symbolic reference to a field (5.1), which gives the name and descriptor
      of the field as well as a symbolic reference to the class or interface in which the
-     field is to be found. The referenced field is resolved (§5.4.3.2).
+     field is to be found. The referenced field is resolved (5.4.3.2).
      On successful resolution of the field, the class or interface that declared the
-     resolved field is initialized (§5.5) if that class or interface has not already
+     resolved field is initialized (5.5) if that class or interface has not already
      been initialized.
      The value of the class or interface field is fetched and pushed onto the operand stack.
 
@@ -1571,7 +1571,7 @@
 "
 Description
 The index is an unsigned byte that must be an index into the local variable 
-array of the current frame (§3.6). The const is an immediate signed byte. 
+array of the current frame (3.6). The const is an immediate signed byte. 
 The local variable at index must contain an int. The value const is first 
 sign-extended to an int, and then the local variable at index is incremented 
 by that amount.
@@ -2258,18 +2258,18 @@
     "
      Description
      The index is an unsigned byte that must be a valid index into the runtime constant
-     pool of the current class (§3.6). The runtime constant pool entry at index either
+     pool of the current class (3.6). The runtime constant pool entry at index either
      must be a runtime constant of type int or float, or must be a symbolic reference
-     to a string literal (§5.1).
+     to a string literal (5.1).
      If the runtime constant pool entry is a runtime constant of type int or float, the
      numeric value of that runtime constant is pushed onto the operand stack as an int
      or float, respectively.
      Otherwise, the runtime constant pool entry must be a reference to an instance of
-     class String representing a string literal (§5.1). A reference to that instance,
+     class String representing a string literal (5.1). A reference to that instance,
      value, is pushed onto the operand stack.
 
      Notes
-     The ldc instruction can only be used to push a value of type float taken from the float value set (§3.3.2) because a constant of type float in the constant pool (§4.4.4) must be taken from the float value set."
+     The ldc instruction can only be used to push a value of type float taken from the float value set (3.3.2) because a constant of type float in the constant pool (4.4.4) must be taken from the float value set."
 
     "Modified: / 14-03-2011 / 16:04:56 / Marcel Hlopko <hlopkmar@fel.cvut.cz>"
 !
@@ -2285,24 +2285,24 @@
     "
      Description
      The unsigned indexbyte1 and indexbyte2 are assembled into an unsigned 16-bit
-     index into the runtime constant pool of the current class (§3.6), where the
+     index into the runtime constant pool of the current class (3.6), where the
      value of the index is calculated as (indexbyte1 << 8) | indexbyte2. The index
      must be a valid index into the runtime constant pool of the current class.
      The runtime constant pool entry at the index either must be a runtime constant
-     of type int or float, or must be a symbolic reference to a string literal (§5.1).
+     of type int or float, or must be a symbolic reference to a string literal (5.1).
      If the runtime constant pool entry is a runtime constant of type int or float,
      the numeric value of that runtime constant is pushed onto the operand stack as
      an int or float, respectively.
      Otherwise, the runtime constant pool entry must be a reference to an instance
-     of class String representing a string literal (§5.1). A reference to that
+     of class String representing a string literal (5.1). A reference to that
      instance, value, is pushed onto the operand stack.
 
      Notes
      The ldc_w instruction is identical to the ldc instruction except for its wider
      runtime constant pool index.
      The ldc_w instruction can only be used to push a value of type float taken from
-     the float value set (§3.3.2) because a constant of type float in the constant
-     pool (§4.4.4) must be taken from the float value set."
+     the float value set (3.3.2) because a constant of type float in the constant
+     pool (4.4.4) must be taken from the float value set."
 
     "Modified: / 28-03-2011 / 18:04:31 / Marcel Hlopko <hlopkmar@fel.cvut.cz>"
 !
@@ -2317,10 +2317,10 @@
 "
 Description
 The unsigned indexbyte1 and indexbyte2 are assembled into an unsigned 16-bit index 
-into the runtime constant pool of the current class (§3.6), where the value of the 
+into the runtime constant pool of the current class (3.6), where the value of the 
 index is calculated as (indexbyte1 << 8) | indexbyte2. The index must be a valid 
 index into the runtime constant pool of the current class. The runtime constant pool 
-entry at the index must be a runtime constant of type long or double (§5.1). The 
+entry at the index must be a runtime constant of type long or double (5.1). The 
 numeric value of that runtime constant is pushed onto the operand stack as a long 
 or double, respectively.
 
@@ -2328,7 +2328,7 @@
 Only a wide-index version of the ldc2_w instruction exists; there is no ldc2 instruction 
 that pushes a long or double with a single-byte index.
 The ldc2_w instruction can only be used to push a value of type double taken from the 
-double value set (§3.3.2) because a constant of type double in the constant pool (§4.4.5) 
+double value set (3.3.2) because a constant of type double in the constant pool (4.4.5) 
 must be taken from the double value set.
 "
 
@@ -2358,7 +2358,7 @@
     "
      Description
      The index is an unsigned byte. Both index and index + 1 must be indices
-     into the local variable array of the current frame (§3.6). The local variable
+     into the local variable array of the current frame (3.6). The local variable
      at index must contain a long. The value of the local variable at index is
      pushed onto the operand stack.
 
@@ -2509,7 +2509,7 @@
     "
      Description
      The index is an unsigned byte. Both index and index + 1 must be indices
-     into the local variable array of the current frame (§3.6). The value on
+     into the local variable array of the current frame (3.6). The value on
      the top of the operand stack must be of type long. It is popped from the
      operand stack, and the local variables at index and index + 1 are set to
      value.
@@ -2572,16 +2572,16 @@
     "
      Description
      The unsigned indexbyte1 and indexbyte2 are used to construct an index into
-     the runtime constant pool of the current class (§3.6), where the value of
+     the runtime constant pool of the current class (3.6), where the value of
      the index is (indexbyte1 << 8) | indexbyte2. The runtime constant pool item
      at the index must be a symbolic reference to a class, array, or interface
-     type. The named class, array, or interface type is resolved (§5.4.3.1) and
+     type. The named class, array, or interface type is resolved (5.4.3.1) and
      should result in a class type (it should not result in an array or interface
      type). Memory for a new instance of that class is allocated from the
      garbage-collected heap, and the instance variables of the new object are
-     initialized to their default initial values (§2.5.1). The objectref, a reference
+     initialized to their default initial values (2.5.1). The objectref, a reference
      to the instance, is pushed onto the operand stack.
-     On successful resolution of the class, it is initialized (§5.5) if it has not
+     On successful resolution of the class, it is initialized (5.5) if it has not
      already been initialized.
 
      Linking Exceptions
@@ -2644,7 +2644,7 @@
 A new array whose components are of type atype and of length count is allocated 
 from the garbage-collected heap. A reference arrayref to this new array object is pushed 
 into the operand stack. Each of the elements of the new array is initialized to the 
-default initial value for the type of the array (§2.5.1).
+default initial value for the type of the array (2.5.1).
 
 Runtime Exception
 If count is less than zero, newarray throws a NegativeArraySizeException.
@@ -2676,8 +2676,8 @@
 pop2
     "
      Pop the top one or two operand stack values
-    stack v1: value2 value1 -> nothing                      where each of value1 and value2 is a value of a category 1 computational type (§3.11.1).
-    stack v2: value -> nothing                              where value is a value of a category 2 computational type (§3.11.1).
+    stack v1: value2 value1 -> nothing                      where each of value1 and value2 is a value of a category 1 computational type (3.11.1).
+    stack v2: value -> nothing                              where value is a value of a category 2 computational type (3.11.1).
     args: nothing
 "
     
@@ -2888,7 +2888,7 @@
 Description
 Swap the top two values on the operand stack.
 The swap instruction must not be used unless value1 and value2 are both 
-values of a category 1 computational type (§3.11.1).
+values of a category 1 computational type (3.11.1).
 
 Notes
 The Java virtual machine does not provide an instruction implementing a 
@@ -2987,7 +2987,7 @@
 !JavaByteCodeInterpreter class methodsFor:'documentation'!
 
 version_CVS
-    ^ '$Header$'
+    ^ '$Header: /cvs/stx/stx/libjava/experiments/JavaByteCodeInterpreter.st,v 1.3 2013-09-06 00:44:04 vrany Exp $'
 !
 
 version_HG
@@ -2996,6 +2996,6 @@
 !
 
 version_SVN
-    ^ '§Id§'
+    ^ 'Id'
 ! !