With Compressed Oops there is 32-bits gap after narrow 'klass' field in a object.
Currently it is filled only with primitive type fields.
Use the gap also for a narrow oop field and a boxing object value (except Long and Double).
Use heapOopSize for instanceKlass::_nonstatic_field_size value instead of wordSize
to define the size more precisely.