sput<kind>
Purpose
Perform the identified object static field operation with the identified static
field, loading or storing into the value register.
Note: These opcodes are reasonable candidates for static linking, altering the
field argument to be a more direct offset.
Details
Op & Format |
Mnemonic / Syntax |
Arguments |
67..6d 21c |
sstaticop vAA, field@BBBB
67: sput
68: sput-wide
69: sput-object
6a: sput-boolean
6b: sput-byte
6c: sput-char
6d: sput-short
|
A: source value register or pair; (8 bits)
B: static field reference index (16 bits) |
Constraints
-
A must be a valid register index in the current stackframe.
-
For the -wide variant, also A+1 must be a valid register index in the
current stackframe.
-
B must be a valid index into the field reference pool.
-
The field must be static. The type of the field denoted by C must match the
variant of the instruction.
-
For the -object variant, the instance referenced by register vA must be
assignment-compatible to the type of the field.
Behavior
-
For all but the -wide variant, the value of register vA is move into the
field, that is, <class>.<field>'=vA.
-
For the -wide variant, the registers vA and v(A+1) are moved into the field
as follows:
-
<class>.<field>' = vA << 0x20 | v(A+1)
Exceptions
-
NullPointerException if vB=null.
-
IllegalAccessException if <object>.<field> is not visible from
the current context according to the usual visibility and access rules of
the Java programming language, or final.