提交 f9eead47 编写于 作者: J jiangli

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
上级 f4463596
...@@ -1078,14 +1078,17 @@ JRT_ENTRY(void, Runtime1::patch_code(JavaThread* thread, Runtime1::StubID stub_i ...@@ -1078,14 +1078,17 @@ JRT_ENTRY(void, Runtime1::patch_code(JavaThread* thread, Runtime1::StubID stub_i
// replace instructions // replace instructions
// first replace the tail, then the call // first replace the tail, then the call
#ifdef ARM #ifdef ARM
if(load_klass_or_mirror_patch_id && !VM_Version::supports_movw()) { if((load_klass_or_mirror_patch_id ||
stub_id == Runtime1::load_appendix_patching_id) &&
!VM_Version::supports_movw()) {
nmethod* nm = CodeCache::find_nmethod(instr_pc); nmethod* nm = CodeCache::find_nmethod(instr_pc);
address addr = NULL; address addr = NULL;
assert(nm != NULL, "invalid nmethod_pc"); assert(nm != NULL, "invalid nmethod_pc");
RelocIterator mds(nm, copy_buff, copy_buff + 1); RelocIterator mds(nm, copy_buff, copy_buff + 1);
while (mds.next()) { while (mds.next()) {
if (mds.type() == relocInfo::oop_type) { if (mds.type() == relocInfo::oop_type) {
assert(stub_id == Runtime1::load_mirror_patching_id, "wrong stub id"); assert(stub_id == Runtime1::load_mirror_patching_id ||
stub_id == Runtime1::load_appendix_patching_id, "wrong stub id");
oop_Relocation* r = mds.oop_reloc(); oop_Relocation* r = mds.oop_reloc();
addr = (address)r->oop_addr(); addr = (address)r->oop_addr();
break; break;
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册