Contents Prev Next Up

## - An Optimization

# Manipulating Object Fields (_quick variants)

putfield_quick
putfield2_quick
getfield_quick
getfield2_quick
putstatic_quick
putstatic2_quick
getstatic_quick
getstatic2_quick

### putfield_quick

Set field in object

    ..., handle, value => ...

handle should be a handle to an object. value should be a value of a type appropriate for the specified field. offset is the offset for the field in that object. value is written at offset into the object referenced by handle. Both handle and value are popped from the stack.

If handle is null, a NullPointerException exception is generated.

### putfield2_quick

Set long integer or double float field in object

    ..., handle, value-word1, value-word2=> ...

handle should be a handle to an object. value should be a value of a type appropriate for the specified field. offset is the offset for the field in that object. value is written at offset into the object referenced by handle. Both handle and value are popped from the stack.

If handle is null, a NullPointerException exception is generated.

### getfield_quick

Fetch field from object

    ..., handle => ..., value

handle should be a handle to an object. The value at offset into the object referenced by handle replaces handle on the top of the stack.

If handle is null, a NullPointerException exception is generated.

### getfield2_quick

Fetch field from object

    ..., handle => ..., value-word1, value-word2

handle should be a handle to an object. The value at offset into the object referenced by handle replaces handle on the top of the stack.

If handle is null, a NullPointerException exception is generated.

### putstatic_quick

Set static field in class

    ..., value => ...

indexbyte1 and indexbyte2 are used to construct an index into the constant pool of the current class. The constant pool item will be a field reference to a static field of a class. value should be the type appropriate to that field. That field will be set to have the value value.

### putstatic2_quick

Set static field in class

    ..., value-word1, value-word2 => ...

indexbyte1 and indexbyte2 are used to construct an index into the constant pool of the current class. The constant pool item will be a field reference to a static field of a class. That field should either be a long integer or a double precision floating point number. value should be the type appropriate to that field. That field will be set to have the value value.

### getstatic_quick

Get static field from class

    ..., => ..., value

indexbyte1 and indexbyte2 are used to construct an index into the constant pool of the current class. The constant pool item will be a field reference to a static field of a class. The value of that field will replace handle on the stack.

### getstatic2_quick

Get static field from class

    ..., => ..., value-word1, value-word2

indexbyte1 and indexbyte2 are used to construct an index into the constant pool of the current class. The constant pool item will be a field reference to a static field of a class. The field should be a long integer or a double precision floating point number. The value of that field will replace handle on the stack

Contents Prev Next Up

Generated with CERN WebMaker