diff options
| author | Carl Shapiro <cshapiro@google.com> | 2010-06-08 16:37:12 -0700 |
|---|---|---|
| committer | Carl Shapiro <cshapiro@google.com> | 2010-06-08 17:04:11 -0700 |
| commit | de75089fb7216d19e9c22cce4dc62a49513477d3 (patch) | |
| tree | 8c4035cc05218ddb7595e9a5c5997b53e58c2572 /docs | |
| parent | 52ec072cc4dd215ff541a0b0842e91ea529a6e5d (diff) | |
| download | android_dalvik-de75089fb7216d19e9c22cce4dc62a49513477d3.tar.gz android_dalvik-de75089fb7216d19e9c22cce4dc62a49513477d3.tar.bz2 android_dalvik-de75089fb7216d19e9c22cce4dc62a49513477d3.zip | |
Remove trailing whitespace.
Change-Id: I95534bb2b88eaf48f2329282041118cd034c812b
Diffstat (limited to 'docs')
46 files changed, 526 insertions, 526 deletions
diff --git a/docs/dalvik-bytecode.html b/docs/dalvik-bytecode.html index 6d6c4f17a..e69a962ee 100644 --- a/docs/dalvik-bytecode.html +++ b/docs/dalvik-bytecode.html @@ -448,7 +448,7 @@ no arrays of <code>long</code> or <code>double</code>, but reference types are acceptable). The constructed instance is stored as a "result" in the same way that the method invocation - instructions store their results, so the constructed instance must + instructions store their results, so the constructed instance must be moved to a register with an immediately subsequent <code>move-result-object</code> instruction (if it is to be used).</td> </tr> @@ -1453,7 +1453,7 @@ round-to-nearest and gradual underflow, except where stated otherwise.</p> float result = a % b; </td> <td>Floating point remainder after division. This function is different - than IEEE 754 remainder and is defined as + than IEEE 754 remainder and is defined as <code>result == a - roundTowardZero(a / b) * b</code>. </td> </tr> @@ -1491,7 +1491,7 @@ round-to-nearest and gradual underflow, except where stated otherwise.</p> double result = a % b; </td> <td>Floating point remainder after division. This function is different - than IEEE 754 remainder and is defined as + than IEEE 754 remainder and is defined as <code>result == a - roundTowardZero(a / b) * b</code>. </td> </tr> diff --git a/docs/dalvik-constraints.html b/docs/dalvik-constraints.html index 105225a7b..69abf3af3 100644 --- a/docs/dalvik-constraints.html +++ b/docs/dalvik-constraints.html @@ -5,11 +5,11 @@ <title>Dalvik bytecode constraints</title> <link rel=stylesheet href="dalvik-constraints.css"> </head> - + <body> - + <h1>Dalvik bytecode constraints</h1> - + <!-- <h1>General integrity constraints</h1> @@ -18,17 +18,17 @@ <th> Identifier </th> - + <th> Description </th> </tr> - + <tr> <td> A1 </td> - + <td> The magic number of the DEX file must be "dex\n035\0". </td> @@ -38,7 +38,7 @@ <td> A1 </td> - + <td> The checksum must be an Adler-32 checksum of the whole file contents except magic and checksum field. @@ -54,14 +54,14 @@ The file_size must match the actual file size in bytes. The header_size must have the value 0x70. The endian_tag must have either the value ENDIAN_CONSTANT or -REVERSE_ENDIAN_CONSTANT. - +REVERSE_ENDIAN_CONSTANT. + For each of the link, string_ids, type_ids, proto_ids, field_ids, method_ids, class_defs and data sections, the offset and size fields must be either both zero or both non-zero. In the latter case, the offset must be four-byte-aligned. All offset fields in the header except map_off must be four-byte-aligned. - + The map_off field must be either zero or point into the data section. In the latter case, the data section must exist. @@ -124,7 +124,7 @@ type_ids list. The referenced entry must be a non-array reference type. ... --> - + <h2> Static constraints </h2> @@ -134,153 +134,153 @@ type_ids list. The referenced entry must be a non-array reference type. They usually can be checked without employing control or data-flow analysis techniques. </p> - + <table> <tr> <th> Identifier </th> - + <th> Description </th> - + <th> Spec equivalent </th> </tr> - + <tr> <td> A1 </td> - + <td> - The <code>insns</code> array must not be empty. + The <code>insns</code> array must not be empty. </td> - + <td> 4.8.1.1 </td> </tr> - + <tr> <td> A2 </td> - + <td> The first opcode in the <code>insns</code> array must have index zero. </td> - + <td> 4.8.1.3 </td> </tr> - + <tr> <td> A3 </td> - + <td> The <code>insns</code> array must only contain valid Dalvik opcodes. </td> - + <td> 4.8.1.4 </td> </tr> - + <tr> <td> A4 </td> - + <td> The index of instruction <code>n+1</code> must equal the index of instruction <code>n</code> plus the length of instruction <code>n</code>, taking into account possible operands. </td> - + <td> 4.8.1.5 </td> </tr> - + <tr> <td> A5 </td> - + <td> The last instruction in the <code>insns</code> array must end at index - <code>insns_size-1</code>. + <code>insns_size-1</code>. </td> - + <td> 4.8.1.6 </td> </tr> - + <tr> <td> A6 </td> - + <td> All <code>goto</code> and <code>if-<kind></code> targets must be opcodes within in the same method. </td> - + <td> 4.8.1.7 </td> </tr> - + <tr> <td> A7 </td> - + <td> All targets of a <code>packed-switch</code> instruction must be opcodes within in the same method. The size and the list of targets - must be consistent. + must be consistent. </td> - + <td> 4.8.1.8 </td> </tr> - + <tr> <td> A8 </td> - + <td> All targets of a <code>sparse-switch</code> instruction must be opcodes within in the same method. The corresponding table must be - consistent and sorted low-to-high. + consistent and sorted low-to-high. </td> - + <td> 4.8.1.9 </td> </tr> - + <tr> <td> A9 </td> - + <td> The <code>B</code> operand of the <code>const-string</code> and <code>const-string/jumbo</code> instructions must be a valid index into the string constant pool. </td> - + <td> 4.8.1.10 </td> @@ -290,31 +290,31 @@ type_ids list. The referenced entry must be a non-array reference type. <td> A10 </td> - + <td> The <code>C</code> operand of the <code>iget<kind></code> and <code>iput<kind></code> instructions must be a valid index into the field constant pool. The referenced entry must represent an instance field. </td> - + <td> 4.8.1.12 </td> </tr> - + <tr> <td> A11 </td> - + <td> The <code>C</code> operand of the <code>sget<kind></code> and <code>sput<kind></code> instructions must be a valid index into the field constant pool. The referenced entry must represent a static field. </td> - + <td> 4.8.1.12 </td> @@ -324,33 +324,33 @@ type_ids list. The referenced entry must be a non-array reference type. <td> A12 </td> - + <td> The <code>C</code> operand of the <code>invoke-virtual</code>, <code>invoke-super</code>, <code<invoke-direct</code> and <code>invoke-static</code> instructions must be a valid index into the method constant pool. In all cases, the referenced - <code>method_id</code> must belong to a class (not an interface). + <code>method_id</code> must belong to a class (not an interface). </td> - + <td> 4.8.1.13 </td> </tr> - + <tr> <td> A13 </td> - + <td> The <code>B</code> operand of the <code>invoke-virtual/range</code>, <code>invoke-super/range</code>, <code>invoke-direct/range</code>, and <code>invoke-static/range</code> instructions must be a valid index into the method constant pool. In all cases, the referenced - <code>method_id</code> must belong to a class (not an interface). + <code>method_id</code> must belong to a class (not an interface). </td> - + <td> 4.8.1.13 </td> @@ -360,81 +360,81 @@ type_ids list. The referenced entry must be a non-array reference type. <td> A14 </td> - + <td> A method the name of which starts with a '<' must only be invoked implicitly by the VM, not by code originating from a Dex file. The only exception is the instance initializer, which may be invoked by <code>invoke-direct</code>. </td> - + <td> 4.8.1.14 </td> </tr> - + <tr> <td> A15 </td> - + <td> The <code>C</code> operand of the <code>invoke-interface</code> instruction must be a valid index into the method constant pool. The referenced <code>method_id</code> must belong to an interface (not a class). </td> - + <td> 4.8.1.15 </td> </tr> - + <tr> <td> A16 </td> - + <td> The <code>B</code> operand of the <code>invoke-interface/range</code> instruction must be a valid index into the method constant pool. The referenced <code>method_id</code> must belong to an interface (not a class). </td> - + <td> 4.8.1.15 </td> </tr> - + <tr> <td> A17 </td> - + <td> The <code>B</code> operand of the <code>const-class</code>, <code>check-cast</code>, <code>new-instance</code>, and <code>filled-new-array/range</code> instructions must be a valid index into the type constant pool. </td> - + <td> 4.8.1.16 </td> </tr> - + <tr> <td> A18 </td> - + <td> The <code>C</code> operand of the <code>instance-of</code>, <code>new-array</code>, and <code>filled-new-array</code> instructions must be a valid index into the type constant pool. </td> - + <td> 4.8.1.16 </td> @@ -444,85 +444,85 @@ type_ids list. The referenced entry must be a non-array reference type. <td> A19 </td> - + <td> The dimensions of an array created by a <code>new-array</code> instruction must be less than <code>256</code>. </td> - + <td> 4.8.1.17 </td> </tr> - + <tr> <td> A20 </td> - + <td> The <code>new</code> instruction must not refer to array classes, interfaces, or abstract classes. </td> - + <td> 4.8.1.18 </td> </tr> - + <tr> <td> A21 </td> - + <td> The type referred to by a <code>new-array</code> instruction must be a valid, non-reference type. </td> - + <td> 4.8.1.20 </td> </tr> - + <tr> <td> A22 </td> - + <td> All registers referred to by an instruction in a single-width (non-pair) fashion must be valid for the current method. That is, their indices must be non-negative and smaller than - <code>registers_size</code>. + <code>registers_size</code>. </td> - + <td> 4.8.1.21 </td> </tr> - + <tr> <td> A23 </td> - + <td> All registers referred to by an instruction in a double-width (pair) fashion must be valid for the current method. That is, their indices - must be non-negative and smaller than <code>registers_size-1</code>. + must be non-negative and smaller than <code>registers_size-1</code>. </td> - + <td> 4.8.1.23 </td> </tr> </table> - + <h2> Structural constraints </h2> - + <p> Structural constraints are constraints on relationships between several elements of the bytecode. They usually can't be checked without employing @@ -534,291 +534,291 @@ type_ids list. The referenced entry must be a non-array reference type. <th> Identifier </th> - + <th> Description </th> - + <th> Spec equivalent </th> </tr> - + <tr> <td> B1 </td> - + <td> The number and types of arguments (registers and immediate values) must always match the instruction. </td> - + <td> 4.8.2.1 </td> </tr> - + <tr> <td> B2 </td> - + <td> - Register pairs must never be broken up. + Register pairs must never be broken up. </td> - + <td> 4.8.2.3 </td> </tr> - + <tr> <td> B3 </td> - + <td> A register (or pair) has to be assigned first before it can be read. </td> - + <td> 4.8.2.4 </td> </tr> - + <tr> <td> B4 </td> - + <td> An <code>invoke-direct</code> instruction must only invoke an instance initializer or a method in the current class or one of its - superclasses. + superclasses. </td> - + <td> 4.8.2.7 </td> </tr> - + <tr> <td> B5 </td> - + <td> An instance initializer must only be invoked on an uninitialized instance. </td> - + <td> 4.8.2.8 </td> </tr> - + <tr> <td> B6 </td> - + <td> Instance methods may only be invoked on and instance fields may only - be accessed on already initialized instances. + be accessed on already initialized instances. </td> - + <td> 4.8.2.9 </td> </tr> - + <tr> <td> B7 </td> - + <td> A register which holds the result of a <code>new-instance</code>code> instruction must not be used if the same <code>new-instance</code>code> instruction is again executed before - the instance is initialized. + the instance is initialized. </td> - + <td> 4.8.2.10 </td> </tr> - + <tr> <td> B8 </td> - + <td> An instance initializer must call another instance initializer (same class or superclass) before any instance members can be accessed. Exceptions are non-inherited instance fields, which can be assigned before calling another initializer, and the <code>Object</code> class - in general. + in general. </td> - + <td> 4.8.2.11 </td> </tr> - + <tr> <td> B9 </td> - + <td> All actual method arguments must be assignment-compatible with their - respective formal arguments. + respective formal arguments. </td> - + <td> 4.8.2.12 </td> </tr> - + <tr> <td> B10 </td> - + <td> For each instance method invocation, the actual instance must be assignment-compatible with the class or interface specified in the instruction. </td> - + <td> 4.8.2.13 </td> </tr> - + <tr> <td> B11 </td> - + <td> A <code>return<kind></code> instruction must match its - method's return type. + method's return type. </td> - + <td> 4.8.2.14 </td> </tr> - + <tr> <td> B12 </td> - + <td> When accessing protected members of a superclass, the actual type of the instance being accessed must be either the current class or one of its subclasses. </td> - + <td> 4.8.2.15 </td> </tr> - + <tr> <td> B13 </td> - + <td> The type of a value stored into a static field must be assignment-compatible with or convertible to the field's type. </td> - + <td> 4.8.2.16 </td> </tr> - + <tr> <td> B14 </td> - + <td> The type of a value stored into a field must be assignment-compatible with or convertible to the field's type. </td> - + <td> 4.8.2.17 </td> </tr> - + <tr> <td> B15 </td> - + <td> The type of every value stored into an array must be assignment-compatible with the array's component type. </td> - + <td> 4.8.2.18 </td> </tr> - + <tr> <td> B16 </td> - + <td> The <code>A</code> operand of a <code>throw</code> instruction must - be assignment-compatible with <code>java.lang.Throwable</code>. + be assignment-compatible with <code>java.lang.Throwable</code>. </td> - + <td> 4.8.2.19 </td> </tr> - + <tr> <td> B17 </td> - + <td> The last reachable instruction of a method must either be a backwards <code>goto</code> or branch, a <code>return</code>, or a <code>throw</code> instruction. It must not be possible to leave the <code>insns</code> array at the bottom. </td> - + <td> 4.8.2.20 </td> </tr> - + <tr> <td> B18 </td> - + <td> The unassigned half of a former register pair may not be read (is considered invalid) until it has been re-assigned by some other instruction. - </td> - + </td> + <td> 4.8.2.3, 4.8.2.4 </td> @@ -828,15 +828,15 @@ type_ids list. The referenced entry must be a non-array reference type. <td> B19 </td> - + <td> A <code>move-result<kind></code> instruction must be immediately preceded (in the <code>insns</code> array) by an <code><invoke-kind></code> instruction. The only exception is the <code>move-result-object</code> instruction, which may also be - preceded by a <code>filled-new-array</code> instruction. + preceded by a <code>filled-new-array</code> instruction. </td> - + <td> - </td> @@ -846,16 +846,16 @@ type_ids list. The referenced entry must be a non-array reference type. <td> B20 </td> - + <td> A <code>move-result<kind></code> instruction must be immediately preceded (in actual control flow) by a matching <code>return-<kind></code> instruction (it must not be jumped to). The only exception is the <code>move-result-object</code> instruction, which may also be preceded by a - <code>filled-new-array</code> instruction. + <code>filled-new-array</code> instruction. </td> - + <td> - </td> @@ -865,28 +865,28 @@ type_ids list. The referenced entry must be a non-array reference type. <td> B21 </td> - + <td> A <code>move-exception</code> instruction must only appear as the first instruction in an exception handler. </td> - + <td> - </td> </tr> - + <tr> <td> B22 </td> - + <td> The <code>packed-switch-data</code>, <code>sparse-switch-data</code>, and <code>fill-array-data</code> pseudo-instructions must not be reachable by control flow. </td> - + <td> - </td> diff --git a/docs/dex-format.css b/docs/dex-format.css index 17e935f75..153dd4e8d 100644 --- a/docs/dex-format.css +++ b/docs/dex-format.css @@ -85,13 +85,13 @@ table td { background: #eeeeff; } -table p { +table p { margin-bottom: 0pt; } /* for the bnf syntax sections */ -table.bnf { +table.bnf { background: #eeeeff; border-color: #aaaaff; border-style: solid; @@ -104,7 +104,7 @@ table.bnf { padding-right: 6pt; } -table.bnf td { +table.bnf td { border: none; padding-left: 6pt; padding-right: 6pt; @@ -112,12 +112,12 @@ table.bnf td { padding-bottom: 1pt; } -table.bnf td:first-child { +table.bnf td:first-child { padding-right: 0pt; width: 8pt; } -table.bnf td:first-child td { +table.bnf td:first-child td { padding-left: 0pt; } diff --git a/docs/dex-format.html b/docs/dex-format.html index bc69dd099..cab9d4c5b 100644 --- a/docs/dex-format.html +++ b/docs/dex-format.html @@ -1305,7 +1305,7 @@ may appear in a <code>.dex</code> file. <tr> <td>data_off</td> <td>uint</td> - <td>offset from the start of the file to the start of the + <td>offset from the start of the file to the start of the <code>data</code> section. </td> </tr> @@ -1559,7 +1559,7 @@ be ordered by initial offset and must not overlap.</p> <td>data</td> <td>ubyte[]</td> <td>a series of MUTF-8 code units (a.k.a. octets, a.k.a. bytes) - followed by a byte of value <code>0</code>. See + followed by a byte of value <code>0</code>. See "MUTF-8 (Modified UTF-8) Encoding" above for details and discussion about the data format. <p><b>Note:</b> It is acceptable to have a string which includes @@ -1892,7 +1892,7 @@ be ordered by initial offset and must not overlap.</p> </tbody> </table> -<p><b>Note:</b> All elements' <code>field_id</code>s and +<p><b>Note:</b> All elements' <code>field_id</code>s and <code>method_id</code>s must refer to the same defining class.</p> <h3><code>encoded_field</code> Format</h3> @@ -2055,10 +2055,10 @@ be ordered by initial offset and must not overlap.</p> <tr> <td>debug_info_off</td> <td>uint</td> - <td>offset from the start of the file to the debug info (line numbers + - local variable info) sequence for this code, or <code>0</code> if - there simply is no information. The offset, if non-zero, should be - to a location in the <code>data</code> section. The format of + <td>offset from the start of the file to the debug info (line numbers + + local variable info) sequence for this code, or <code>0</code> if + there simply is no information. The offset, if non-zero, should be + to a location in the <code>data</code> section. The format of the data is specified by "<code>debug_info_item</code>" below. </td> </tr> @@ -2258,7 +2258,7 @@ The <code>line</code> register represents what source line number should be associated with the next positions table entry emitted by the state machine. It is initialized in the sequence header, and may change in positive or negative directions but must never be less than -<code>1</code>. The <code>source_file</code> register represents the +<code>1</code>. The <code>source_file</code> register represents the source file that the line number entries refer to. It is initialized to the value of <code>source_file_idx</code> in <code>class_def_item</code>. The other two variables, <code>prologue_end</code> and @@ -2282,7 +2282,7 @@ each register for the <code>DBG_RESTART_LOCAL</code> code.</p> <tr> <td>line_start</td> <td>uleb128</td> - <td>the initial value for the state machine's <code>line</code> register. + <td>the initial value for the state machine's <code>line</code> register. Does not represent an actual positions entry. </td> </tr> @@ -2351,7 +2351,7 @@ each register for the <code>DBG_RESTART_LOCAL</code> code.</p> <code>name_idx</code>: string index of the name<br/> <code>type_idx</code>: type index of the type </td> - <td>introduces a local variable at the current address. Either + <td>introduces a local variable at the current address. Either <code>name_idx</code> or <code>type_idx</code> may be <code>NO_INDEX</code> to indicate that that value is unknown. </td> @@ -2363,7 +2363,7 @@ each register for the <code>DBG_RESTART_LOCAL</code> code.</p> uleb128p1 name_idx<br/> uleb128p1 type_idx<br/> uleb128p1 sig_idx - </td> + </td> <td><code>register_num</code>: register that will contain local<br/> <code>name_idx</code>: string index of the name<br/> <code>type_idx</code>: type index of the type<br/> @@ -2385,7 +2385,7 @@ each register for the <code>DBG_RESTART_LOCAL</code> code.</p> <td>0x05</td> <td>uleb128 register_num</td> <td><code>register_num</code>: register that contained local</td> - <td>marks a currently-live local variable as out of scope at the current + <td>marks a currently-live local variable as out of scope at the current address </td> </tr> @@ -2404,9 +2404,9 @@ each register for the <code>DBG_RESTART_LOCAL</code> code.</p> <td>0x07</td> <td></td> <td><i>(none)</i></td> - <td>sets the <code>prologue_end</code> state machine register, - indicating that the next position entry that is added should be - considered the end of a method prologue (an appropriate place for + <td>sets the <code>prologue_end</code> state machine register, + indicating that the next position entry that is added should be + considered the end of a method prologue (an appropriate place for a method breakpoint). The <code>prologue_end</code> register is cleared by any special (<code>>= 0x0a</code>) opcode. </td> @@ -2416,9 +2416,9 @@ each register for the <code>DBG_RESTART_LOCAL</code> code.</p> <td>0x08</td> <td></td> <td><i>(none)</i></td> - <td>sets the <code>epilogue_begin</code> state machine register, - indicating that the next position entry that is added should be - considered the beginning of a method epilogue (an appropriate place + <td>sets the <code>epilogue_begin</code> state machine register, + indicating that the next position entry that is added should be + considered the beginning of a method epilogue (an appropriate place to suspend execution before method exit). The <code>epilogue_begin</code> register is cleared by any special (<code>>= 0x0a</code>) opcode. @@ -2427,7 +2427,7 @@ each register for the <code>DBG_RESTART_LOCAL</code> code.</p> <tr> <td>DBG_SET_FILE</td> <td>0x09</td> - <td>uleb128p1 name_idx</td> + <td>uleb128p1 name_idx</td> <td><code>name_idx</code>: string index of source file name; <code>NO_INDEX</code> if unknown </td> @@ -2438,7 +2438,7 @@ each register for the <code>DBG_RESTART_LOCAL</code> code.</p> </tr> <tr> <td><i>Special Opcodes</i></td> - <!-- When updating the range below, make sure to search for other + <!-- When updating the range below, make sure to search for other instances of 0x0a in this section. --> <td>0x0a…0xff</td> <td></td> @@ -2532,7 +2532,7 @@ address += (adjusted_opcode / DBG_LINE_RANGE) </tbody> </table> -<p><b>Note:</b> All elements' <code>field_id</code>s and +<p><b>Note:</b> All elements' <code>field_id</code>s and <code>method_id</code>s must refer to the same defining class.</p> <h3><code>field_annotation</code> Format</h3> diff --git a/docs/hello-world.html b/docs/hello-world.html index dbbaea6a3..7491a2821 100644 --- a/docs/hello-world.html +++ b/docs/hello-world.html @@ -22,7 +22,7 @@ files into a DEX file, and push that to the device. Here's a simple example: % <font color="green">dx --dex --output=foo.jar Foo.class</font><br> % <font color="green">adb push foo.jar /sdcard</font><br> % <font color="green">adb shell dalvikvm -cp /sdcard/foo.jar Foo</font><br> -Hello, world +Hello, world </code> </p><p> The <code>-cp</code> option sets the classpath. The initial directory diff --git a/docs/instruction-formats.css b/docs/instruction-formats.css index ee23c5c64..a2dc42f9d 100644 --- a/docs/instruction-formats.css +++ b/docs/instruction-formats.css @@ -124,6 +124,6 @@ table.format th:first-child + th + th + th { width: 22%; } -table.format p { +table.format p { margin-bottom: 0pt; }
\ No newline at end of file diff --git a/docs/java-bytecode.css b/docs/java-bytecode.css index 6075c0d69..48984b24b 100644 --- a/docs/java-bytecode.css +++ b/docs/java-bytecode.css @@ -10,7 +10,7 @@ } } -h1 { +h1 { text-align: center; } @@ -26,16 +26,16 @@ td { border-width: 0; } -td.outer { +td.outer { width: 25%; padding: 0; } -td.outer table { +td.outer table { width: 100%; } -td.outer td { +td.outer td { border-width: 0; background: #f8f8f8; padding: 1pt; @@ -43,11 +43,11 @@ td.outer td { padding-right: 2pt; } -tr.d td { +tr.d td { background: #dddddd; } -td.outer td + td + td { +td.outer td + td + td { font-family: monospace; font-weight: bold; padding-right: 5pt; diff --git a/docs/java-constraints.html b/docs/java-constraints.html index 2410a1e7f..9d3c4349d 100644 --- a/docs/java-constraints.html +++ b/docs/java-constraints.html @@ -30,7 +30,7 @@ constraint will fail during the Dx conversion or during verification in the VM itself. </p> - + <h2> Static constraints </h2> @@ -40,311 +40,311 @@ They usually can be checked without employing control or data-flow analysis techniques. </p> - + <table> <tr> <th> Identifier </th> - + <th> Description </th> - + <th> Spec equivalent </th> - + <th> Failure mode </th> </tr> - + <tr> <td> A1 </td> - + <td> - The <code>code</code> array must not be empty. + The <code>code</code> array must not be empty. </td> - + <td> 4.8.1.1 </td> - + <td> DX </td> </tr> - + <tr> <td> A2 </td> - + <td> - The <code>code</code> array must not be larger than 65535 bytes. + The <code>code</code> array must not be larger than 65535 bytes. </td> - + <td> 4.8.1.2 </td> - + <td> DX </td> </tr> - + <tr> <td> A3 </td> - + <td> The first opcode in <code>code</code> array must have index <code>0</code>. </td> - + <td> 4.8.1.3 </td> - + <td> DX </td> </tr> - + <tr> <td> A4 </td> - + <td> The <code>code</code> array must only contain valid opcodes. </td> - + <td> 4.8.1.4 </td> - + <td> DX </td> </tr> - + <tr> <td> A5 </td> - + <td> The index of instruction <code>n+1</code> must equal the index of instruction <code>n</code> plus the length of instruction <code>n</code>, taking into account a possible <code>wide</code> instruction. Opcodes modified by a <code>wide</code> instruction must - not be directly reachable. + not be directly reachable. </td> - + <td> 4.8.1.5 </td> - + <td> DX </td> </tr> - + <tr> <td> A6 </td> - + <td> The last instruction in <code>code</code> array must end at index - <code>code_length-1</code>. + <code>code_length-1</code>. </td> - + <td> 4.8.1.6 </td> - + <td> DX </td> </tr> - + <tr> <td> A7 </td> - + <td> All jump and branch targets must be opcodes within the same method. Opcodes modified by a <code>wide</code> instruction must not be - directly reachable via a jump or branch instruction. + directly reachable via a jump or branch instruction. </td> - + <td> 4.8.1.7 </td> - + <td> DX </td> </tr> - + <tr> <td> A8 </td> - + <td> All targets of a <code>tableswitch</code> instruction must be opcodes within the same method. Upper and lower bounds must be consistent. Opcodes modified by a <code>wide</code> instruction must not be - directly reachable via a <code>tableswitch</code> instruction. + directly reachable via a <code>tableswitch</code> instruction. </td> - + <td> 4.8.1.8 </td> - + <td> DX </td> </tr> - + <tr> <td> A9 </td> - + <td> All targets of a <code>lookupswitch</code> instruction must be opcodes within the same method. Its table must be consistent and sorted low-to-high. Opcodes modified by a <code>wide</code> instruction must - not be directly reachable via a <code>lookupswitch</code> instruction. + not be directly reachable via a <code>lookupswitch</code> instruction. </td> - + <td> 4.8.1.9 </td> - + <td> DX </td> </tr> - + <tr> <td> A10 </td> - + <td> The operands of <code>ldc</code> and <code>ldc_w</code> instructions must be valid indices into the constant pool. The respective entries must be of type <code>CONSTANT_Integer</code>, - <code>CONSTANT_Float</code>, or <code>CONSTANT_String</code>. + <code>CONSTANT_Float</code>, or <code>CONSTANT_String</code>. </td> - + <td> 4.8.1.10 </td> - + <td> DX </td> </tr> - + <tr> <td> A11 </td> - + <td> The operands of <code>ldc2_w</code> instructions must be valid indices into the constant pool. The respective entries must be of type <code>CONSTANT_Long</code> or <code>CONSTANT_Double</code>. The subsequent constant pool entry must be valid and remain unused. </td> - + <td> 4.8.1.11 </td> - + <td> DX </td> </tr> - + <tr> <td> A12 </td> - + <td> The Operands of <code>get<kind></code> and <code>put<kind></code> instructions must be valid indices into constant pool. The respective entries must be of type <code>CONSTANT_Fieldref</code>. </td> - + <td> 4.8.1.12 </td> - + <td> DX </td> </tr> - + <tr> <td> A13 </td> - + <td> The first two operands of <code>invokevirtual</code>, <code>invokespecial</code>, and <code>invokestatic</code> must form a valid 16-bit index into the constant pool. The respective entries must be of type <code>CONSTANT_Methodref</code>. </td> - + <td> 4.8.1.13 </td> - + <td> DX </td> </tr> - + <tr> <td> A14 </td> - + <td> Methods whose names start with '<' must only be invoked implicitly by the VM, not by class file code. The only exception is the instance initializer, which may be invoked by <code>invokespecial</code>. </td> - + <td> 4.8.1.14 </td> - + <td> DX </td> </tr> - + <tr> <td> A15 </td> - + <td> The first two operands of <code>invokeinterface</code> must form a valid 16-bit index into the constant pool. The entry must be of type @@ -352,21 +352,21 @@ specify number of local variables and the fourth operand must always be zero. </td> - + <td> 4.8.1.15 </td> - + <td> DX </td> </tr> - + <tr> <td> A16 </td> - + <td> The operands of <code>instanceof</code>, <code>checkcast</code>, <code>new</code>, and <code>anewarray</code> instructions must @@ -375,218 +375,218 @@ into the constant pool. All respective entries must be of type <code>CONSTANT_Class</code>. </td> - + <td> 4.8.1.16 </td> - + <td> DX </td> </tr> - + <tr> <td> A17 </td> - + <td> The dimensions of an array created by <code>anewarray</code> instructions must be less than <code>256</code>. </td> - + <td> 4.8.1.17 </td> - + <td> DX </td> </tr> - + <tr> <td> A18 </td> - + <td> The <code>new</code> instruction must not reference array classes, interfaces, or abstract classes. </td> - + <td> 4.8.1.18 </td> - + <td> DX </td> </tr> - + <tr> <td> A19 </td> - + <td> The type referenced by a <code>multinewarray</code> instruction must have at least as many dimensions as specified in the instruction. The - dimensions operand must not be <code>0</code> + dimensions operand must not be <code>0</code> </td> - + <td> 4.8.1.19 </td> - + <td> DX </td> </tr> - + <tr> <td> A20 </td> - + <td> The type referenced by a <code>newarray</code> instruction must be a valid, non-reference type. </td> - + <td> 4.8.1.20 </td> - + <td> DX </td> </tr> - + <tr> <td> A21 </td> - + <td> The index operand of instructions explicitly referencing single-width local variables must be non-negative and smaller than <code>max_locals</code>. </td> - + <td> 4.8.1.21 </td> - + <td> DX </td> </tr> - + <tr> <td> A22 </td> - + <td> The index operand of instructions implicitly referencing single-width local variables must be non-negative and smaller than <code>max_locals</code>. </td> - + <td> 4.8.1.22 </td> - + <td> DX </td> </tr> - + <tr> <td> A23 </td> - + <td> The index operand of instructions explicitly referencing double-width local variables must be non-negative and smaller than <code>max_locals-1</code>. </td> - + <td> 4.8.1.23 </td> - + <td> DX </td> </tr> - + <tr> <td> A24 </td> - + <td> The index operand of instructions implicitly referencing double-width local variables must be non-negative and smaller than <code>max_locals-1</code>. </td> - + <td> 4.8.1.24 </td> - + <td> DX </td> </tr> - + <tr> <td> A25 </td> - + <td> The index operand of <code>wide</code> instructions explicitly referencing single-width local variables must be non-negative and smaller than <code>max_locals</code>. </td> - + <td> 4.8.1.25 </td> - + <td> DX </td> </tr> - + <tr> <td> A26 </td> - + <td> The index operand of <code>wide</code> instructions explicitly referencing double-width local variables must be non-negative and smaller than <code>max_locals-1</code>. </td> - + <td> 4.8.1.25 </td> - + <td> DX </td> </tr> </table> - + <h2> Structural constraints </h2> - + <p> Structural constraints are constraints on relationships between several elements of the bytecode. They usually can't be checked without employing @@ -598,466 +598,466 @@ <th> Identifier </th> - + <th> Description </th> - + <th> Spec equivalent </th> - + <th> Failure mode </th> </tr> - + <tr> <td> B1 </td> - + <td> The number and types of arguments (operands and local variables) must always match the instruction. </td> - + <td> 4.8.2.1 </td> - + <td> DX </td> </tr> - + <tr> <td> B2 </td> - + <td> The operand stack must have the same depth for all executions paths - leading to an instruction. + leading to an instruction. </td> - + <td> 4.8.2.2 </td> - + <td> DX </td> </tr> - + <tr> <td> B3 </td> - + <td> - Local variable pairs must never be broken up. + Local variable pairs must never be broken up. </td> - + <td> 4.8.2.3 </td> - + <td> DX </td> </tr> - + <tr> <td> B4 </td> - + <td> A local variable (or pair) has to be assigned first before it can be read. </td> - + <td> 4.8.2.4 </td> - + <td> DX </td> </tr> - + <tr> <td> B5 </td> - + <td> - The operand stack must never grow beyond <code>max_stack</code>. + The operand stack must never grow beyond <code>max_stack</code>. </td> - + <td> 4.8.2.5 </td> - + <td> DX </td> </tr> - + <tr> <td> B6 </td> - + <td> - The operand stack must never underflow. + The operand stack must never underflow. </td> - + <td> 4.8.2.6 </td> - + <td> DX </td> </tr> - + <tr> <td> B7 </td> - + <td> An <code>invokespecial</code> instruction must only invoke an instance initializer or a method in the current class or one of its - superclasses. + superclasses. </td> - + <td> 4.8.2.7 </td> - + <td> VM </td> </tr> - + <tr> <td> B8 </td> - + <td> An instance initializer must only be invoked on an uninitialized - instance residing on the operand stack. + instance residing on the operand stack. </td> - + <td> 4.8.2.8 </td> - + <td> VM </td> </tr> - + <tr> <td> B9 </td> - + <td> Instance methods may only be invoked on and instance fields may only - be accessed on already initialized instances. + be accessed on already initialized instances. </td> - + <td> 4.8.2.9 </td> - + <td> VM </td> </tr> - + <tr> <td> B10 </td> - + <td> The must be no backwards branches with uninitialized instances on the operand stack or in local variables. There must be no code protected by an exception handler that contains local variables with uninitialized instances. </td> - + <td> 4.8.2.10 </td> - + <td> DX </td> </tr> - + <tr> <td> B11 </td> - + <td> An instance initializer must call another instance initializer (same class or superclass) before any instance members can be accessed. Exceptions are non-inherited instance fields, which can be assigned before calling another initializer, and the <code>Object</code> class - in general. + in general. </td> - + <td> 4.8.2.11 </td> - + <td> VM </td> </tr> - + <tr> <td> B12 </td> - + <td> All actual method arguments must be assignment-compatible with formal - arguments. + arguments. </td> - + <td> 4.8.2.12 </td> - + <td> VM </td> </tr> - + <tr> <td> B13 </td> - + <td> For each instance method invocation, the actual instance must be assignment-compatible with the class or interface specified in the instruction. </td> - + <td> 4.8.2.13 </td> - + <td> VM </td> </tr> - + <tr> <td> B14 </td> - + <td> - A returns instruction must match its method's return type. + A returns instruction must match its method's return type. </td> - + <td> 4.8.2.14 </td> - + <td> VM </td> </tr> - + <tr> <td> B15 </td> - + <td> When accessing protected members of a superclass, the actual type of the instance being accessed must be either the current class or one of its subclasses. </td> - + <td> 4.8.2.15 </td> - + <td> VM </td> </tr> - + <tr> <td> B16 </td> - + <td> The type of a value stored into a static field must be assignment-compatible with or convertible to the field's type. </td> - + <td> 4.8.2.16 </td> - + <td> VM </td> </tr> - + <tr> <td> B17 </td> - + <td> The type of a value stored into a field must be assignment-compatible with or convertible to the field's type. </td> - + <td> 4.8.2.17 </td> - + <td> VM </td> </tr> - + <tr> <td> B18 </td> - + <td> The type of every value stored into an array must be assignment-compatible with the array's component type. </td> - + <td> 4.8.2.18 </td> - + <td> VM </td> </tr> - + <tr> <td> B19 </td> - + <td> The operand of an <code>athrow</code> instruction must be - assignment-compatible with <code>java.lang.Throwable</code>. + assignment-compatible with <code>java.lang.Throwable</code>. </td> - + <td> 4.8.2.19 </td> - + <td> VM </td> </tr> - + <tr> <td> B20 </td> - + <td> The last reachable instruction of a method must either be a backwards jump or branch, a return, or an <code>athrow</code> instruction. It must not be possible to leave the <code>code</code> array at the bottom. </td> - + <td> 4.8.2.20 </td> - + <td> VM </td> </tr> - + <tr> <td> B21 </td> - + <td> Local variable values must not be used as return addresses. </td> - + <td> 4.8.2.21 </td> - + <td> VM </td> </tr> - + <tr> <td> B22 </td> - + <td> There must be a single, uniquely determined return instruction per subroutine call. </td> - + <td> 4.8.2.22 </td> - + <td> VM </td> </tr> - + <tr> <td> B23 </td> - + <td> Subroutine calls must not be directly or indirectly self-recursive. </td> - + <td> 4.8.2.23 </td> - + <td> DX </td> </tr> - + <tr> <td> B24 </td> - + <td> <code>ReturnAddress</code> instances must not be reused. If a subroutine returns to a <code>ReturnAddress</code> further up the @@ -1065,16 +1065,16 @@ <code>ReturnAddress</code> instances further down the stack must never be used. </td> - + <td> 4.8.2.24 </td> - + <td> DX </td> </tr> - + </table> </body> </html> diff --git a/docs/jni-tips.html b/docs/jni-tips.html index fc63cca46..76cb03fde 100644 --- a/docs/jni-tips.html +++ b/docs/jni-tips.html @@ -124,7 +124,7 @@ the IDs is to add a piece of code that looks like this to the appropriate class: * class/field/method IDs for this class. Returns false on failure. */ native private static boolean nativeClassInit(); - + /* * Invoke the native initializer when the class is loaded. */ diff --git a/docs/libraries.html b/docs/libraries.html index e1c3035f1..ed2fa7263 100644 --- a/docs/libraries.html +++ b/docs/libraries.html @@ -6,7 +6,7 @@ <head> <title>Dalvik Libraries</title> - + <link rel=stylesheet href="dex-format.css"> <link href="prettify.css" type="text/css" rel="stylesheet" /> <script type="text/javascript" src="prettify.js"></script> diff --git a/docs/opcodes/opcode-04-move-wide.html b/docs/opcodes/opcode-04-move-wide.html index e043be9d3..8a3bd0078 100644 --- a/docs/opcodes/opcode-04-move-wide.html +++ b/docs/opcodes/opcode-04-move-wide.html @@ -19,7 +19,7 @@ Move the contents of one register-pair to another. <p> Note: It is legal to move from vN to either vN-1 or vN+1, so implementations must arrange for both halves of a register pair to be read before anything is -written. +written. </p> <h2>Details</h2> diff --git a/docs/opcodes/opcode-07-move-object.html b/docs/opcodes/opcode-07-move-object.html index e62750dc7..f29027706 100644 --- a/docs/opcodes/opcode-07-move-object.html +++ b/docs/opcodes/opcode-07-move-object.html @@ -79,7 +79,7 @@ Move the contents of one object-bearing register to another. becomes undefined. </li> </ul> - + <h2>Exceptions</h2> <p> diff --git a/docs/opcodes/opcode-0a-move-result.html b/docs/opcodes/opcode-0a-move-result.html index f043d1373..616087f73 100644 --- a/docs/opcodes/opcode-0a-move-result.html +++ b/docs/opcodes/opcode-0a-move-result.html @@ -17,7 +17,7 @@ Move the single-word non-object result of the most recent invoke-kind into the indicated register. This must be done as the instruction immediately after an invoke-kind whose (single-word, non-object) result is not to be ignored; -anywhere else is invalid. +anywhere else is invalid. </p> <h2>Details</h2> @@ -57,7 +57,7 @@ anywhere else is invalid. <li> The result delivered by the invoke-kind instruction must not be a reference value or require a register pair. - </li> + </li> </ul> <h2>Behavior</h2> @@ -76,7 +76,7 @@ anywhere else is invalid. becomes undefined. </li> </ul> - + <h2>Exceptions</h2> <p> @@ -89,7 +89,7 @@ None. This instruction can also be thought of as reading the contents of a special "result" register that is made valid and defined by executing a non-void return instruction or a filled-new-array instruction. The execution of any other -instruction (including this one) renders this special register invalid. +instruction (including this one) renders this special register invalid. </p> </body> diff --git a/docs/opcodes/opcode-0b-move-result-wide.html b/docs/opcodes/opcode-0b-move-result-wide.html index c3e57793e..c53517aa5 100644 --- a/docs/opcodes/opcode-0b-move-result-wide.html +++ b/docs/opcodes/opcode-0b-move-result-wide.html @@ -17,7 +17,7 @@ Move the double-word result of the most recent invoke-kind into the indicated register pair. This must be done as the instruction immediately after an invoke-kind whose (double-word) result is not to be ignored; anywhere else is -invalid. +invalid. </p> <h2>Details</h2> @@ -60,7 +60,7 @@ invalid. or a double value. </li> </ul> - + <h2>Behavior</h2> <ul> @@ -81,7 +81,7 @@ invalid. becomes undefined. </li> </ul> - + <h2>Exceptions</h2> <p> diff --git a/docs/opcodes/opcode-0c-move-result-object.html b/docs/opcodes/opcode-0c-move-result-object.html index f065fed2e..153873598 100644 --- a/docs/opcodes/opcode-0c-move-result-object.html +++ b/docs/opcodes/opcode-0c-move-result-object.html @@ -77,7 +77,7 @@ is invalid. becomes undefined. </li> </ul> - + <h2>Exceptions</h2> <p> @@ -90,7 +90,7 @@ None. This instruction can also be thought of as reading the contents of a special "result" register that is made valid and defined by executing a non-void return instruction or a filled-new-array instruction. The execution of any other -instruction (including this one) renders this special register invalid. +instruction (including this one) renders this special register invalid. </p> </body> diff --git a/docs/opcodes/opcode-0d-move-exception.html b/docs/opcodes/opcode-0d-move-exception.html index 3c3bc83d1..0f756d02e 100644 --- a/docs/opcodes/opcode-0d-move-exception.html +++ b/docs/opcodes/opcode-0d-move-exception.html @@ -17,7 +17,7 @@ Save a just-caught exception into the given register. This should be the first instruction of any exception handler whose caught exception is not to be ignored, and this instruction may only ever occur as the first instruction of an -exception handler; anywhere else is invalid. +exception handler; anywhere else is invalid. </p> <h2>Details</h2> @@ -51,7 +51,7 @@ exception handler; anywhere else is invalid. the handlers defined for the method in the Dex file. </li> </ul> - + <h2>Behavior</h2> <ul> diff --git a/docs/opcodes/opcode-0e-return-void.html b/docs/opcodes/opcode-0e-return-void.html index 7a9431e3e..0498f81e1 100644 --- a/docs/opcodes/opcode-0e-return-void.html +++ b/docs/opcodes/opcode-0e-return-void.html @@ -14,7 +14,7 @@ <h2>Purpose</h2> <p> -Return from a void method. +Return from a void method. </p> <h2>Details</h2> @@ -72,8 +72,8 @@ Return from a void method. </li> </ul> </li> -</ul> - +</ul> + <h2>Exceptions</h2> <p> diff --git a/docs/opcodes/opcode-0f-return.html b/docs/opcodes/opcode-0f-return.html index 33e0b7c2e..4de55ea9c 100644 --- a/docs/opcodes/opcode-0f-return.html +++ b/docs/opcodes/opcode-0f-return.html @@ -52,8 +52,8 @@ Return from a single-width (32-bit) non-object value-returning method. <li> The type of vA must match the return type of the method. </li> -</ul> - +</ul> + <h2>Behavior</h2> <ul> @@ -89,7 +89,7 @@ Return from a single-width (32-bit) non-object value-returning method. </ul> </li> </ul> - + <h2>Exceptions</h2> <p> diff --git a/docs/opcodes/opcode-10-return-wide.html b/docs/opcodes/opcode-10-return-wide.html index f1a6b83c7..4ccfce43d 100644 --- a/docs/opcodes/opcode-10-return-wide.html +++ b/docs/opcodes/opcode-10-return-wide.html @@ -53,7 +53,7 @@ Return from a double-width (64-bit) value-returning method. The type of vA must match the return type of the method. </li> </ul> - + <h2>Behavior</h2> <ul> diff --git a/docs/opcodes/opcode-11-return-object.html b/docs/opcodes/opcode-11-return-object.html index 369233ca8..b4866ed70 100644 --- a/docs/opcodes/opcode-11-return-object.html +++ b/docs/opcodes/opcode-11-return-object.html @@ -84,7 +84,7 @@ Return from an object-returning method. </li> </ul> </li> -</ul> +</ul> <h2>Exceptions</h2> diff --git a/docs/opcodes/opcode-12-const.html b/docs/opcodes/opcode-12-const.html index b2d894fe3..d2b6ef9eb 100644 --- a/docs/opcodes/opcode-12-const.html +++ b/docs/opcodes/opcode-12-const.html @@ -15,7 +15,7 @@ <p> Move the given literal value (sign-extended to 32 bits, if necessary) into the -specified register. +specified register. </p> <h2>Details</h2> @@ -72,7 +72,7 @@ specified register. <ul> <li> If we are executing the /high16 variant, then B is left-shifted by 16 - bits, that is, B'=B << 0x10 + bits, that is, B'=B << 0x10 <li> Otherwise, if B is a 4 bit or 16 bit constant, it is sign-extended to 32 bits, that is, B'=sign-extended(B). @@ -91,7 +91,7 @@ specified register. If v(A+1) is the upper half of a register pair, v(A+1)' becomes undefined. </li> </ul> - + <h2>Exceptions</h2> <p> diff --git a/docs/opcodes/opcode-16-const-wide.html b/docs/opcodes/opcode-16-const-wide.html index ac92b04cd..6197e3556 100644 --- a/docs/opcodes/opcode-16-const-wide.html +++ b/docs/opcodes/opcode-16-const-wide.html @@ -15,7 +15,7 @@ <p> Move the given literal value (sign-extended to 64 bits) into the specified -register-pair. +register-pair. </p> <h2>Details</h2> @@ -98,7 +98,7 @@ register-pair. <li> If v(A+2) is the upper half of a register pair, v(A+2)' becomes undefined. </li> -</ul> +</ul> <h2>Exceptions</h2> diff --git a/docs/opcodes/opcode-1a-const-string.html b/docs/opcodes/opcode-1a-const-string.html index bd89b70c6..d10c11584 100644 --- a/docs/opcodes/opcode-1a-const-string.html +++ b/docs/opcodes/opcode-1a-const-string.html @@ -15,7 +15,7 @@ <p> Move a reference to the string specified by the given index into the specified -register. +register. </p> <h2>Details</h2> @@ -52,7 +52,7 @@ register. </li> <li> B must be a valid index into the string constant pool. - </li> + </li> </ul> <h2>Behavior</h2> @@ -72,7 +72,7 @@ register. </li> <li> If v(A+1) is the upper half of a register pair, v(A+1)' becomes undefined. - </li> + </li> </ul> <h2>Exceptions</h2> diff --git a/docs/opcodes/opcode-1b-const-class.html b/docs/opcodes/opcode-1b-const-class.html index 7a33e771b..f40b986b4 100644 --- a/docs/opcodes/opcode-1b-const-class.html +++ b/docs/opcodes/opcode-1b-const-class.html @@ -16,7 +16,7 @@ <p> Move a reference to the class specified by the given index into the specified register. In the case where the indicated type is primitive, this will store a -reference to the primitive type's degenerate class. +reference to the primitive type's degenerate class. </p> <h2>Details</h2> diff --git a/docs/opcodes/opcode-1d-monitor-enter.html b/docs/opcodes/opcode-1d-monitor-enter.html index cecc939a1..28c10f414 100644 --- a/docs/opcodes/opcode-1d-monitor-enter.html +++ b/docs/opcodes/opcode-1d-monitor-enter.html @@ -14,7 +14,7 @@ <h2>Purpose</h2> <p> -Acquire the monitor for the indicated object. +Acquire the monitor for the indicated object. </p> <h2>Details</h2> @@ -46,7 +46,7 @@ Acquire the monitor for the indicated object. Register vA must contain a reference to an object. </li> </ul> - + <h2>Behavior</h2> <ul> diff --git a/docs/opcodes/opcode-1e-monitor-exit.html b/docs/opcodes/opcode-1e-monitor-exit.html index bee711d1d..cd7b16506 100644 --- a/docs/opcodes/opcode-1e-monitor-exit.html +++ b/docs/opcodes/opcode-1e-monitor-exit.html @@ -25,7 +25,7 @@ run. This definition makes it possible for a method to use a monitor cleanup catch-all (e.g., finally) block as the monitor cleanup for that block itself, as a way to handle the arbitrary exceptions that might get thrown due to the historical implementation of Thread.stop(), while still managing to have proper -monitor hygiene. +monitor hygiene. </p> <h2>Details</h2> @@ -57,7 +57,7 @@ monitor hygiene. Register vA must contain a reference to an object. </li> </ul> - + <h2>Behavior</h2> <ul> @@ -83,7 +83,7 @@ monitor hygiene. an exception handler it cannot be distinguished from the same type of exception being thrown immediately after the monitor-exit instruction. </li> -</ul> +</ul> <h2>Exceptions</h2> diff --git a/docs/opcodes/opcode-1f-check-cast.html b/docs/opcodes/opcode-1f-check-cast.html index 6325ca47b..8eedd2dd7 100644 --- a/docs/opcodes/opcode-1f-check-cast.html +++ b/docs/opcodes/opcode-1f-check-cast.html @@ -15,7 +15,7 @@ <p> Throw if the reference in the given register cannot be cast to the indicated -type. The type must be a reference type (not a primitive type). +type. The type must be a reference type (not a primitive type). </p> <h2>Details</h2> @@ -53,8 +53,8 @@ type. The type must be a reference type (not a primitive type). <li> Type pool entry B must contain a valid type descriptor for a reference type. </li> -</ul> - +</ul> + <h2>Behavior</h2> <ul> diff --git a/docs/opcodes/opcode-20-instance-of.html b/docs/opcodes/opcode-20-instance-of.html index 5dbfef7c6..88076d84d 100644 --- a/docs/opcodes/opcode-20-instance-of.html +++ b/docs/opcodes/opcode-20-instance-of.html @@ -55,7 +55,7 @@ a primitive type). <li> Type constant pool entry C must contain a valid type descriptor for a reference type. - </li> + </li> </ul> <h2>Behavior</h2> @@ -88,7 +88,7 @@ a primitive type). </li> <li> If v(A+1) is the upper half of a register pair, v(A+1)' becomes undefined. - </li> + </li> <h2>Exceptions</h2> diff --git a/docs/opcodes/opcode-21-array-length.html b/docs/opcodes/opcode-21-array-length.html index 576774215..8072a7cb4 100644 --- a/docs/opcodes/opcode-21-array-length.html +++ b/docs/opcodes/opcode-21-array-length.html @@ -48,7 +48,7 @@ in entries. Register vB must contain a reference to an array. </li> </ul> - + <h2>Behavior</h2> <ul> diff --git a/docs/opcodes/opcode-22-new-instance.html b/docs/opcodes/opcode-22-new-instance.html index ec0a34719..bdcfc3efe 100644 --- a/docs/opcodes/opcode-22-new-instance.html +++ b/docs/opcodes/opcode-22-new-instance.html @@ -15,7 +15,7 @@ <p> Construct a new instance of the indicated type, storing a reference to it in the -destination. The type must refer to a non-array class. +destination. The type must refer to a non-array class. </p> <h2>Details</h2> @@ -77,7 +77,7 @@ destination. The type must refer to a non-array class. </li> <li> If v(A+1) is the upper part of a register pair, v(A+1)' becomes undefined. - </li> + </li> </ul> <h2>Exceptions</h2> @@ -88,7 +88,7 @@ destination. The type must refer to a non-array class. </li> <li> All exceptions that are possible during instantiation can occur. - </li> + </li> </ul> </body> diff --git a/docs/opcodes/opcode-23-new-array.html b/docs/opcodes/opcode-23-new-array.html index be46a49b3..29327e921 100644 --- a/docs/opcodes/opcode-23-new-array.html +++ b/docs/opcodes/opcode-23-new-array.html @@ -15,7 +15,7 @@ <p> Construct a new array of the indicated type and size. The type must be an array -type. +type. </p> <h2>Details</h2> @@ -56,7 +56,7 @@ type. </li> <li> Type constant pool entry C must contain a valid array type descriptor. - </li> + </li> </ul> <h2>Behavior</h2> @@ -87,7 +87,7 @@ type. </li> <li> If v(A+1) is the upper half of a register pair, v(A+1)' becomes undefined. - </li> + </li> </ul> <h2>Exceptions</h2> @@ -101,7 +101,7 @@ type. </li> <li> All exceptions that are possible during instantiation can occur. - </li> + </li> </ul> </body> diff --git a/docs/opcodes/opcode-24-filled-new-array.html b/docs/opcodes/opcode-24-filled-new-array.html index cba0c5d61..1dfa0896f 100644 --- a/docs/opcodes/opcode-24-filled-new-array.html +++ b/docs/opcodes/opcode-24-filled-new-array.html @@ -21,7 +21,7 @@ stored as a "result" in the same way that the method invocation instructions store their results, so the constructed instance must be moved to a register with a subsequent move-result-object instruction (if it is to be used). </p> - + <h2>Details</h2> <table class="instruc"> @@ -80,9 +80,9 @@ with a subsequent move-result-object instruction (if it is to be used). <li> If the element type is a reference type, then all actual arguments (vD .. vA, depending on B) must be references, too. - </li> + </li> </ul> - + <h2>Behavior</h2> <ul> @@ -115,7 +115,7 @@ with a subsequent move-result-object instruction (if it is to be used). If B > 3 then R[3] = vG </li> <li> - If B > 4 then R[4] = vA + If B > 4 then R[4] = vA </li> </ul> </li> @@ -123,7 +123,7 @@ with a subsequent move-result-object instruction (if it is to be used). No reference to R is stored in any register. Instead, R can be accessed by a move-result-object instruction immediately following this filled-new-array instruction. - </li> + </li> </ul> <h2>Exceptions</h2> @@ -137,7 +137,7 @@ with a subsequent move-result-object instruction (if it is to be used). </li> <li> All exceptions that are possible during instantiation can occur. - </li> + </li> </ul> </body> diff --git a/docs/opcodes/opcode-25-filled-new-array-range.html b/docs/opcodes/opcode-25-filled-new-array-range.html index 944a8b164..2ee750562 100644 --- a/docs/opcodes/opcode-25-filled-new-array-range.html +++ b/docs/opcodes/opcode-25-filled-new-array-range.html @@ -16,7 +16,7 @@ <p> Construct an array of the given type and size, filling it with the supplied contents. Clarifications and restrictions are the same as filled-new-array, -described above. +described above. </p> <h2>Details</h2> @@ -70,7 +70,7 @@ described above. </li> <li> The element size of the type denoted by B must be no larger than 32 bits. - </li> + </li> </ul> <h2>Behavior</h2> @@ -102,7 +102,7 @@ described above. ... </li> <li> - J[vA] = vN + J[vA] = vN </li> </ul> </li> @@ -110,7 +110,7 @@ described above. No reference to J is stored in any register. Instead, J can be accessed by a move-result-object instruction immediately following this filled-new-array instruction. - </li> + </li> </ul> <h2>Exceptions</h2> diff --git a/docs/opcodes/opcode-26-fill-array-data.html b/docs/opcodes/opcode-26-fill-array-data.html index c5040a5ba..77b45ae0c 100644 --- a/docs/opcodes/opcode-26-fill-array-data.html +++ b/docs/opcodes/opcode-26-fill-array-data.html @@ -21,7 +21,7 @@ of primitives, and the data table must match it in type and size. Note: The address of the table is guaranteed to be even (that is, 4-byte aligned). If the code size of the method is otherwise odd, then an extra code unit is inserted between the main code and the table whose value is the same as -a nop. +a nop. </p> <h2>Details</h2> @@ -69,8 +69,8 @@ a nop. <li> The table size must be equal or smaller than the array length. </li> -</ul> - +</ul> + <h2>Behavior</h2> <ul> @@ -88,7 +88,7 @@ a nop. <ul> <li> - NullPointerException if vA is null. + NullPointerException if vA is null. </li> </ul> diff --git a/docs/opcodes/opcode-27-throw.html b/docs/opcodes/opcode-27-throw.html index f4416ce3c..1a0eb0937 100644 --- a/docs/opcodes/opcode-27-throw.html +++ b/docs/opcodes/opcode-27-throw.html @@ -50,7 +50,7 @@ Throw the indicated exception. to the usual rules of the Java programming language. </li> </ul> - + <h2>Behavior</h2> <ul> @@ -73,7 +73,7 @@ Throw the indicated exception. </li> <li> Otherwise, the indicated exception. - </li> + </li> </ul> </body> diff --git a/docs/opcodes/opcode-28-goto.html b/docs/opcodes/opcode-28-goto.html index 5ca92b6f5..fec294c1b 100644 --- a/docs/opcodes/opcode-28-goto.html +++ b/docs/opcodes/opcode-28-goto.html @@ -18,7 +18,7 @@ Unconditionally jump to the indicated instruction. </p> <p> Note: The branch offset may not be 0. (A spin loop may be legally constructed -either with goto/32 or by including a nop as a target before the branch.) +either with goto/32 or by including a nop as a target before the branch.) </p> <h2>Details</h2> @@ -48,7 +48,7 @@ either with goto/32 or by including a nop as a target before the branch.) </li> <li> A must not be 0. - </li> + </li> </ul> <h2>Behavior</h2> @@ -60,7 +60,7 @@ either with goto/32 or by including a nop as a target before the branch.) </li> <li> Executions resumes at PC'. - </li> + </li> </ul> <h2>Exceptions</h2> diff --git a/docs/opcodes/opcode-29-goto-16.html b/docs/opcodes/opcode-29-goto-16.html index abe4aece7..791456b60 100644 --- a/docs/opcodes/opcode-29-goto-16.html +++ b/docs/opcodes/opcode-29-goto-16.html @@ -18,7 +18,7 @@ Unconditionally jump to the indicated instruction. </p> <p> Note: The branch offset may not be 0. (A spin loop may be legally constructed -either with goto/32 or by including a nop as a target before the branch.) +either with goto/32 or by including a nop as a target before the branch.) </p> <h2>Details</h2> @@ -48,7 +48,7 @@ either with goto/32 or by including a nop as a target before the branch.) </li> <li> A must not be 0. - </li> + </li> </ul> <h2>Behavior</h2> @@ -60,7 +60,7 @@ either with goto/32 or by including a nop as a target before the branch.) </li> <li> Executions resumes at PC'. - </li> + </li> </ul> <h2>Exceptions</h2> diff --git a/docs/opcodes/opcode-2a-goto-32.html b/docs/opcodes/opcode-2a-goto-32.html index 7d64ac979..b98dd8565 100644 --- a/docs/opcodes/opcode-2a-goto-32.html +++ b/docs/opcodes/opcode-2a-goto-32.html @@ -53,7 +53,7 @@ Unconditionally jump to the indicated instruction. </li> <li> Executions resumes at PC'. - </li> + </li> </ul> <h2>Exceptions</h2> diff --git a/docs/opcodes/opcode-2b-packed-switch.html b/docs/opcodes/opcode-2b-packed-switch.html index 73125bdcc..b2d525138 100644 --- a/docs/opcodes/opcode-2b-packed-switch.html +++ b/docs/opcodes/opcode-2b-packed-switch.html @@ -22,7 +22,7 @@ fall through to the next instruction if there is no match. Note: The address of the table is guaranteed to be even (that is, 4-byte aligned). If the code size of the method is otherwise odd, then an extra code unit is inserted between the main code and the table whose value is the same as -a nop. +a nop. </p> <h2>Details</h2> @@ -92,7 +92,7 @@ a nop. statement. </li> </ul> - + <h2>Exceptions</h2> <p> diff --git a/docs/opcodes/opcode-2c-sparse-switch.html b/docs/opcodes/opcode-2c-sparse-switch.html index cec581e59..9d81eda45 100644 --- a/docs/opcodes/opcode-2c-sparse-switch.html +++ b/docs/opcodes/opcode-2c-sparse-switch.html @@ -22,7 +22,7 @@ there is no match. Note: The address of the table is guaranteed to be even (that is, 4-byte aligned). If the code size of the method is otherwise odd, then an extra code unit is inserted between the main code and the table whose value is the same as -a nop. +a nop. </p> <h2>Details</h2> @@ -87,11 +87,11 @@ a nop. </li> </ul> </li> - <li> + <li> Otherwise execution continues at the instruction following the sparse-switch statement. </li> -</ul> +</ul> <h2>Exceptions</h2> diff --git a/docs/opcodes/opcode-2d-cmp-kind.html b/docs/opcodes/opcode-2d-cmp-kind.html index 431ccd40d..f55a006c9 100644 --- a/docs/opcodes/opcode-2d-cmp-kind.html +++ b/docs/opcodes/opcode-2d-cmp-kind.html @@ -24,7 +24,7 @@ NaN comparisons, and "lt bias" instructions return -1. For example, to check to see if floating point a < b, then it is advisable to use cmpg-float; a result of -1 indicates that the test was true, and the other values indicate it was false either due to a valid comparison or because one -or the other values was NaN. +or the other values was NaN. </p> <h2>Details</h2> @@ -71,7 +71,7 @@ or the other values was NaN. For the -long variant, both both vB and vC must be the lower part of a register pair holding a long value. </li> -</ul> +</ul> <h2>Behavior</h2> @@ -109,8 +109,8 @@ or the other values was NaN. <li> If v(A+1) is the upper half of a register pair, v(A+1)' becomes undefined. </li> -</ul> - +</ul> + <h2>Exceptions</h2> <p> diff --git a/docs/opcodes/opcode-32-if-test.html b/docs/opcodes/opcode-32-if-test.html index af0adb265..ee394f6d1 100644 --- a/docs/opcodes/opcode-32-if-test.html +++ b/docs/opcodes/opcode-32-if-test.html @@ -20,7 +20,7 @@ specified. <p> Note: The branch offset may not be 0. (A spin loop may be legally constructed either by branching around a backward goto or by including a nop as a target -before the branch.) +before the branch.) </p> <h2>Details</h2> @@ -68,7 +68,7 @@ before the branch.) </li> C must of a signed offset that, when added to the PC of the instruction, points to a valid bytecode instruction inside the same method. - </li> + </li> </ul> <h2>Behavior</h2> @@ -89,7 +89,7 @@ before the branch.) </li> </ul> </li> -</ul> +</ul> <h2>Exceptions</h2> diff --git a/docs/opcodes/opcode-38-if-testz.html b/docs/opcodes/opcode-38-if-testz.html index 354e89472..060bbdb60 100644 --- a/docs/opcodes/opcode-38-if-testz.html +++ b/docs/opcodes/opcode-38-if-testz.html @@ -20,7 +20,7 @@ as specified. <p> Note: The branch offset may not be 0. (A spin loop may be legally constructed either by branching around a backward goto or by including a nop as a target - before the branch.) + before the branch.) </p> <h2>Details</h2> @@ -67,7 +67,7 @@ as specified. </li> <li> B must not be 0. - </li> + </li> </ul> <h2>Behavior</h2> diff --git a/docs/opcodes/opcode-44-aget.html b/docs/opcodes/opcode-44-aget.html index b9d6f23c2..6e8836f3b 100644 --- a/docs/opcodes/opcode-44-aget.html +++ b/docs/opcodes/opcode-44-aget.html @@ -15,7 +15,7 @@ <p> Perform the identified array operation at the identified index of the given -array, storing into the value register. +array, storing into the value register. </p> <h2>Details</h2> @@ -63,7 +63,7 @@ array, storing into the value register. </li> <li> Register vC must contain an integer value. - </li> + </li> </ul> <h2>Behavior</h2> @@ -97,7 +97,7 @@ array, storing into the value register. v(A+2)' becomes undefined. </li> </ul> - + <h2>Exceptions</h2> <ul> @@ -107,7 +107,7 @@ array, storing into the value register. <li> ArrayIndexOutOfBoundsException if vC < 0 or vC >= array.length. </li> -</ul> +</ul> </body> </html> diff --git a/docs/opcodes/opcode-7b-unop.html b/docs/opcodes/opcode-7b-unop.html index 1068a2555..8b0609210 100644 --- a/docs/opcodes/opcode-7b-unop.html +++ b/docs/opcodes/opcode-7b-unop.html @@ -84,7 +84,7 @@ result in the destination register. <ul> <li> - The given operation <unop> is performed according to the semantics + The given operation <unop> is performed according to the semantics specified in table XXX. </li> <li> diff --git a/docs/prettify.js b/docs/prettify.js index c9541185f..9e99fc672 100644 --- a/docs/prettify.js +++ b/docs/prettify.js @@ -969,7 +969,7 @@ function _pr_isIE6() { var newlineRe = /\r\n?|\n/g; var trailingSpaceRe = /[ \r\n]$/; var lastWasSpace = true; // the last text chunk emitted ended with a space. - + // A helper function that is responsible for opening sections of decoration // and outputing properly escaped chunks of source function emitTextUpTo(sourceIdx) { |
