src/share/vm/oops/cpCacheOop.cpp
Index Unified diffs Context diffs Sdiffs Patch New Old Previous File Next File 7086585 Cdiff src/share/vm/oops/cpCacheOop.cpp

src/share/vm/oops/cpCacheOop.cpp

Print this page

        

*** 126,146 **** // to flush other fields (f1, f2) completely to memory before the bytecodes // are updated, lest other processors see a non-zero bytecode but zero f1/f2. void ConstantPoolCacheEntry::set_field(Bytecodes::Code get_code, Bytecodes::Code put_code, KlassHandle field_holder, ! int orig_field_index, int field_offset, TosState field_type, bool is_final, bool is_volatile) { set_f1(field_holder()->java_mirror()); set_f2(field_offset); - // The field index is used by jvm/ti and is the index into fields() array - // in holder instanceKlass. This is scaled by instanceKlass::next_offset. - assert((orig_field_index % instanceKlass::next_offset) == 0, "wierd index"); - const int field_index = orig_field_index / instanceKlass::next_offset; assert(field_index <= field_index_mask, "field index does not fit in low flag bits"); set_flags(as_flags(field_type, is_final, false, is_volatile, false, false) | (field_index & field_index_mask)); set_bytecode_1(get_code); --- 126,142 ---- // to flush other fields (f1, f2) completely to memory before the bytecodes // are updated, lest other processors see a non-zero bytecode but zero f1/f2. void ConstantPoolCacheEntry::set_field(Bytecodes::Code get_code, Bytecodes::Code put_code, KlassHandle field_holder, ! int field_index, int field_offset, TosState field_type, bool is_final, bool is_volatile) { set_f1(field_holder()->java_mirror()); set_f2(field_offset); assert(field_index <= field_index_mask, "field index does not fit in low flag bits"); set_flags(as_flags(field_type, is_final, false, is_volatile, false, false) | (field_index & field_index_mask)); set_bytecode_1(get_code);
*** 147,157 **** set_bytecode_2(put_code); NOT_PRODUCT(verify(tty)); } int ConstantPoolCacheEntry::field_index() const { ! return (_flags & field_index_mask) * instanceKlass::next_offset; } void ConstantPoolCacheEntry::set_method(Bytecodes::Code invoke_code, methodHandle method, int vtable_index) { --- 143,153 ---- set_bytecode_2(put_code); NOT_PRODUCT(verify(tty)); } int ConstantPoolCacheEntry::field_index() const { ! return (_flags & field_index_mask); } void ConstantPoolCacheEntry::set_method(Bytecodes::Code invoke_code, methodHandle method, int vtable_index) {
src/share/vm/oops/cpCacheOop.cpp
Index Unified diffs Context diffs Sdiffs Patch New Old Previous File Next File