src/share/vm/c1/c1_Runtime1.cpp
Index Unified diffs Context diffs Sdiffs Patch New Old Previous File Next File 8014013 Cdiff src/share/vm/c1/c1_Runtime1.cpp

src/share/vm/c1/c1_Runtime1.cpp

Print this page

        

*** 707,720 **** Bytecode_field field_access(caller, bci); // This can be static or non-static field access Bytecodes::Code code = field_access.code(); // We must load class, initialize class and resolvethe field ! FieldAccessInfo result; // initialize class if needed constantPoolHandle constants(THREAD, caller->constants()); ! LinkResolver::resolve_field(result, constants, field_access.index(), Bytecodes::java_code(code), false, CHECK_NULL); ! return result.klass()(); } // // This routine patches sites where a class wasn't loaded or --- 707,720 ---- Bytecode_field field_access(caller, bci); // This can be static or non-static field access Bytecodes::Code code = field_access.code(); // We must load class, initialize class and resolvethe field ! fieldDescriptor result; // initialize class if needed constantPoolHandle constants(THREAD, caller->constants()); ! LinkResolver::resolve_field_access(result, constants, field_access.index(), Bytecodes::java_code(code), CHECK_NULL); ! return result.field_holder(); } // // This routine patches sites where a class wasn't loaded or
*** 823,837 **** (stub_id == Runtime1::load_klass_patching_id || stub_id == Runtime1::load_mirror_patching_id); if (stub_id == Runtime1::access_field_patching_id) { Bytecode_field field_access(caller_method, bci); ! FieldAccessInfo result; // initialize class if needed Bytecodes::Code code = field_access.code(); constantPoolHandle constants(THREAD, caller_method->constants()); ! LinkResolver::resolve_field(result, constants, field_access.index(), Bytecodes::java_code(code), false, CHECK); ! patch_field_offset = result.field_offset(); // If we're patching a field which is volatile then at compile it // must not have been know to be volatile, so the generated code // isn't correct for a volatile reference. The nmethod has to be // deoptimized so that the code can be regenerated correctly. --- 823,837 ---- (stub_id == Runtime1::load_klass_patching_id || stub_id == Runtime1::load_mirror_patching_id); if (stub_id == Runtime1::access_field_patching_id) { Bytecode_field field_access(caller_method, bci); ! fieldDescriptor result; // initialize class if needed Bytecodes::Code code = field_access.code(); constantPoolHandle constants(THREAD, caller_method->constants()); ! LinkResolver::resolve_field_access(result, constants, field_access.index(), Bytecodes::java_code(code), CHECK); ! patch_field_offset = result.offset(); // If we're patching a field which is volatile then at compile it // must not have been know to be volatile, so the generated code // isn't correct for a volatile reference. The nmethod has to be // deoptimized so that the code can be regenerated correctly.
src/share/vm/c1/c1_Runtime1.cpp
Index Unified diffs Context diffs Sdiffs Patch New Old Previous File Next File