Op & Format Mnemonic / Syntax Arguments Description
0f 11x return vAA
A: return value register (8 bits) Return from a single-width (32-bit)
non-object value-returning method.
10 11x return-wide vAA
A: return value register-pair (8
bits)
Return from a double-width (64-bit)
value-returning method.
11 11x return-object vAA
A: return value register (8 bits) Return from an object-returning method.
12 11n const/4 vA, #+B
A: destination register (4 bits)
B: signed int (4 bits)
Move the given literal value (sign-extended
to 32 bits) into the specified register.
13 21s const/16 vAA, #+BBBB
A: destination register (8 bits)
B: signed int (16 bits)
Move the given literal value (sign-extended
to 32 bits) into the specified register.
14 31i const vAA, #+BBBBBBBB
A: destination register (8 bits)
B: arbitrary 32-bit constant
Move the given literal value into the specified
register.
15 21h const/high16 vAA,
#+BBBB0000
A: destination register (8 bits)
B: signed int (16 bits)
Move the given literal value
(right-zero-extended to 32 bits) into the
specified register.
16 21s const-wide/16 vAA,
#+BBBB
A: destination register (8 bits)
B: signed int (16 bits)
Move the given literal value (sign-extended
to 64 bits) into the specified register-pair.
17 31i const-wide/32 vAA,
#+BBBBBBBB
A: destination register (8 bits)
B: signed int (32 bits)
Move the given literal value (sign-extended
to 64 bits) into the specified register-pair.
18 51l const-wide vAA,
#+BBBBBBBBBBBBBBBB
A: destination register (8 bits)
B: arbitrary double-width (64-bit)
constant
Move the given literal value into the specified
register-pair.
19 21h const-wide/high16 vAA,
#+BBBB000000000000
A: destination register (8 bits)
B: signed int (16 bits)
Move the given literal value
(right-zero-extended to 64 bits) into the
specified register-pair.
1a 21c const-string vAA,
string@BBBB
A: destination register (8 bits)
B: string index
Move a reference to the string specified by
the given index into the specified register.
1b 31c const-string/jumbo vAA,
string@BBBBBBBB
A: destination register (8 bits)
B: string index
Move a reference to the string specified by
the given index into the specified register.
1c 21c const-class vAA,
type@BBBB
A: destination register (8 bits)
B: type index
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.
1d 11x monitor-enter vAA
A: reference-bearing register (8
bits)
Acquire the monitor for the indicated object.
1e 11x monitor-exit vAA
A: reference-bearing register (8
bits)
Release the monitor for the indicated object.
Note: If this instruction needs to throw an
exception, it must do so as if the pc has
already advanced past the instruction. It may
be useful to think of this as the instruction
successfully executing (in a sense), and the
exception getting thrown
after
the instruction
but
before
the next one gets a chance to 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.
1f 21c check-cast vAA,
type@BBBB
A: reference-bearing register (8
bits)
B: type index (16 bits)
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).
20 22c instance-of vA, vB,
type@CCCC
A: destination register (4 bits)
B: reference-bearing register (4
bits)
C: type index (16 bits)
Store in the given destination register 1 if the
indicated reference is an instance of the
given type, or 0 if not. The type must be a
reference type (not a primitive type).