8024990: JT_JDK: 11 failures with SIGSEGV on arm-sflt platforms in nightly fastdebug build.

Fri, 27 Sep 2013 13:49:57 -0400

author
jiangli
date
Fri, 27 Sep 2013 13:49:57 -0400
changeset 5803
d68894a09c7c
parent 5765
586fa1919a89
child 5804
5186dcaca431

8024990: JT_JDK: 11 failures with SIGSEGV on arm-sflt platforms in nightly fastdebug build.
Summary: Enable patching for load_appendix_id.
Reviewed-by: kvn, dlong, bdelsart

src/share/vm/c1/c1_Runtime1.cpp file | annotate | diff | comparison | revisions
     1.1 --- a/src/share/vm/c1/c1_Runtime1.cpp	Fri Sep 20 15:06:23 2013 -0400
     1.2 +++ b/src/share/vm/c1/c1_Runtime1.cpp	Fri Sep 27 13:49:57 2013 -0400
     1.3 @@ -1078,14 +1078,17 @@
     1.4            // replace instructions
     1.5            // first replace the tail, then the call
     1.6  #ifdef ARM
     1.7 -          if(load_klass_or_mirror_patch_id && !VM_Version::supports_movw()) {
     1.8 +          if((load_klass_or_mirror_patch_id ||
     1.9 +              stub_id == Runtime1::load_appendix_patching_id) &&
    1.10 +             !VM_Version::supports_movw()) {
    1.11              nmethod* nm = CodeCache::find_nmethod(instr_pc);
    1.12              address addr = NULL;
    1.13              assert(nm != NULL, "invalid nmethod_pc");
    1.14              RelocIterator mds(nm, copy_buff, copy_buff + 1);
    1.15              while (mds.next()) {
    1.16                if (mds.type() == relocInfo::oop_type) {
    1.17 -                assert(stub_id == Runtime1::load_mirror_patching_id, "wrong stub id");
    1.18 +                assert(stub_id == Runtime1::load_mirror_patching_id ||
    1.19 +                       stub_id == Runtime1::load_appendix_patching_id, "wrong stub id");
    1.20                  oop_Relocation* r = mds.oop_reloc();
    1.21                  addr = (address)r->oop_addr();
    1.22                  break;

mercurial