diff options
| author | The Android Open Source Project <initial-contribution@android.com> | 2008-12-17 18:03:55 -0800 |
|---|---|---|
| committer | The Android Open Source Project <initial-contribution@android.com> | 2008-12-17 18:03:55 -0800 |
| commit | 89c1feb0a69a7707b271086e749975b3f7acacf7 (patch) | |
| tree | 003624a03635e05020a47fc72a2c42934e3f0703 /docs/opcodes/opcode-1b-const-class.html | |
| parent | 2ad60cfc28e14ee8f0bb038720836a4696c478ad (diff) | |
| download | android_dalvik-89c1feb0a69a7707b271086e749975b3f7acacf7.tar.gz android_dalvik-89c1feb0a69a7707b271086e749975b3f7acacf7.tar.bz2 android_dalvik-89c1feb0a69a7707b271086e749975b3f7acacf7.zip | |
Code drop from //branches/cupcake/...@124589
Diffstat (limited to 'docs/opcodes/opcode-1b-const-class.html')
| -rw-r--r-- | docs/opcodes/opcode-1b-const-class.html | 92 |
1 files changed, 92 insertions, 0 deletions
diff --git a/docs/opcodes/opcode-1b-const-class.html b/docs/opcodes/opcode-1b-const-class.html new file mode 100644 index 000000000..7a33e771b --- /dev/null +++ b/docs/opcodes/opcode-1b-const-class.html @@ -0,0 +1,92 @@ +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> + +<html> + +<head> +<title>const-class</title> +<link rel=stylesheet href="opcode.css"> +</head> + +<body> + +<h1>const-class</h1> + +<h2>Purpose</h2> + +<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. +</p> + +<h2>Details</h2> + +<table class="instruc"> +<thead> +<tr> + <th>Op & Format</th> + <th>Mnemonic / Syntax</th> + <th>Arguments</th> +</tr> +</thead> +<tbody> +<tr> + <td>1c 21c</td> + <td>const-class vAA, type@BBBB</td> + <td><code>A:</code> destination register (8 bits)<br/> + <code>B:</code> type index</td> +</tr> +</tbody> +</table> + +<h2>Constraints</h2> + +<ul> + <li> + A must be a valid register index in the current stack frame. + </li> + <li> + B must be a valid index into the type constant pool. + </li> +</ul> + +<h2>Behavior</h2> + +<ul> + <li> + An attempt is made to get a reference to the class C the name of which is + contained in type pool entry B. + </li> + <li> + If B refers to a primitive type, the corresponding degenerate class is used + instead. + </li> + <li> + If C has not been loaded and resolved before, it is being loaded and + resolved. All exceptions that are possible during class loading can occur at + this point. + </li> + <li> + A reference to C is moved into register vA, that is, vA' = C. + </li> + <li> + If v(A-1) is the lower half of a register pair, v(A-1)' becomes undefined. + </li> + <li> + If v(A+1) is the upper half of a register pair, v(A+1)' becomes undefined. + </li> +</ul> + +<h2>Exceptions</h2> + +<ul> + <li> + ClassNotFoundException is thrown if the class does not exist at all. + </li> + <li> + VerifyError is thrown if the class does exist, but could not be verified. + </li> +</ul> + +</body> +</html> |
